1
#ifndef USERINTERFACE_H
2
#define USERINTERFACE_H
21
class NoatunPreferences;
26
class KJLoader : public QWidget, public UserInterface, public Parser
31
friend class KJWidget;
38
KHelpMenu *helpMenu() const { return mHelpMenu; }
39
QStringList &item(const QString &key) { return *Parser::find(key); }
41
QList<KJWidget> widgetsAt(const QPoint &pt) const;
43
void removeChild(KJWidget *c);
44
void addChild(KJWidget *c);
46
static bool cleanSkin(const QString &dir);
48
static QString guessRcFile(const QString &dir);
51
void loadSkin(const QString &file);
64
virtual void mouseMoveEvent(QMouseEvent *e);
65
virtual void mousePressEvent(QMouseEvent *e);
66
virtual void mouseReleaseEvent(QMouseEvent *e);
67
virtual void paintEvent(QPaintEvent *e);
68
virtual void closeEvent(QCloseEvent*e);
69
virtual void wheelEvent(QWheelEvent *e);
71
virtual void dragEnterEvent(QDragEnterEvent *event);
72
virtual void dropEvent(QDropEvent *event);
75
static KJLoader* kjofol;
80
QList<KJWidget> subwidgets;
83
KJFont *mText, *mNumbers;
92
virtual ~KJWidget() {};
93
// called when the widget should paint
94
virtual void paint(QPainter *, const QRect &) {};
95
// called to recieve the rect this widget is in
96
virtual QRect rect() const { return mRect; }
97
// called when pressed in this widget
98
virtual bool mousePress(const QPoint &) {return false; }
99
// called when the mouse is released after clicked in this widget
100
virtual void mouseRelease(const QPoint &, bool){}
101
virtual void mouseMove(const QPoint &, bool) {}
102
// called with the current time (mille)
103
virtual void timeUpdate(int) {}
104
// called when a new song is playing, player() is ready with it too
105
virtual void newFile() {}
107
// called when the mouse is moved while clicked in this widget
109
virtual void repaint(bool me=true, const QRect &rect=QRect(), bool clear=false);
111
virtual QString tip() { return 0; }
114
static QBitmap getMask(const QImage &color, register QRgb=qRgb(255,0,255));
117
QString backgroundPressed(const QString &bmp);
118
KJLoader *parent() const {return mParent;}
119
KJLoader &parser() const {return *mParent;}
121
KJFont &textFont() const {return *mParent->mText;}
122
KJFont &timeFont() const {return *mParent->mNumbers;}
124
void setRect(const QRect& rect) {mRect=rect;}
125
void setRect(int x, int y, int xs, int ys) {mRect=QRect(x,y,xs,ys);}
132
class Background : public KJWidget
135
Background(KJLoader *);
136
virtual void paint(QPainter *, const QRect &rect);
137
virtual bool mousePress(const QPoint &) {return false;}
138
virtual void mouseRelease(const QPoint &, bool) {}
145
class KJButton : public KJWidget
148
KJButton(const QStringList&, KJLoader *);
149
virtual void paint(QPainter *, const QRect &rect);
150
virtual bool mousePress(const QPoint &pos);
151
virtual void mouseRelease(const QPoint &pos, bool);
152
virtual void showPressed(bool b=true);
154
virtual QString tip();
165
class KJSeeker : public KJWidget
168
KJSeeker(const QStringList &i, KJLoader *);
172
virtual void paint(QPainter *, const QRect &rect);
173
virtual bool mousePress(const QPoint &pos);
174
virtual void mouseRelease(const QPoint &pos, bool);
176
void timeUpdate(int mille);
183
QPixmap *barmode[256];
188
class KJVolumeBMP : public KJWidget
191
KJVolumeBMP(const QStringList &, KJLoader *parent);
193
virtual void paint(QPainter *, const QRect &rect);
194
virtual bool mousePress(const QPoint &pos);
195
virtual void mouseRelease(const QPoint &pos, bool);
196
virtual void timeUpdate(int);
197
virtual void mouseMove(const QPoint &pos, bool);
199
virtual QString tip();
210
KJFont(const QString &prefix, KJLoader *parent);
211
// draw the string str to dev at position pos, within rectangle limit in relation to pos
212
QPixmap draw(const QCString &str, int wide, const QPoint &pt=QPoint(0,0)) const;
213
QPixmap draw(const QString &str, int wide, const QPoint &pt=QPoint(0,0)) const
214
{ return draw(QCString(str.latin1()), wide, pt); }
217
void drawCharacter(QPixmap *dev, const QPoint &to, char c) const;
219
QPoint charSource(char c) const;
227
const char *mString[3];
231
class KJFilename : public QObject, public KJWidget
235
KJFilename(const QStringList &, KJLoader *parent);
237
virtual void paint(QPainter *, const QRect &rect);
238
virtual bool mousePress(const QPoint &pos);
239
virtual void newFile();
240
void prepareString(const QCString &str);
242
virtual void timerEvent(QTimerEvent *);
251
class KJTime : public KJWidget
254
KJTime(const QStringList &, KJLoader *parent);
256
virtual void paint(QPainter *, const QRect &rect);
257
virtual bool mousePress(const QPoint &pos);
258
virtual void timeUpdate(int);
260
void prepareString(const QCString &time);
262
QCString mCurrentStr;
267
class KJVisScope : public KJWidget
270
KJVisScope(KJLoader *parent) : KJWidget(parent) {}
271
enum Visuals { Null=0, FFT, Mono };
272
void swapScope(Visuals newOne);
275
class KJNullScope : public KJVisScope
278
KJNullScope(const QStringList &, KJLoader *parent);
279
virtual bool mousePress(const QPoint&);
282
class KJVis : public KJVisScope, public MonoFFTScope
285
KJVis(const QStringList &, KJLoader *parent);
286
virtual void scopeEvent(float *d, int size);
288
virtual bool mousePress(const QPoint&);
295
class KJScope : public KJVisScope, public MonoScope
298
KJScope(const QStringList &, KJLoader *parent);
299
virtual void scopeEvent(float *d, int size);
301
virtual bool mousePress(const QPoint&);
310
class KJEqualizer : public QObject, public KJWidget
314
KJEqualizer(const QStringList &, KJLoader *parent);
316
virtual void mouseMove(const QPoint &pos, bool);
317
virtual bool mousePress(const QPoint&);
318
virtual void paint(QPainter *, const QRect &rect);
319
int barNum(const QPoint &pos) const;
320
int level(const QPoint &pos) const;