]> git.vomp.tv Git - vompclient.git/blob - colour.h
9b620f804cbb7d1ca6d5a0f074a2a0aa21806be8
[vompclient.git] / colour.h
1 /*
2     Copyright 2005 Chris Tallon
3
4     This file is part of VOMP.
5
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.
10
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.
15
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.
19 */
20
21 #ifndef COLOUR_H
22 #define COLOUR_H
23
24 class Colour
25 {
26   public:
27     Colour()
28       { red = 0; green = 0; blue = 0; alpha = 255; }
29
30     Colour(int Tred, int Tgreen, int Tblue)
31       { red = Tred; green = Tgreen; blue = Tblue; alpha = 255; }
32
33     Colour(int Tred, int Tgreen, int Tblue, int Talpha)
34       { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; }
35
36     void set(int Tred, int Tgreen, int Tblue)
37       { red = Tred; green = Tgreen; blue = Tblue; alpha = 255; }
38
39     void set(int Tred, int Tgreen, int Tblue, int Talpha)
40       { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; }
41
42     inline unsigned long rgba() const
43     {
44       return (alpha << 24) | (red << 16) | (green << 8) | blue;
45     }
46
47     int red;
48     int green;
49     int blue;
50     int alpha;
51
52
53
54
55 };
56
57 // TODO move to seperate File
58 class DrawStyle: public Colour
59 {
60 public:
61         DrawStyle()
62     { red = 0; green = 0; blue = 0; alpha = 255; ft=Color;ct=Global; }
63
64         DrawStyle(int Tred, int Tgreen, int Tblue)
65     { red = Tred; green = Tgreen; blue = Tblue; alpha = 255 ;ft=Color;ct=Global;  }
66
67         DrawStyle(int Tred, int Tgreen, int Tblue, int Talpha)
68      { red = Tred; green = Tgreen; blue = Tblue; alpha = Talpha; ft=Color;ct=Global;}
69
70         enum FillType {
71                         Color,
72                         GradientLinear,
73                         GradientRadial,
74         };
75         enum CoordType {
76                 Global,
77                 Local
78         };
79
80         enum FillType ft;
81         enum CoordType ct; //not implemented yet
82         float x1,y1,x2,y2,r; // Parameter for gradient either relative to object or to global coordinate system
83         int num_colors; //max is 4, min is 0
84         Colour grad_col[4];
85         float grad_pos[3]; //Last position is alway 1.0 and first 0.0
86
87     static DrawStyle BLACK;
88     static DrawStyle RED;
89     static DrawStyle GREEN;
90     static DrawStyle YELLOW;
91     static DrawStyle BLUE;
92     static DrawStyle GREY;
93     static DrawStyle DARKGREY;
94     static DrawStyle VIDEOBLUE;
95     static DrawStyle VIEWBACKGROUND;
96     static DrawStyle TABVIEWBACKGROUND;
97     static DrawStyle TITLEBARBACKGROUND;
98     static DrawStyle SELECTHIGHLIGHT;
99     static DrawStyle SELECTDARKHIGHLIGHT;
100     static DrawStyle LIGHTTEXT;
101     static DrawStyle DARKTEXT;
102     static DrawStyle DANGER;
103     static DrawStyle BUTTONBACKGROUND;
104     static DrawStyle PROGRAMMEA;
105     static DrawStyle PROGRAMMEB;
106     static DrawStyle NOPROGRAMME;
107
108 };
109
110 class SkinFactory {
111 public:
112         static void InitDefaultSkin();
113         static void InitEnhancedSkin();
114 };
115
116 #endif