1 #ifndef MC_SKIN_H
2 #define MC_SKIN_H
3
4 #include "lib/global.h"
5
6 #include "lib/mcconfig.h"
7
8 #include "lib/tty/color.h"
9
10
11
12
13
14
15
16 #define CORE_DEFAULT_COLOR mc_skin_color__cache[0]
17 #define CORE_NORMAL_COLOR mc_skin_color__cache[1]
18 #define CORE_MARKED_COLOR mc_skin_color__cache[2]
19 #define CORE_SELECTED_COLOR mc_skin_color__cache[3]
20 #define CORE_MARKED_SELECTED_COLOR mc_skin_color__cache[4]
21 #define CORE_DISABLED_COLOR mc_skin_color__cache[5]
22 #define CORE_REVERSE_COLOR mc_skin_color__cache[6]
23 #define CORE_COMMAND_MARK_COLOR mc_skin_color__cache[7]
24 #define CORE_HEADER_COLOR mc_skin_color__cache[8]
25 #define CORE_SHADOW_COLOR mc_skin_color__cache[9]
26 #define CORE_FRAME_COLOR mc_skin_color__cache[10]
27
28
29 #define DIALOG_NORMAL_COLOR mc_skin_color__cache[11]
30 #define DIALOG_FOCUS_COLOR mc_skin_color__cache[12]
31 #define DIALOG_HOT_NORMAL_COLOR mc_skin_color__cache[13]
32 #define DIALOG_HOT_FOCUS_COLOR mc_skin_color__cache[14]
33 #define DIALOG_SELECTED_NORMAL_COLOR mc_skin_color__cache[15]
34 #define DIALOG_SELECTED_FOCUS_COLOR mc_skin_color__cache[16]
35 #define DIALOG_TITLE_COLOR mc_skin_color__cache[17]
36 #define DIALOG_FRAME_COLOR mc_skin_color__cache[18]
37
38
39 #define ERROR_NORMAL_COLOR mc_skin_color__cache[19]
40 #define ERROR_FOCUS_COLOR mc_skin_color__cache[20]
41 #define ERROR_HOT_NORMAL_COLOR mc_skin_color__cache[21]
42 #define ERROR_HOT_FOCUS_COLOR mc_skin_color__cache[22]
43 #define ERROR_TITLE_COLOR mc_skin_color__cache[23]
44 #define ERROR_FRAME_COLOR mc_skin_color__cache[24]
45
46
47 #define MENU_ENTRY_COLOR mc_skin_color__cache[25]
48 #define MENU_SELECTED_COLOR mc_skin_color__cache[26]
49 #define MENU_HOT_COLOR mc_skin_color__cache[27]
50 #define MENU_HOTSEL_COLOR mc_skin_color__cache[28]
51 #define MENU_INACTIVE_COLOR mc_skin_color__cache[29]
52 #define MENU_FRAME_COLOR mc_skin_color__cache[30]
53
54
55 #define PMENU_ENTRY_COLOR mc_skin_color__cache[31]
56 #define PMENU_SELECTED_COLOR mc_skin_color__cache[32]
57 #define PMENU_HOT_COLOR mc_skin_color__cache[33]
58 #define PMENU_HOTSEL_COLOR mc_skin_color__cache[34]
59 #define PMENU_TITLE_COLOR mc_skin_color__cache[35]
60 #define PMENU_FRAME_COLOR mc_skin_color__cache[36]
61
62 #define BUTTONBAR_HOTKEY_COLOR mc_skin_color__cache[37]
63 #define BUTTONBAR_BUTTON_COLOR mc_skin_color__cache[38]
64
65 #define STATUSBAR_COLOR mc_skin_color__cache[39]
66
67
68
69
70
71 #define CORE_GAUGE_COLOR mc_skin_color__cache[40]
72 #define CORE_INPUT_COLOR mc_skin_color__cache[41]
73 #define CORE_INPUT_UNCHANGED_COLOR mc_skin_color__cache[42]
74 #define CORE_INPUT_MARK_COLOR mc_skin_color__cache[43]
75 #define CORE_INPUT_HISTORY_COLOR mc_skin_color__cache[44]
76 #define CORE_COMMAND_HISTORY_COLOR mc_skin_color__cache[45]
77
78 #define HELP_NORMAL_COLOR mc_skin_color__cache[46]
79 #define HELP_ITALIC_COLOR mc_skin_color__cache[47]
80 #define HELP_BOLD_COLOR mc_skin_color__cache[48]
81 #define HELP_LINK_COLOR mc_skin_color__cache[49]
82 #define HELP_SLINK_COLOR mc_skin_color__cache[50]
83 #define HELP_TITLE_COLOR mc_skin_color__cache[51]
84 #define HELP_FRAME_COLOR mc_skin_color__cache[52]
85
86 #define VIEWER_NORMAL_COLOR mc_skin_color__cache[53]
87 #define VIEWER_BOLD_COLOR mc_skin_color__cache[54]
88 #define VIEWER_UNDERLINED_COLOR mc_skin_color__cache[55]
89 #define VIEWER_SELECTED_COLOR mc_skin_color__cache[56]
90 #define VIEWER_FRAME_COLOR mc_skin_color__cache[57]
91
92
93
94
95
96
97 #define EDITOR_NORMAL_COLOR mc_skin_color__cache[58]
98 #define EDITOR_NONPRINTABLE_COLOR mc_skin_color__cache[59]
99 #define EDITOR_BOLD_COLOR mc_skin_color__cache[60]
100 #define EDITOR_MARKED_COLOR mc_skin_color__cache[61]
101 #define EDITOR_WHITESPACE_COLOR mc_skin_color__cache[62]
102 #define EDITOR_RIGHT_MARGIN_COLOR mc_skin_color__cache[63]
103 #define EDITOR_BACKGROUND_COLOR mc_skin_color__cache[64]
104 #define EDITOR_FRAME_COLOR mc_skin_color__cache[65]
105 #define EDITOR_FRAME_ACTIVE_COLOR mc_skin_color__cache[66]
106 #define EDITOR_FRAME_DRAG_COLOR mc_skin_color__cache[67]
107
108 #define EDITOR_LINE_STATE_COLOR mc_skin_color__cache[68]
109 #define EDITOR_BOOKMARK_COLOR mc_skin_color__cache[69]
110 #define EDITOR_BOOKMARK_FOUND_COLOR mc_skin_color__cache[70]
111
112
113 #define DIFFVIEWER_ADDED_COLOR mc_skin_color__cache[71]
114 #define DIFFVIEWER_CHANGEDLINE_COLOR mc_skin_color__cache[72]
115 #define DIFFVIEWER_CHANGEDNEW_COLOR mc_skin_color__cache[73]
116 #define DIFFVIEWER_CHANGED_COLOR mc_skin_color__cache[74]
117 #define DIFFVIEWER_REMOVED_COLOR mc_skin_color__cache[75]
118 #define DIFFVIEWER_ERROR_COLOR mc_skin_color__cache[76]
119
120 #define MC_SKIN_COLOR_CACHE_COUNT 77
121
122
123
124
125
126 typedef struct mc_skin_struct
127 {
128 gchar *name;
129 gchar *description;
130 mc_config_t *config;
131 GHashTable *colors;
132 gboolean have_256_colors;
133 gboolean have_true_colors;
134 } mc_skin_t;
135
136
137
138 extern int mc_skin_color__cache[];
139 extern mc_skin_t mc_skin__default;
140
141
142
143 gboolean mc_skin_init (const gchar *skin_override, GError **error);
144 void mc_skin_deinit (void);
145
146 int mc_skin_color_get (const gchar *group, const gchar *name);
147
148 void mc_skin_lines_parse_ini_file (mc_skin_t *mc_skin);
149
150 gchar *mc_skin_get (const gchar *group, const gchar *key, const gchar *default_value);
151
152 GPtrArray *mc_skin_list (void);
153
154 #endif