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 unsigned long rgba() const
53 return (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;}
75 DrawStyle(unsigned int color)
77 red = (color & 0x00ff0000) >> 16;
78 green = (color & 0x0000ff00) >> 8;
79 blue = (color & 0x000000ff);
80 alpha = (color & 0xff000000) >> 24;
81 ft = Color; ct = Global;
84 DrawStyle(const Colour& c)
90 ft = Color; ct = Global;
106 enum CoordType ct; //not implemented yet
107 float x1, y1, x2, y2, r; // Parameter for gradient either relative to object or to global coordinate system
108 int num_colors; //max is 4, min is 0
110 float grad_pos[3]; //Last position is alway 1.0 and first 0.0
112 static DrawStyle BLACK;
113 static DrawStyle RED;
114 static DrawStyle GREEN;
115 static DrawStyle YELLOW;
116 static DrawStyle BLUE;
117 static DrawStyle GREY;
118 static DrawStyle DARKGREY;
119 static DrawStyle VIDEOBLUE;
120 static DrawStyle VIEWBACKGROUND;
121 static DrawStyle VIEWTRANSPARENTBACKGROUND;
122 static DrawStyle LIVETVSYMBOLS;
123 static DrawStyle PROGRESSBAR;
124 static DrawStyle OSDBACKGROUND;
125 static DrawStyle TABVIEWBACKGROUND;
126 static DrawStyle TITLEBARBACKGROUND;
127 static DrawStyle SELECTBACKGROUND;
128 static DrawStyle SELECTHIGHLIGHT;
129 static DrawStyle SELECTDARKHIGHLIGHT;
130 static DrawStyle LIGHTTEXT;
131 static DrawStyle DARKTEXT;
132 static DrawStyle DANGER;
133 static DrawStyle BUTTONBACKGROUND;
134 static DrawStyle PROGRAMMEA;
135 static DrawStyle PROGRAMMEB;
136 static DrawStyle NOPROGRAMME;
137 static DrawStyle WALLPAPER; // this one is special, if transparent it means picture
140 #define COMPARE_TEST(x) if (rhs.x != lhs.x) { return rhs.x < lhs.x; }
142 inline bool operator<(const DrawStyle& rhs, const DrawStyle& lhs)
147 if (rhs.ft == DrawStyle::Color) return false;
149 COMPARE_TEST(num_colors)
155 if (rhs.ft == DrawStyle::GradientRadial) COMPARE_TEST(r)
157 for (int i = 0; i < lhs.num_colors; i++)
159 COMPARE_TEST(grad_col[i].rgba())
161 if (i > 0) COMPARE_TEST(grad_pos[i - 1])
172 #define COMPARE_TEST(x) if (rhs.x!=lhs.x) return true;
174 inline bool operator!=(const DrawStyle& rhs, const DrawStyle& lhs)
179 if (rhs.ft == DrawStyle::Color) return false;
181 COMPARE_TEST(num_colors)
187 if (rhs.ft == DrawStyle::GradientRadial) COMPARE_TEST(r)
189 for (int i = 0; i < lhs.num_colors; i++)
191 COMPARE_TEST(grad_col[i].rgba())
193 if (i > 0) COMPARE_TEST(grad_pos[i - 1])
210 #ifdef GRADIENT_DRAWING
218 static int getNumberofSkins();
219 static const char ** getSkinNames();
220 static bool InitSkin(int n);
223 static void InitDefaultSkin();
224 static void InitEnhancedSkin();
225 static void InitNoopacityInspiredSkin();