2 Copyright 2005 Chris Tallon
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP. If not, see <https://www.gnu.org/licenses/>.
29 { red = 0; green = 0; blue = 0; alpha = 255; }
31 Colour(int Tred, int Tgreen, int Tblue)
32 { red = Tred; green = Tgreen; blue = Tblue; alpha = 255; }
34 Colour(int Tred, int Tgreen, int Tblue, int Talpha)
35 { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; }
37 Colour(unsigned int color)
39 red = (color & 0x00ff0000) >> 16;
40 green = (color & 0x0000ff00) >> 8;
41 blue = (color & 0x000000ff);
42 alpha = (color & 0xff000000) >> 24;
45 void set(int Tred, int Tgreen, int Tblue)
46 { red = Tred; green = Tgreen; blue = Tblue; alpha = 255; }
48 void set(int Tred, int Tgreen, int Tblue, int Talpha)
49 { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; }
51 inline u4 rgba() const
53 return tou4((alpha << 24) | (red << 16) | (green << 8) | blue);
63 // TODO move to seperate File
64 class DrawStyle: public Colour
68 { red = 0; green = 0; blue = 0; alpha = 255; ft = Color; ct = Global; }
70 DrawStyle(int Tred, int Tgreen, int Tblue)
71 { red = Tred; green = Tgreen; blue = Tblue; alpha = 255 ; ft = Color; ct = Global; }
73 DrawStyle(int Tred, int Tgreen, int Tblue, int Talpha)
74 { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; ft = Color; ct = Global; }
76 DrawStyle(unsigned int color)
78 red = (color & 0x00ff0000) >> 16;
79 green = (color & 0x0000ff00) >> 8;
80 blue = (color & 0x000000ff);
81 alpha = (color & 0xff000000) >> 24;
82 ft = Color; ct = Global;
85 DrawStyle(const Colour& c)
91 ft = Color; ct = Global;
108 enum CoordType ct; //not implemented yet
109 float x1, y1, x2, y2, r; // Parameter for gradient either relative to object or to global coordinate system
110 int num_colors; //max is 4, min is 0
112 float grad_pos[3]; //Last position is alway 1.0 and first 0.0
114 static DrawStyle TRANSPARENT;
115 static DrawStyle WHITE;
116 static DrawStyle BLACK;
117 static DrawStyle RED;
118 static DrawStyle GREEN;
119 static DrawStyle YELLOW;
120 static DrawStyle BLUE;
121 static DrawStyle GREY;
122 static DrawStyle DARKGREY;
123 static DrawStyle VIDEOBLUE;
124 static DrawStyle VIEWBACKGROUND;
125 static DrawStyle VIEWTRANSPARENTBACKGROUND;
126 static DrawStyle LIVETVSYMBOLS;
127 static DrawStyle PROGRESSBAR;
128 static DrawStyle OSDBACKGROUND;
129 static DrawStyle TABVIEWBACKGROUND;
130 static DrawStyle TITLEBARBACKGROUND;
131 static DrawStyle SELECTBACKGROUND;
132 static DrawStyle SELECTHIGHLIGHT;
133 static DrawStyle SELECTDARKHIGHLIGHT;
134 static DrawStyle LIGHTTEXT;
135 static DrawStyle DARKTEXT;
136 static DrawStyle DANGER;
137 static DrawStyle BUTTONBACKGROUND;
138 static DrawStyle PROGRAMMEA;
139 static DrawStyle PROGRAMMEB;
140 static DrawStyle NOPROGRAMME;
141 static DrawStyle WALLPAPER; // this one is special, if transparent it means picture
144 #define COMPARE_TEST(x) if (rhs.x != lhs.x) { return rhs.x < lhs.x; }
146 inline bool operator<(const DrawStyle& rhs, const DrawStyle& lhs)
151 if (rhs.ft == DrawStyle::Color) return false;
153 COMPARE_TEST(num_colors)
159 if (rhs.ft == DrawStyle::GradientRadial) COMPARE_TEST(r)
161 for (int i = 0; i < lhs.num_colors; i++)
163 COMPARE_TEST(grad_col[i].rgba())
165 if (i > 0) COMPARE_TEST(grad_pos[i - 1])
176 #define COMPARE_TEST(x) if (rhs.x!=lhs.x) return true;
178 inline bool operator!=(const DrawStyle& rhs, const DrawStyle& lhs)
183 if (rhs.ft == DrawStyle::Color) return false;
185 COMPARE_TEST(num_colors)
191 if (rhs.ft == DrawStyle::GradientRadial) COMPARE_TEST(r)
193 for (int i = 0; i < lhs.num_colors; i++)
195 COMPARE_TEST(grad_col[i].rgba())
197 if (i > 0) COMPARE_TEST(grad_pos[i - 1])
214 #ifdef GRADIENT_DRAWING
222 static int getNumberofSkins();
223 static const char ** getSkinNames();
224 static bool InitSkin(int n);
227 static void InitDefaultSkin();
228 static void InitEnhancedSkin();
229 static void InitNoopacityInspiredSkin();