/* * Copyright (C) 2003 by Unai Garro * Copyright (C) 2004 by Enrico Ros * Copyright (C) 2004 by Stephan Kulow * Copyright (C) 2004 by Oswald Buddenhagen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef KDMLABEL_H #define KDMLABEL_H #include "kdmitem.h" #include #include #include class QAction; class QTimer; /* * KdmLabel. A label element */ class KdmLabel : public KdmItem, private KCharMacroExpander { Q_OBJECT public: KdmLabel(QObject *parent, const QDomNode &node); void setText(const QString &txt); static QString timedUser; static int timedDelay; /* Method to lookup the caption associated with an item */ static QString lookupStock(const QString &stock); protected: // reimplemented; returns the minimum size of rendered text virtual QSize sizeHint(); // draw the label virtual void drawContents(QPainter *p, const QRect &r); // handle switching between normal / active / prelight configurations virtual void statusChanged(bool descend); virtual void doPlugActions(bool plug); virtual void setWidget(QWidget *widget); struct LabelStruct { QString text; bool isTimer; struct LabelClass { QColor color; FontType font; bool present; } normal, active, prelight; } label; QTimer *timer; QAction *action; public Q_SLOTS: void update(); protected: virtual bool expandMacro(QChar chr, QStringList &ret); private: /* Lookup variables in the text */ QString lookupText(const QString &t); void setCText(const QString &txt); void updateWidgetAttribs(); QString cText, pText; QSize pTextSize; int pAccelOff, pTextIndent, zeroWidth; static QHash expandoMap; static bool dateFormatSet; private Q_SLOTS: void activate(); }; #endif // KDMLABEL_H