1 /**********************************************************************
2  Freeciv - Copyright (C) 2005 - The Freeciv Project
3    This program is free software; you can redistribute it and/or modify
4    it under the terms of the GNU General Public License as published by
5    the Free Software Foundation; either version 2, or (at your option)
6    any later version.
7 
8    This program is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11    GNU General Public License for more details.
12 ***********************************************************************/
13 
14 #ifndef FC__THEMECOLORS_H
15 #define FC__THEMECOLORS_H
16 
17 #include "colors_common.h"
18 
19 /* The color system is designed on the assumption that almost, but
20  * not quite, all displays will be truecolor. */
21 
22 enum theme_color {
23   COLOR_THEME_BACKGROUND,
24   COLOR_THEME_CHECKBOX_LABEL_TEXT,
25   COLOR_THEME_CUSTOM_WIDGET_NORMAL_TEXT,
26   COLOR_THEME_CUSTOM_WIDGET_SELECTED_FRAME,
27   COLOR_THEME_CUSTOM_WIDGET_SELECTED_TEXT,
28   COLOR_THEME_CUSTOM_WIDGET_PRESSED_FRAME,
29   COLOR_THEME_CUSTOM_WIDGET_PRESSED_TEXT,
30   COLOR_THEME_CUSTOM_WIDGET_DISABLED_TEXT,
31   COLOR_THEME_EDITFIELD_CARET,
32   COLOR_THEME_LABEL_BAR,
33   COLOR_THEME_QUICK_INFO_BG,	 /* Quick info Background color */
34   COLOR_THEME_QUICK_INFO_FRAME,  /* Quick info frame color */
35   COLOR_THEME_QUICK_INFO_TEXT,	 /* Quick info Text color */
36   COLOR_THEME_SELECTIONRECTANGLE,
37   COLOR_THEME_TEXT,
38   COLOR_THEME_THEMELABEL2_BG,
39   COLOR_THEME_WIDGET_NORMAL_TEXT,   /* currently not used */
40   COLOR_THEME_WIDGET_SELECTED_TEXT, /* currently not used */
41   COLOR_THEME_WIDGET_PRESSED_TEXT,  /* currently not used */
42   COLOR_THEME_WIDGET_DISABLED_TEXT, /* text on disabled widgets */
43   COLOR_THEME_WINDOW_TITLEBAR_SEPARATOR,
44 
45   COLOR_THEME_ADVANCEDTERRAINDLG_TEXT,
46   COLOR_THEME_CITYDLG_BUY,
47   COLOR_THEME_CITYDLG_CELEB,	 /* city celebrating color */
48   COLOR_THEME_CITYDLG_CORRUPTION,
49   COLOR_THEME_CITYDLG_FOODPERTURN,
50   COLOR_THEME_CITYDLG_FOODSTOCK,
51   COLOR_THEME_CITYDLG_FOOD_SURPLUS, /* city food surplus color */
52   COLOR_THEME_CITYDLG_FRAME,
53   COLOR_THEME_CITYDLG_GOLD,	 /* city gold color */
54   COLOR_THEME_CITYDLG_GRANARY,
55   COLOR_THEME_CITYDLG_GROWTH,
56   COLOR_THEME_CITYDLG_HAPPY,	 /* city happy color */
57   COLOR_THEME_CITYDLG_IMPR,         /* city improvements */
58   COLOR_THEME_CITYDLG_INFOPANEL,
59   COLOR_THEME_CITYDLG_LUX,		 /* city luxuries color */
60   COLOR_THEME_CITYDLG_PANEL,
61   COLOR_THEME_CITYDLG_PROD,	 /* city production color */
62   COLOR_THEME_CITYDLG_SCIENCE,	 /* city science color */
63   COLOR_THEME_CITYDLG_SELL,
64   COLOR_THEME_CITYDLG_SHIELDSTOCK,
65   COLOR_THEME_CITYDLG_STOCKS,
66   COLOR_THEME_CITYDLG_SUPPORT,	 /* city units support color */
67   COLOR_THEME_CITYDLG_TRADE,	 /* city trade color */
68   COLOR_THEME_CITYDLG_UPKEEP,	 /* city upkeep color */
69   COLOR_THEME_CITYREP_FOODSTOCK,
70   COLOR_THEME_CITYREP_FRAME,
71   COLOR_THEME_CITYREP_PROD,
72   COLOR_THEME_CITYREP_TEXT,
73   COLOR_THEME_CITYREP_TRADE,
74   COLOR_THEME_CMA_FRAME,
75   COLOR_THEME_CMA_TEXT,
76   COLOR_THEME_CONNECTDLG_FRAME,
77   COLOR_THEME_CONNECTDLG_INNERFRAME,
78   COLOR_THEME_CONNECTDLG_LABELFRAME,
79   COLOR_THEME_CONNLISTDLG_FRAME,
80   COLOR_THEME_DIPLODLG_MEETING_HEADING_TEXT,
81   COLOR_THEME_DIPLODLG_MEETING_TEXT,
82   COLOR_THEME_DIPLODLG_TEXT,
83   COLOR_THEME_ECONOMYDLG_FRAME,
84   COLOR_THEME_ECONOMYDLG_NEG_TEXT,
85   COLOR_THEME_ECONOMYDLG_TEXT,
86   COLOR_THEME_HELPDLG_FRAME,
87   COLOR_THEME_HELPDLG_LINE,
88   COLOR_THEME_HELPDLG_LINE2,
89   COLOR_THEME_HELPDLG_LINE3,
90   COLOR_THEME_HELPDLG_TEXT,
91   COLOR_THEME_JOINGAMEDLG_FRAME,
92   COLOR_THEME_JOINGAMEDLG_TEXT,
93   COLOR_THEME_MAPVIEW_INFO_FRAME,
94   COLOR_THEME_MAPVIEW_INFO_TEXT,
95   COLOR_THEME_MAPVIEW_UNITINFO_TEXT,
96   COLOR_THEME_MAPVIEW_UNITINFO_VETERAN_TEXT,
97   COLOR_THEME_MESWIN_ACTIVE_TEXT,
98   COLOR_THEME_MESWIN_ACTIVE_TEXT2,
99   COLOR_THEME_MESWIN_FRAME,
100   COLOR_THEME_NATIONDLG_FRAME,
101   COLOR_THEME_NATIONDLG_LEGEND,
102   COLOR_THEME_NATIONDLG_TEXT,
103   COLOR_THEME_NEWCITYDLG_TEXT,
104   COLOR_THEME_OPTIONDLG_WORKLISTLIST_FRAME,
105   COLOR_THEME_OPTIONDLG_WORKLISTLIST_TEXT,
106   COLOR_THEME_PLRDLG_ALLIANCE,
107   COLOR_THEME_PLRDLG_ARMISTICE,
108   COLOR_THEME_PLRDLG_CEASEFIRE,
109   COLOR_THEME_PLRDLG_FRAME,
110   COLOR_THEME_PLRDLG_PEACE,
111   COLOR_THEME_PLRDLG_TEXT,
112   COLOR_THEME_PLRDLG_WAR,
113   COLOR_THEME_PLRDLG_WAR_RESTRICTED, /* player at war but can't meet or get intel. data */
114   COLOR_THEME_REVOLUTIONDLG_TEXT,
115   COLOR_THEME_SABOTAGEDLG_SEPARATOR,
116   COLOR_THEME_SCIENCEDLG_FRAME,
117   COLOR_THEME_SCIENCEDLG_MED_TECHICON_BG,
118   COLOR_THEME_SCIENCEDLG_TEXT,
119   COLOR_THEME_SELLIMPR_TEXT,
120   COLOR_THEME_UNITSREP_FRAME,
121   COLOR_THEME_UNITSREP_TEXT,
122   COLOR_THEME_UNITUPGRADE_TEXT,
123   COLOR_THEME_UNITDISBAND_TEXT,
124   COLOR_THEME_USERPASSWDDLG_FRAME,
125   COLOR_THEME_USERPASSWDDLG_TEXT,
126   COLOR_THEME_WARDLG_TEXT,
127   COLOR_THEME_WLDLG_FRAME,
128 
129   COLOR_THEME_LAST
130 };
131 
132 struct color;
133 struct theme_color_system;
134 struct theme;
135 
136 struct color *theme_get_color(const struct theme *t, enum theme_color color);
137 
138 /* Functions used by the theme to allocate the color system. */
139 struct theme_color_system *theme_color_system_read(struct section_file *file);
140 
141 void theme_color_system_free(struct theme_color_system *colors);
142 
143 #endif /* FC__THEMECOLORS_H */
144