/*************************************************************************** * Copyright (C) by * * - 2005: Christian Leh * * * * 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. * * * ***************************************************************************/ #ifndef THEMEMOODIN_H #define THEMEMOODIN_H #include #include #include #include #include #include "scaler.h" #include "cache.h" #include "effectwidget.h" typedef QPtrList EffectWidgetList; typedef QValueList CoordsList; typedef QValueList ColorList; typedef QValueList FontList; typedef QPtrList ImageList; class ThemeMoodin: public ThemeEngine { Q_OBJECT public: ThemeMoodin(QWidget *parent, const char *name, const QStringList& flags); inline const QString name() { return QString("Moodin"); } inline const int version() { return 0x042; } static QStringList names() { QStringList l; l << "Moodin"; return l; }; static QStringList statusPixmaps() { QStringList l; l << "filetypes"; // 1 filetypes l << "exec"; // 2 exec l << "key_bindings"; // 3 key_bindings l << "window_list"; // 4 window_list l << "desktop"; // 5 desktop l << "style"; // 6 style l << "kcmsystem"; // 7 kcmsystem l << "go"; // 8 go return l; }; public slots: void slotSetText(const QString& s); void slotSetPixmap(const QString&); private: bool mUseIconSet; bool mLabelShadow; bool mShowStatusText; bool mAppendX; bool mUsersBackground; bool mTranslate; bool mLineUpImages; bool mKubuntuStyle; int mAnimationLength; int mAnimationDelay; int mIconSetSize; int mCurrentStatusIndex; int mImageSpacer; int mLabelCount; float mBeginOpacity; QString mCurrentAction; QString mBackgroundImage; QStringList mStatusIcons; QStringList mStatusMessages; QStringList mLabels; QColor mStatusColor; QColor mLabelShadowColor; QFont mStatusFont; QPoint mStatusCoords; QPoint mLabelShadowOffset; QWidget* mContainer; QSize mBaseResolution; QRect mSplashRect; KPixmap* mBG; Scaler* mScaler; Cache* mCache; EffectWidgetList mEffectWidgets; CoordsList mStatusIconCoords; CoordsList mStatusImageOffsets; CoordsList mLabelCoords; ColorList mLabelColors; FontList mLabelFonts; ImageList mImages; void init(); void initBackground(QPainter* p); void initEffectWidgets(); void initLabels(QPainter* p); void paintEvent(QPaintEvent* pe); void readSettings(); void arrangeWidget(QWidget* me, const int index); void updateStatus(); EffectWidget* createEffectWidget(QWidget *parent, QImage *image); }; #endif