2 * Copyright (C) 2005-2009 Andre Noll <maan@systemlinux.org>
4 * Licensed under the GPL v2. For licencing details see COPYING.
14 static int current_theme_num
;
16 static void init_theme_simple(struct gui_theme
*t
)
18 struct stat_item_data
*d
= t
->data
;
20 t
->author
= "Andre Noll";
24 t
->top_lines_default
= 2;
25 t
->sb_bg
= COLOR_CYAN
;
26 t
->sb_fg
= COLOR_BLACK
;
27 t
->cmd_bg
= COLOR_WHITE
;
28 t
->cmd_fg
= COLOR_BLACK
;
29 t
->output_bg
= COLOR_BLUE
;
30 t
->output_fg
= COLOR_WHITE
;
31 t
->msg_bg
= COLOR_BLUE
;
32 t
->msg_fg
= COLOR_YELLOW
;
33 t
->err_msg_bg
= COLOR_RED
;
34 t
->err_msg_fg
= COLOR_WHITE
;
35 t
->welcome_bg
= COLOR_BLUE
;
36 t
->welcome_fg
= COLOR_WHITE
;
37 t
->sep_bg
= COLOR_BLUE
;
38 t
->sep_fg
= COLOR_CYAN
;
39 t
->default_fg
= COLOR_WHITE
;
40 t
->default_bg
= COLOR_BLUE
;
43 d
[SI_BASENAME
].prefix
= "";
44 d
[SI_BASENAME
].postfix
= "";
45 d
[SI_BASENAME
].fg
= COLOR_WHITE
;
46 d
[SI_BASENAME
].bg
= COLOR_BLUE
;
47 d
[SI_BASENAME
].align
= CENTER
;
50 d
[SI_BASENAME
].len
= 100;
52 d
[SI_STATUS
].prefix
= "para_server: ";
53 d
[SI_STATUS
].postfix
= "";
54 d
[SI_STATUS
].fg
= COLOR_WHITE
;
55 d
[SI_STATUS
].bg
= COLOR_BLUE
;
56 d
[SI_STATUS
].align
= CENTER
;
59 d
[SI_STATUS
].len
= 50;
61 d
[SI_AUDIOD_STATUS
].prefix
= "para_audiod: ";
62 d
[SI_AUDIOD_STATUS
].postfix
= "";
63 d
[SI_AUDIOD_STATUS
].fg
= COLOR_WHITE
;
64 d
[SI_AUDIOD_STATUS
].bg
= COLOR_BLUE
;
65 d
[SI_AUDIOD_STATUS
].align
= CENTER
;
66 d
[SI_AUDIOD_STATUS
].x
= 50;
67 d
[SI_AUDIOD_STATUS
].y
= 60;
68 d
[SI_AUDIOD_STATUS
].len
= 50;
72 static void init_theme_colorful_blackness(struct gui_theme
*t
)
74 struct stat_item_data
*d
= t
->data
;
75 t
->name
= "colorful blackness";
76 t
->author
= "Andre Noll";
77 /* minimal number of lines that is needed to display all
78 * information provided by this theme
83 t
->top_lines_default
= 11; /* default number of lines */
85 t
->sb_bg
= COLOR_GREEN
; /* status bar background */
86 t
->sb_fg
= COLOR_BLACK
; /* status bar foreground */
87 t
->cmd_bg
= COLOR_BLACK
;
88 t
->cmd_fg
= COLOR_YELLOW
;
89 t
->output_bg
= COLOR_BLACK
;
90 t
->output_fg
= COLOR_CYAN
;
91 t
->msg_bg
= COLOR_BLACK
;
92 t
->msg_fg
= COLOR_WHITE
;
93 t
->err_msg_bg
= COLOR_RED
;
94 t
->err_msg_fg
= COLOR_WHITE
;
95 t
->welcome_bg
= COLOR_BLUE
;
96 t
->welcome_fg
= COLOR_WHITE
;
97 t
->sep_bg
= COLOR_BLACK
; /* color of the separator */
98 t
->sep_fg
= COLOR_BLUE
;
100 t
->default_bg
= COLOR_BLACK
;
101 t
->default_fg
= COLOR_MAGENTA
;
104 d
[SI_PLAY_TIME
].prefix
= "";
105 d
[SI_PLAY_TIME
].postfix
= "";
106 d
[SI_PLAY_TIME
].fg
= COLOR_CYAN
;
107 d
[SI_PLAY_TIME
].bg
= COLOR_BLACK
;
108 d
[SI_PLAY_TIME
].align
= CENTER
;
109 d
[SI_PLAY_TIME
].x
= 0;
110 d
[SI_PLAY_TIME
].y
= 7;
111 d
[SI_PLAY_TIME
].len
= 35;
113 d
[SI_BASENAME
].prefix
= "";
114 d
[SI_BASENAME
].postfix
= "";
115 d
[SI_BASENAME
].fg
= COLOR_CYAN
;
116 d
[SI_BASENAME
].bg
= COLOR_BLACK
;
117 d
[SI_BASENAME
].align
= LEFT
;
118 d
[SI_BASENAME
].x
= 35;
119 d
[SI_BASENAME
].y
= 7;
120 d
[SI_BASENAME
].len
= 65;
122 d
[SI_STATUS
].prefix
= "";
123 d
[SI_STATUS
].postfix
= " ";
124 d
[SI_STATUS
].fg
= COLOR_RED
;
125 d
[SI_STATUS
].bg
= COLOR_BLACK
;
126 d
[SI_STATUS
].align
= RIGHT
;
129 d
[SI_STATUS
].len
= 11;
131 d
[SI_STATUS_FLAGS
].prefix
= "(";
132 d
[SI_STATUS_FLAGS
].postfix
= ")";
133 d
[SI_STATUS_FLAGS
].fg
= COLOR_RED
;
134 d
[SI_STATUS_FLAGS
].bg
= COLOR_BLACK
;
135 d
[SI_STATUS_FLAGS
].align
= LEFT
;
136 d
[SI_STATUS_FLAGS
].x
= 11;
137 d
[SI_STATUS_FLAGS
].y
= 17;
138 d
[SI_STATUS_FLAGS
].len
= 10;
140 d
[SI_IMAGE_ID
].prefix
= "img: ";
141 d
[SI_IMAGE_ID
].postfix
= "";
142 d
[SI_IMAGE_ID
].fg
= COLOR_RED
;
143 d
[SI_IMAGE_ID
].bg
= COLOR_BLACK
;
144 d
[SI_IMAGE_ID
].align
= CENTER
;
145 d
[SI_IMAGE_ID
].x
= 21;
146 d
[SI_IMAGE_ID
].y
= 17;
147 d
[SI_IMAGE_ID
].len
= 10;
149 d
[SI_LYRICS_ID
].prefix
= "lyr: ";
150 d
[SI_LYRICS_ID
].postfix
= "";
151 d
[SI_LYRICS_ID
].fg
= COLOR_RED
;
152 d
[SI_LYRICS_ID
].bg
= COLOR_BLACK
;
153 d
[SI_LYRICS_ID
].align
= CENTER
;
154 d
[SI_LYRICS_ID
].x
= 31;
155 d
[SI_LYRICS_ID
].y
= 17;
156 d
[SI_LYRICS_ID
].len
= 11;
158 d
[SI_FORMAT
].prefix
= "format: ";
159 d
[SI_FORMAT
].postfix
= "";
160 d
[SI_FORMAT
].fg
= COLOR_RED
;
161 d
[SI_FORMAT
].bg
= COLOR_BLACK
;
162 d
[SI_FORMAT
].align
= CENTER
;
165 d
[SI_FORMAT
].len
= 18;
167 d
[SI_NUM_PLAYED
].prefix
= "#";
168 d
[SI_NUM_PLAYED
].postfix
= "";
169 d
[SI_NUM_PLAYED
].fg
= COLOR_RED
;
170 d
[SI_NUM_PLAYED
].bg
= COLOR_BLACK
;
171 d
[SI_NUM_PLAYED
].align
= LEFT
;
172 d
[SI_NUM_PLAYED
].x
= 60;
173 d
[SI_NUM_PLAYED
].y
= 17;
174 d
[SI_NUM_PLAYED
].len
= 5;
176 d
[SI_BITRATE
].prefix
= "";
177 d
[SI_BITRATE
].postfix
= "";
178 d
[SI_BITRATE
].fg
= COLOR_RED
;
179 d
[SI_BITRATE
].bg
= COLOR_BLACK
;
180 d
[SI_BITRATE
].align
= CENTER
;
181 d
[SI_BITRATE
].x
= 65;
182 d
[SI_BITRATE
].y
= 17;
183 d
[SI_BITRATE
].len
= 13;
185 d
[SI_FREQUENCY
].prefix
= "";
186 d
[SI_FREQUENCY
].postfix
= "";
187 d
[SI_FREQUENCY
].fg
= COLOR_RED
;
188 d
[SI_FREQUENCY
].bg
= COLOR_BLACK
;
189 d
[SI_FREQUENCY
].align
= CENTER
;
190 d
[SI_FREQUENCY
].x
= 78;
191 d
[SI_FREQUENCY
].y
= 17;
192 d
[SI_FREQUENCY
].len
= 10;
194 d
[SI_SCORE
].prefix
= "sc: ";
195 d
[SI_SCORE
].postfix
= "";
196 d
[SI_SCORE
].fg
= COLOR_RED
;
197 d
[SI_SCORE
].bg
= COLOR_BLACK
;
198 d
[SI_SCORE
].align
= CENTER
;
201 d
[SI_SCORE
].len
= 10;
203 d
[SI_AUDIOD_STATUS
].prefix
= "";
204 d
[SI_AUDIOD_STATUS
].postfix
= "";
205 d
[SI_AUDIOD_STATUS
].fg
= COLOR_MAGENTA
;
206 d
[SI_AUDIOD_STATUS
].bg
= COLOR_BLACK
;
207 d
[SI_AUDIOD_STATUS
].align
= CENTER
;
208 d
[SI_AUDIOD_STATUS
].x
= 0;
209 d
[SI_AUDIOD_STATUS
].y
= 27;
210 d
[SI_AUDIOD_STATUS
].len
= 5;
212 d
[SI_DECODER_FLAGS
].prefix
= "[";
213 d
[SI_DECODER_FLAGS
].postfix
= "]";
214 d
[SI_DECODER_FLAGS
].fg
= COLOR_MAGENTA
;
215 d
[SI_DECODER_FLAGS
].bg
= COLOR_BLACK
;
216 d
[SI_DECODER_FLAGS
].align
= CENTER
;
217 d
[SI_DECODER_FLAGS
].x
= 5;
218 d
[SI_DECODER_FLAGS
].y
= 27;
219 d
[SI_DECODER_FLAGS
].len
= 10;
221 d
[SI_MTIME
].prefix
= "mod: ";
222 d
[SI_MTIME
].postfix
= "";
223 d
[SI_MTIME
].fg
= COLOR_MAGENTA
;
224 d
[SI_MTIME
].bg
= COLOR_BLACK
;
225 d
[SI_MTIME
].align
= CENTER
;
228 d
[SI_MTIME
].len
= 22;
230 d
[SI_FILE_SIZE
].prefix
= "";
231 d
[SI_FILE_SIZE
].postfix
= "kb";
232 d
[SI_FILE_SIZE
].fg
= COLOR_MAGENTA
;
233 d
[SI_FILE_SIZE
].bg
= COLOR_BLACK
;
234 d
[SI_FILE_SIZE
].align
= CENTER
;
235 d
[SI_FILE_SIZE
].x
= 37;
236 d
[SI_FILE_SIZE
].y
= 27;
237 d
[SI_FILE_SIZE
].len
= 10;
239 d
[SI_CHANNELS
].prefix
= "";
240 d
[SI_CHANNELS
].postfix
= "ch";
241 d
[SI_CHANNELS
].fg
= COLOR_MAGENTA
;
242 d
[SI_CHANNELS
].bg
= COLOR_BLACK
;
243 d
[SI_CHANNELS
].align
= CENTER
;
244 d
[SI_CHANNELS
].x
= 47;
245 d
[SI_CHANNELS
].y
= 27;
246 d
[SI_CHANNELS
].len
= 5;
248 d
[SI_LAST_PLAYED
].prefix
= "lp: ";
249 d
[SI_LAST_PLAYED
].postfix
= "";
250 d
[SI_LAST_PLAYED
].fg
= COLOR_MAGENTA
;
251 d
[SI_LAST_PLAYED
].bg
= COLOR_BLACK
;
252 d
[SI_LAST_PLAYED
].align
= CENTER
;
253 d
[SI_LAST_PLAYED
].x
= 52;
254 d
[SI_LAST_PLAYED
].y
= 27;
255 d
[SI_LAST_PLAYED
].len
= 21;
257 d
[SI_NUM_CHUNKS
].prefix
= "";
258 d
[SI_NUM_CHUNKS
].postfix
= "x";
259 d
[SI_NUM_CHUNKS
].fg
= COLOR_MAGENTA
;
260 d
[SI_NUM_CHUNKS
].bg
= COLOR_BLACK
;
261 d
[SI_NUM_CHUNKS
].align
= RIGHT
;
262 d
[SI_NUM_CHUNKS
].x
= 73;
263 d
[SI_NUM_CHUNKS
].y
= 27;
264 d
[SI_NUM_CHUNKS
].len
= 11;
266 d
[SI_CHUNK_TIME
].prefix
= "";
267 d
[SI_CHUNK_TIME
].postfix
= "ms";
268 d
[SI_CHUNK_TIME
].fg
= COLOR_MAGENTA
;
269 d
[SI_CHUNK_TIME
].bg
= COLOR_BLACK
;
270 d
[SI_CHUNK_TIME
].align
= LEFT
;
271 d
[SI_CHUNK_TIME
].x
= 84;
272 d
[SI_CHUNK_TIME
].y
= 27;
273 d
[SI_CHUNK_TIME
].len
= 8;
275 d
[SI_AMPLIFICATION
].prefix
= "amp:";
276 d
[SI_AMPLIFICATION
].postfix
= "";
277 d
[SI_AMPLIFICATION
].fg
= COLOR_MAGENTA
;
278 d
[SI_AMPLIFICATION
].bg
= COLOR_BLACK
;
279 d
[SI_AMPLIFICATION
].align
= RIGHT
;
280 d
[SI_AMPLIFICATION
].x
= 92;
281 d
[SI_AMPLIFICATION
].y
= 27;
282 d
[SI_AMPLIFICATION
].len
= 8;
284 d
[SI_AUDIO_FILE_INFO
].prefix
= "";
285 d
[SI_AUDIO_FILE_INFO
].postfix
= "";
286 d
[SI_AUDIO_FILE_INFO
].fg
= COLOR_GREEN
;
287 d
[SI_AUDIO_FILE_INFO
].bg
= COLOR_BLACK
;
288 d
[SI_AUDIO_FILE_INFO
].align
= CENTER
;
289 d
[SI_AUDIO_FILE_INFO
].x
= 0;
290 d
[SI_AUDIO_FILE_INFO
].y
= 43;
291 d
[SI_AUDIO_FILE_INFO
].len
= 100;
293 d
[SI_TAGINFO1
].prefix
= "";
294 d
[SI_TAGINFO1
].postfix
= "";
295 d
[SI_TAGINFO1
].fg
= COLOR_GREEN
;
296 d
[SI_TAGINFO1
].bg
= COLOR_BLACK
;
297 d
[SI_TAGINFO1
].align
= CENTER
;
298 d
[SI_TAGINFO1
].x
= 0;
299 d
[SI_TAGINFO1
].y
= 53;
300 d
[SI_TAGINFO1
].len
= 100;
302 d
[SI_TAGINFO2
].prefix
= "";
303 d
[SI_TAGINFO2
].postfix
= "";
304 d
[SI_TAGINFO2
].fg
= COLOR_GREEN
;
305 d
[SI_TAGINFO2
].bg
= COLOR_BLACK
;
306 d
[SI_TAGINFO2
].align
= CENTER
;
307 d
[SI_TAGINFO2
].x
= 0;
308 d
[SI_TAGINFO2
].y
= 63;
309 d
[SI_TAGINFO2
].len
= 100;
311 d
[SI_AFS_MODE
].prefix
= "";
312 d
[SI_AFS_MODE
].postfix
= "";
313 d
[SI_AFS_MODE
].fg
= COLOR_YELLOW
;
314 d
[SI_AFS_MODE
].bg
= COLOR_BLACK
;
315 d
[SI_AFS_MODE
].align
= CENTER
;
316 d
[SI_AFS_MODE
].x
= 0;
317 d
[SI_AFS_MODE
].y
= 77;
318 d
[SI_AFS_MODE
].len
= 100;
320 d
[SI_ATTRIBUTES_TXT
].prefix
= "";
321 d
[SI_ATTRIBUTES_TXT
].postfix
= "";
322 d
[SI_ATTRIBUTES_TXT
].fg
= COLOR_YELLOW
;
323 d
[SI_ATTRIBUTES_TXT
].bg
= COLOR_BLACK
;
324 d
[SI_ATTRIBUTES_TXT
].align
= CENTER
;
325 d
[SI_ATTRIBUTES_TXT
].x
= 0;
326 d
[SI_ATTRIBUTES_TXT
].y
= 87;
327 d
[SI_ATTRIBUTES_TXT
].len
= 100;
329 d
[SI_DIRECTORY
].prefix
= "dir: ";
330 d
[SI_DIRECTORY
].postfix
= "";
331 d
[SI_DIRECTORY
].fg
= COLOR_YELLOW
;
332 d
[SI_DIRECTORY
].bg
= COLOR_BLACK
;
333 d
[SI_DIRECTORY
].align
= CENTER
;
334 d
[SI_DIRECTORY
].x
= 0;
335 d
[SI_DIRECTORY
].y
= 97;
336 d
[SI_DIRECTORY
].len
= 100;
339 void init_theme(int num
, struct gui_theme
*t
)
342 FOR_EACH_STATUS_ITEM(i
)
344 current_theme_num
= num
;
346 return (num
% NUM_THEMES
)?
347 init_theme_simple(t
) : init_theme_colorful_blackness(t
);
350 void prev_theme(struct gui_theme
*t
)
352 return init_theme(++current_theme_num
, t
);
355 void next_theme(struct gui_theme
*t
)
357 return init_theme(--current_theme_num
, t
);