add more spacing
[personal-kdebase.git] / workspace / kdm / kfrontend / themer / kdmlabel.h
blobb8dff25e7d4f04ca54b076eaf9401d19d43aba22
1 /*
2 * Copyright (C) 2003 by Unai Garro <ugarro@users.sourceforge.net>
3 * Copyright (C) 2004 by Enrico Ros <rosenric@dei.unipd.it>
4 * Copyright (C) 2004 by Stephan Kulow <coolo@kde.org>
5 * Copyright (C) 2004 by Oswald Buddenhagen <ossi@kde.org>
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 #ifndef KDMLABEL_H
23 #define KDMLABEL_H
25 #include "kdmitem.h"
27 #include <KCharMacroExpander>
29 #include <QColor>
30 #include <QFont>
32 class QAction;
33 class QTimer;
36 * KdmLabel. A label element
39 class KdmLabel : public KdmItem, private KCharMacroExpander {
40 Q_OBJECT
42 public:
43 KdmLabel( QObject *parent, const QDomNode &node );
44 void setText( const QString &txt );
46 static QString timedUser;
47 static int timedDelay;
49 /* Method to lookup the caption associated with an item */
50 static QString lookupStock( const QString &stock );
52 protected:
53 // reimplemented; returns the minimum size of rendered text
54 virtual QSize sizeHint();
56 // draw the label
57 virtual void drawContents( QPainter *p, const QRect &r );
59 // handle switching between normal / active / prelight configurations
60 virtual void statusChanged( bool descend );
62 virtual void doPlugActions( bool plug );
64 struct LabelStruct {
65 QString text;
66 bool isTimer;
67 struct LabelClass {
68 QColor color;
69 FontType font;
70 bool present;
71 } normal, active, prelight;
72 } label;
74 QTimer *timer;
75 QAction *action;
77 public Q_SLOTS:
78 void update();
80 protected:
81 virtual bool expandMacro( QChar chr, QStringList &ret );
83 private:
84 /* Lookup variables in the text */
85 QString lookupText( const QString &t );
87 void setCText( const QString &txt );
89 QString cText, pText;
90 QSize pTextSize;
91 int pAccelOff, pTextIndent, zeroWidth;
93 static QHash<QChar,QString> expandoMap;
94 static bool dateFormatSet;
96 private Q_SLOTS:
97 void activate();
100 #endif // KDMLABEL_H