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, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
28 { red = 0; green = 0; blue = 0; alpha = 255; }
30 Colour(int Tred, int Tgreen, int Tblue)
31 { red = Tred; green = Tgreen; blue = Tblue; alpha = 255; }
33 Colour(int Tred, int Tgreen, int Tblue, int Talpha)
34 { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; }
36 Colour(unsigned int color)
38 red = (color & 0x00ff0000)>>16;
39 green = (color & 0x0000ff00)>>8;
40 blue = (color & 0x000000ff);
41 alpha = (color & 0xff000000)>>24;
44 void set(int Tred, int Tgreen, int Tblue)
45 { red = Tred; green = Tgreen; blue = Tblue; alpha = 255; }
47 void set(int Tred, int Tgreen, int Tblue, int Talpha)
48 { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; }
50 inline unsigned long rgba() const
52 return (alpha << 24) | (red << 16) | (green << 8) | blue;
65 // TODO move to seperate File
66 class DrawStyle: public Colour
70 { red = 0; green = 0; blue = 0; alpha = 255; ft=Color;ct=Global; }
72 DrawStyle(int Tred, int Tgreen, int Tblue)
73 { red = Tred; green = Tgreen; blue = Tblue; alpha = 255 ;ft=Color;ct=Global; }
75 DrawStyle(int Tred, int Tgreen, int Tblue, int Talpha)
76 { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; ft=Color;ct=Global;}
77 DrawStyle(unsigned int color)
79 red = (color & 0x00ff0000)>>16;
80 green = (color & 0x0000ff00)>>8;
81 blue = (color & 0x000000ff);
82 alpha = (color & 0xff000000)>>24;
86 DrawStyle(const Colour &c)
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
141 #define COMPARE_TEST(x) if (rhs.x!=lhs.x) { \
142 return rhs.x < lhs.x; \
145 inline bool operator<(const DrawStyle& rhs, const DrawStyle& lhs)
150 if (rhs.ft==DrawStyle::Color) return false;
152 COMPARE_TEST(num_colors)
157 if (rhs.ft==DrawStyle::GradientRadial) COMPARE_TEST(r)
160 for (int i=0;i<lhs.num_colors; i++) {
161 COMPARE_TEST(grad_col[i].rgba())
162 if (i>0) COMPARE_TEST(grad_pos[i-1])
172 #define COMPARE_TEST(x) if (rhs.x!=lhs.x) return true;
175 inline bool operator!=(const DrawStyle& rhs, const DrawStyle& lhs)
180 if (rhs.ft==DrawStyle::Color) return false;
182 COMPARE_TEST(num_colors)
187 if (rhs.ft==DrawStyle::GradientRadial) COMPARE_TEST(r)
190 for (int i=0;i<lhs.num_colors; i++) {
191 COMPARE_TEST(grad_col[i].rgba())
192 if (i>0) COMPARE_TEST(grad_pos[i-1])
204 static int getNumberofSkins();
205 static const char* *getSkinNames();
206 static bool InitSkin(int n);