summaryrefslogtreecommitdiffstats
path: root/src/thememoodin.h
blob: 56a01868758bfad7fd484cb24a36bdde02208902 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/***************************************************************************
 *   Copyright (C) by                                                      *
 *     - 2005: Christian Leh <moodwrod@web.de>                             *
 *                                                                         *
 *   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 <tqptrlist.h>

#include <kdebug.h>
#include <kpixmap.h>

#include <themeengine.h>
#include <objkstheme.h>

#include "scaler.h"
#include "cache.h"
#include "effectwidget.h"

typedef TQPtrList<EffectWidget> EffectWidgetList;
typedef TQValueList<TQPoint> CoordsList;
typedef TQValueList<TQColor> ColorList;
typedef TQValueList<TQFont> FontList;
typedef TQPtrList<TQImage> ImageList;

class ThemeMoodin: public ThemeEngine
{
  TQ_OBJECT
  

public:
  ThemeMoodin(TQWidget *parent, const char *name, const TQStringList& flags);

  inline const TQString name() { return TQString("Moodin"); }
  inline const int version() { return 0x042; }

  static TQStringList names()
  {
    TQStringList l;

    l << "Moodin";

    return l;
  };

  static TQStringList statusPixmaps()
  {
    TQStringList l;

    l << "filetypes"; // 1 filetypes
    l << "application-x-executable"; // 2 application-x-executable
    l << "key_bindings"; // 3 key_bindings
    l << "window_duplicate"; // 4 window_duplicate
    l << "desktop"; // 5 desktop
    l << "style"; // 6 style
    l << "preferences-system"; // 7 preferences-system
    l << "go"; // 8 go

    return l;
  };

public slots:
  void slotSetText(const TQString& s);
  void slotSetPixmap(const TQString&);

private:
  bool mUseIconSet;
  bool mLabelShadow;
  bool mShowStatusText;
  bool mAppendX;
  bool mUsersBackground;
  bool mTranslate;
  bool mLineUpImages;
  bool mScaleIcons;
  bool mKubuntuStyle;
  int mAnimationLength;
  int mAnimationDelay;
  int mIconSetSize;
  int mCurrentStatusIndex;
  int mImageSpacer;
  int mLabelCount;
  float mBeginOpacity;

  TQString mCurrentAction;
  TQString mBackgroundImage;
  TQStringList mStatusIcons;
  TQStringList mStatusMessages;
  TQStringList mLabels;
  TQColor mStatusColor;
  TQColor mLabelShadowColor;
  TQFont mStatusFont;
  TQPoint mStatusCoords;
  TQPoint mLabelShadowOffset;
  TQWidget* mContainer;
  TQSize mBaseResolution;
  TQRect 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(TQPainter* p);
  void initEffectWidgets();
  void initLabels(TQPainter* p);

  void paintEvent(TQPaintEvent* pe);
  void readSettings();
  void arrangeWidget(TQWidget* me, const int index);
  void updateStatus();

  EffectWidget* createEffectWidget(TQWidget *parent, TQImage *image);
};

#endif