Skip to content

Commit 39f99f9

Browse files
committed
new theming part 2
1 parent af5f06a commit 39f99f9

File tree

3 files changed

+99
-100
lines changed

3 files changed

+99
-100
lines changed

common/droidboot_theme.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ lv_style_t droidboot_list_button_selected_style;
1010
//lv_style_t droidboot_list_timeout_style;
1111

1212
void droidboot_style_init(struct global_config *global_config){
13-
droidboot_log(DROIDBOOT_LOG_TRACE, "Current theme settings: radius: %d, bg_color: %llx, border_width: %d, border_color: %llx \n", global_config->radius, global_config->bg_color, global_config->border_width, global_config->border_color);
1413
lv_style_init(&droidboot_list_style);
1514
lv_style_set_radius(&droidboot_list_style, global_config->win_radius);
1615
lv_style_set_bg_color(&droidboot_list_style, lv_color_hex(global_config->win_bg_color));
@@ -25,21 +24,21 @@ void droidboot_style_init(struct global_config *global_config){
2524

2625
lv_style_init(&droidboot_list_button_style);
2726
lv_style_set_radius(&droidboot_list_button_style, global_config->button_unselected_radius);
28-
lv_style_set_text_color(&droidboot_list_button_style, lv_color_hex(global_config->button_text_color));
29-
lv_style_set_bg_color(&droidboot_list_button_style, lv_color_hex(global_config->button_color));
30-
lv_style_set_border_width(&droidboot_list_button_style, global_config->button_border_width);
31-
lv_style_set_border_color(&droidboot_list_button_style, lv_color_hex(global_config->button_border_color));
27+
lv_style_set_text_color(&droidboot_list_button_style, lv_color_hex(global_config->button_unselected_text_color));
28+
lv_style_set_bg_color(&droidboot_list_button_style, lv_color_hex(global_config->button_unselected_color));
29+
lv_style_set_border_width(&droidboot_list_button_style, global_config->button_border_unselected_size);
30+
lv_style_set_border_color(&droidboot_list_button_style, lv_color_hex(global_config->button_border_unselected_color));
3231
if(1)
3332
lv_style_set_transform_width(&droidboot_list_button_style, 100);
3433

3534
lv_style_init(&droidboot_list_button_selected_style);
3635
lv_style_set_radius(&droidboot_list_button_selected_style, global_config->button_selected_radius);
37-
lv_style_set_border_color(&droidboot_list_button_selected_style, lv_color_hex(global_config->border_selected_color));
36+
lv_style_set_border_color(&droidboot_list_button_selected_style, lv_color_hex(global_config->button_border_selected_color));
3837
lv_style_set_text_color(&droidboot_list_button_selected_style, lv_color_hex(global_config->button_selected_text_color));
3938
lv_style_set_bg_color(&droidboot_list_button_selected_style, lv_color_hex(global_config->button_selected_color));
40-
lv_style_set_border_width(&droidboot_list_button_selected_style, global_config->button_border_width);
41-
lv_style_set_border_color(&droidboot_list_button_selected_style, lv_color_hex(global_config->button_border_color));
42-
39+
lv_style_set_border_width(&droidboot_list_button_selected_style, global_config->button_border_selected_size);
40+
lv_style_set_border_color(&droidboot_list_button_selected_style, lv_color_hex(global_config->button_border_selected_color));
4341

42+
// TODO implement button_grow_default, global_font_name, global_font_size
4443
}
4544

config_parser/droidboot_config.c

Lines changed: 89 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -200,74 +200,77 @@ int parse_global_config(struct global_config *global_config) {
200200
ext4_file fp;
201201
unsigned char *buf;
202202

203-
ret = ext4_fopen (&fp, GLOBAL_CONFIG_FILE, "r");
204-
if(ret!=0){
205-
global_config->default_entry_title = NULL;
206-
global_config->timeout = 20;
207-
droidboot_log(DROIDBOOT_LOG_WARNING, "config_parser: no global config found\n");
208-
// Background color
209-
global_config->win_bg_color = 0x000000;
203+
global_config->default_entry_title = NULL;
204+
global_config->timeout = 20;
210205

211-
// Radius
212-
global_config->win_radius = 0;
206+
// Background color
207+
global_config->win_bg_color = 0x000000;
213208

214-
// Border width
215-
global_config->win_border_size = 0;
209+
// Radius
210+
global_config->win_radius = 0;
216211

217-
// Border color
218-
global_config->win_border_color = 0xffffff;
212+
// Border width
213+
global_config->win_border_size = 0;
219214

220-
// List background color
221-
global_config->list_bg_color = 0x000000;
215+
// Border color
216+
global_config->win_border_color = 0xffffff;
222217

223-
// List radius
224-
global_config->list_radius = 0;
218+
// List background color
219+
global_config->list_bg_color = 0x000000;
225220

226-
// List border width
227-
global_config->list_border_size = 0;
221+
// List radius
222+
global_config->list_radius = 0;
228223

229-
// List border color
230-
global_config->list_border_color = 0xffffff;
224+
// List border width
225+
global_config->list_border_size = 0;
231226

232-
// Button color
233-
global_config->button_unselected_color = 0x000000;
227+
// List border color
228+
global_config->list_border_color = 0xffffff;
234229

235-
// Button text color
236-
global_config->button_unselected_text_color = 0xffffff;
230+
// Button color
231+
global_config->button_unselected_color = 0x000000;
237232

238-
// Button selected color
239-
global_config->button_selected_color = 0xff9800;
233+
// Button text color
234+
global_config->button_unselected_text_color = 0xffffff;
240235

241-
// Button selected text color
242-
global_config->button_selected_text_color = 0x000000;
236+
// Button selected color
237+
global_config->button_selected_color = 0xff9800;
243238

244-
// Button border width
245-
global_config->button_border_unselected_size = 1;
239+
// Button selected text color
240+
global_config->button_selected_text_color = 0x000000;
246241

247-
// Button border color
248-
global_config->button_border_unselected_color = 0xffffff;
242+
// Button border width
243+
global_config->button_border_unselected_size = 1;
249244

250-
// Button border selected width
251-
global_config->button_border_selected_size = 1;
245+
// Button border color
246+
global_config->button_border_unselected_color = 0xffffff;
252247

253-
// Button border selected color
254-
global_config->button_border_selected_color = 0xffffff;
248+
// Button border selected width
249+
global_config->button_border_selected_size = 1;
255250

256-
// Button grow by default
257-
global_config->button_grow_default = true;
251+
// Button border selected color
252+
global_config->button_border_selected_color = 0xffffff;
258253

259-
// Button radius
260-
global_config->button_radius = 0;
254+
// Button grow by default
255+
global_config->button_grow_default = true;
261256

262-
// Global font size
263-
global_config->global_font_size = 0;
257+
// Button radius
258+
global_config->button_unselected_radius = 0;
264259

265-
// Global font name
266-
global_config->global_font_name = NULL;
260+
// Button selected radius
261+
global_config->button_selected_radius = 0;
267262

268-
return 0;
263+
// Global font size
264+
global_config->global_font_size = 0;
269265

270-
}
266+
// Global font name
267+
global_config->global_font_name = NULL;
268+
269+
ret = ext4_fopen (&fp, GLOBAL_CONFIG_FILE, "r");
270+
if(ret!=0) {
271+
droidboot_log(DROIDBOOT_LOG_WARNING, "config_parser: no global config found\n");
272+
return 0;
273+
}
271274

272275
ext4_fseek(&fp, 0, SEEK_END);
273276
uint64_t fsize = ext4_ftell(&fp);
@@ -280,132 +283,128 @@ int parse_global_config(struct global_config *global_config) {
280283
ext4_fclose(&fp);
281284
buf[fsize] = '\0';
282285

283-
ret = config_parse_option(&global_config->default_entry_title, "default", (const char *)buf);
284-
if(ret < 0) {
285-
global_config->default_entry_title = NULL;
286-
}
286+
char *default_entry_title = NULL;
287+
ret = config_parse_option(&default_entry_title, "default", (const char *)buf);
288+
if(ret >= 0) global_config->default_entry_title = default_entry_title;
287289
droidboot_log(DROIDBOOT_LOG_INFO, "config_parser: default config parse done\n");
288290

289291
char *timeout = NULL;
290292
ret = config_parse_option(&timeout, "timeout", (const char *)buf);
291-
if(ret<0) global_config->timeout = 20;
292-
else global_config->timeout = (int)droidboot_atoi(timeout);
293+
if(ret>=0) global_config->timeout = (int)droidboot_atoi(timeout);
293294
droidboot_log(DROIDBOOT_LOG_INFO, "config_parser: timeout is: %d seconds\n", global_config->timeout);
294295

295296
// Theme parsing
296297

297298
// Background color
298299
char *win_bg_color = NULL;
299300
ret = config_parse_option(&win_bg_color, "win_bg_color", (const char *)buf);
300-
if(ret<0) global_config->win_bg_color = 0x000000;
301-
else global_config->win_bg_color = droidboot_strtol(win_bg_color, NULL, 16);
301+
if(ret>=0) global_config->win_bg_color = droidboot_strtol(win_bg_color, NULL, 16);
302302
free(win_bg_color);
303303

304304
// Radius
305305
char *win_radius = NULL;
306306
ret = config_parse_option(&win_radius, "win_radius", (const char *)buf);
307-
if(ret<0) global_config->win_radius = 0;
308-
else global_config->win_radius = droidboot_atoi(win_radius);
307+
if(ret>=0) global_config->win_radius = droidboot_atoi(win_radius);
309308
free(win_radius);
310309

311310
// Border width
312311
char *win_border_size = NULL;
313312
ret = config_parse_option(&win_border_size, "win_border_size", (const char *)buf);
314-
if(ret<0) global_config->win_border_size = 0;
315-
else global_config->win_border_size = droidboot_atoi(win_border_size);
313+
if(ret>=0) global_config->win_border_size = droidboot_atoi(win_border_size);
316314
free(win_border_size);
317315

318316
// Border color
319317
char *win_border_color = NULL;
320318
ret = config_parse_option(&win_border_color, "win_border_color", (const char *)buf);
321-
if(ret<0) global_config->win_border_color = 0xffffff;
322-
else global_config->win_border_color = droidboot_strtol(win_border_color, NULL, 16);
319+
if(ret>=0) global_config->win_border_color = droidboot_strtol(win_border_color, NULL, 16);
323320
free(win_border_color);
324321

325322
// Button unselected color
326323
char *button_unselected_color = NULL;
327324
ret = config_parse_option(&button_unselected_color, "button_unselected_color", (const char *)buf);
328-
if(ret<0) global_config->button_unselected_color = 0x000000;
329-
else global_config->button_unselected_color = droidboot_strtol(button_unselected_color, NULL, 16);
325+
if(ret>=0) global_config->button_unselected_color = droidboot_strtol(button_unselected_color, NULL, 16);
330326
free(button_unselected_color);
331327

332328
// Button unselected text color
333329
char *button_unselected_text_color = NULL;
334330
ret = config_parse_option(&button_unselected_text_color, "button_unselected_text_color", (const char *)buf);
335-
if(ret<0) global_config->button_unselected_text_color = 0xffffff;
336-
else global_config->button_unselected_text_color = droidboot_strtol(button_unselected_text_color, NULL, 16);
331+
if(ret>=0) global_config->button_unselected_text_color = droidboot_strtol(button_unselected_text_color, NULL, 16);
337332
free(button_unselected_text_color);
338333

339334
// Button selected color
340335
char *button_selected_color = NULL;
341336
ret = config_parse_option(&button_selected_color, "button_selected_color", (const char *)buf);
342-
if(ret<0) global_config->button_selected_color = 0xff9800;
343-
else global_config->button_selected_color = droidboot_strtol(button_selected_color, NULL, 16);
337+
if(ret>=0) global_config->button_selected_color = droidboot_strtol(button_selected_color, NULL, 16);
344338
free(button_selected_color);
345339

346340
// Button selected text color
347341
char *button_selected_text_color = NULL;
348342
ret = config_parse_option(&button_selected_text_color, "button_selected_text_color", (const char *)buf);
349-
if(ret<0) global_config->button_selected_text_color = 0x000000;
350-
else global_config->button_selected_text_color = droidboot_strtol(button_selected_text_color, NULL, 16);
343+
if(ret>=0) global_config->button_selected_text_color = droidboot_strtol(button_selected_text_color, NULL, 16);
351344
free(button_selected_text_color);
352345

353346
// Button border size
354347
char *button_border_unselected_size = NULL;
355348
ret = config_parse_option(&button_border_unselected_size, "button_border_unselected_size", (const char *)buf);
356-
if(ret<0) global_config->button_border_unselected_size = 1;
357-
else global_config->button_border_unselected_size = droidboot_atoi(button_border_unselected_size);
349+
if(ret>=0) global_config->button_border_unselected_size = droidboot_atoi(button_border_unselected_size);
358350
free(button_border_unselected_size);
359351

360352
// Button border color
361353
char *button_border_unselected_color = NULL;
362354
ret = config_parse_option(&button_border_unselected_color, "button_border_unselected_color", (const char *)buf);
363-
if(ret<0) global_config->button_border_unselected_color = 0xffffff;
364-
else global_config->button_border_unselected_color = droidboot_strtol(button_border_unselected_color, NULL, 16);
355+
if(ret>=0) global_config->button_border_unselected_color = droidboot_strtol(button_border_unselected_color, NULL, 16);
365356
free(button_border_unselected_color);
366357

367358
// Button border selected color
368359
char *button_border_selected_color = NULL;
369360
ret = config_parse_option(&button_border_selected_color, "button_border_selected_color", (const char *)buf);
370-
if(ret<0) global_config->button_border_selected_color = 0xffffff;
371-
else global_config->button_border_selected_color = droidboot_strtol(button_border_selected_color, NULL, 16);
361+
if(ret>=0) global_config->button_border_selected_color = droidboot_strtol(button_border_selected_color, NULL, 16);
372362
free(button_border_selected_color);
373363

374364
// Button border selected size
375365
char *button_border_selected_size = NULL;
376366
ret = config_parse_option(&button_border_selected_size, "button_border_selected_size", (const char *)buf);
377-
if(ret<0) global_config->button_border_selected_size = 1;
378-
else global_config->button_border_selected_size = droidboot_atoi(button_border_selected_size);
367+
if(ret>=0) global_config->button_border_selected_size = droidboot_atoi(button_border_selected_size);
379368
free(button_border_selected_size);
380369

381370
// Button grow by default
382371
char *button_grow_default = NULL;
383372
ret = config_parse_option(&button_grow_default, "button_grow_default", (const char *)buf);
384-
if(ret < 0 || strcmp(button_grow_default, "true") == 0)
385-
global_config->button_grow_default = true;
386-
else
387-
global_config->button_grow_default = false;
373+
if(ret >= 0) {
374+
if (strcmp(button_grow_default, "true") == 0)
375+
global_config->button_grow_default = true;
376+
else
377+
global_config->button_grow_default = false;
378+
}
388379
free(button_grow_default);
389380

390381
// Button radius
391-
char *button_radius = NULL;
392-
ret = config_parse_option(&button_radius, "button_radius", (const char *)buf);
393-
if(ret<0) global_config->button_radius = 0;
394-
else global_config->button_radius = droidboot_atoi(button_radius);
395-
free(button_radius);
382+
char *button_unselected_radius = NULL;
383+
ret = config_parse_option(&button_unselected_radius, "button_unselected_radius", (const char *)buf);
384+
if(ret>=0) global_config->button_unselected_radius = droidboot_atoi(button_unselected_radius);
385+
free(button_unselected_radius);
386+
387+
// Button selected radius
388+
char *button_selected_radius = NULL;
389+
ret = config_parse_option(&button_selected_radius, "button_selected_radius", (const char *)buf);
390+
if(ret>=0) global_config->button_selected_radius = droidboot_atoi(button_selected_radius);
391+
free(button_selected_radius);
396392

397393
// Global font size
398394
char *global_font_size = NULL;
399395
ret = config_parse_option(&global_font_size, "global_font_size", (const char *)buf);
400-
if(ret<0) global_config->global_font_size = 0;
401-
else global_config->global_font_size = droidboot_atoi(global_font_size);
396+
if(ret>=0) global_config->global_font_size = droidboot_atoi(global_font_size);
402397
free(global_font_size);
403398

404399
// Global font name
405400
char *global_font_name = NULL;
406401
ret = config_parse_option(&global_font_name, "global_font_name", (const char *)buf);
407-
if(ret<0) global_config->global_font_name = NULL;
408-
else global_config->global_font_name = global_font_name;
402+
if(ret>=0) {
403+
if (strlen(global_font_name) == 0)
404+
global_config->global_font_name = NULL;
405+
else
406+
global_config->global_font_name = global_font_name;
407+
}
409408

410409
return 0;
411410
}

include/droidboot_config_parser.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ struct global_config {
1818
uint32_t button_unselected_text_color;
1919
uint32_t button_selected_color;
2020
uint32_t button_selected_text_color;
21-
uint8_t button_radius;
21+
uint8_t button_unselected_radius;
22+
uint8_t button_selected_radius;
2223
bool button_grow_default;
2324
uint8_t button_border_unselected_size;
2425
uint32_t button_border_unselected_color;

0 commit comments

Comments
 (0)