00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef SCROLLBARTHEME_H
00029 #define SCROLLBARTHEME_H
00030
00031 #include ".\ComponentTheme.h"
00032 #include "..\..\event\MouseListener.h"
00033 #include "..\..\util\GradientColor.h"
00034 #include "..\..\util\Rectangle.h"
00035 #include "..\..\Icon.h"
00036 #include "..\..\border\LineBorder.h"
00037 #include "..\..\config.h"
00038
00039 namespace ui
00040 {
00041 namespace theme
00042 {
00043 namespace defaulttheme
00044 {
00045
00046
00047 class ScrollbarTheme : public ComponentTheme, public event::MouseAdapter
00048 {
00049 public:
00050 ScrollbarTheme();
00051 ~ScrollbarTheme();
00052 void installTheme(Component *comp);
00053 void deinstallTheme(Component *comp);
00054 void paint(Graphics& g,Component *comp);
00055 const util::Dimension getPreferredSize(const Component *comp) const;
00056
00057 private:
00058 class IncrementIcon : public Icon
00059 {
00060 public:
00061 IncrementIcon();
00062 int getIconHeight() const;
00063 int getIconWidth() const;
00064 void paint(Component *comp, Graphics &g, int x, int y);
00065 void setOrientation(int o);
00066 private:
00067 util::Color foreground;
00068 int orientation;
00069 static const int textureWidth = 16;
00070 static const int textureHeight = 16;
00071
00072
00073 GLuint textureId;
00074 };
00075
00076 class DecrementIcon : public Icon
00077 {
00078 public:
00079 DecrementIcon();
00080 int getIconHeight() const;
00081 int getIconWidth() const;
00082 void paint(Component *comp, Graphics &g, int x, int y);
00083 void setOrientation(int o);
00084 private:
00085 util::Color foreground;
00086 int orientation;
00087 static const int textureWidth = 16;
00088 static const int textureHeight = 16;
00089 GLuint textureId;
00090 };
00091
00092 IncrementIcon incrementIcon;
00093 DecrementIcon decrementIcon;
00094
00095 util::Color lineColor;
00096 border::LineBorder border;
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 };
00112 }
00113 }
00114 }
00115
00116 #endif