From 6e5913f873d8fb76d6561e86fecabed2a4cfb653 Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Mon, 21 Mar 2005 17:11:07 +0000 Subject: [project @ 2005-03-21 17:11:07 by rjw] Support version 2 themes (load/save) svn path=/import/nstheme/; revision=2440 --- riscos/gui.h | 23 ++++++++++++----------- riscos/save.c | 27 +++++++++++++++++++-------- 2 files changed, 31 insertions(+), 19 deletions(-) (limited to 'riscos') diff --git a/riscos/gui.h b/riscos/gui.h index 78ac3cb..aac383b 100644 --- a/riscos/gui.h +++ b/riscos/gui.h @@ -37,7 +37,7 @@ struct theme_file_header { char hotlist_bg; char status_bg; char status_fg; - char throbber_left; + char theme_flags; char future_expansion_1; char future_expansion_2; char future_expansion_3; @@ -77,16 +77,17 @@ bool ro_gui_load_theme(char *path); #define ICON_MAIN_NAME 3 #define ICON_MAIN_AUTHOR 5 #define ICON_MAIN_THROBBER_LEFT 8 -#define ICON_MAIN_REPORT 11 -#define ICON_MAIN_REMOVE 12 -#define ICON_MAIN_BROWSER_COLOUR 16 -#define ICON_MAIN_BROWSER_MENU 17 -#define ICON_MAIN_HOTLIST_COLOUR 19 -#define ICON_MAIN_HOTLIST_MENU 20 -#define ICON_MAIN_STATUSBG_COLOUR 22 -#define ICON_MAIN_STATUSBG_MENU 23 -#define ICON_MAIN_STATUSFG_COLOUR 25 -#define ICON_MAIN_STATUSFG_MENU 26 +#define ICON_MAIN_THROBBER_REDRAW 9 +#define ICON_MAIN_REPORT 10 +#define ICON_MAIN_REMOVE 11 +#define ICON_MAIN_BROWSER_COLOUR 15 +#define ICON_MAIN_BROWSER_MENU 16 +#define ICON_MAIN_HOTLIST_COLOUR 18 +#define ICON_MAIN_HOTLIST_MENU 19 +#define ICON_MAIN_STATUSBG_COLOUR 21 +#define ICON_MAIN_STATUSBG_MENU 22 +#define ICON_MAIN_STATUSFG_COLOUR 24 +#define ICON_MAIN_STATUSFG_MENU 25 #define ICON_SAVE_ICON 0 #define ICON_SAVE_PATH 1 diff --git a/riscos/save.c b/riscos/save.c index c6bc06f..acf6ba9 100644 --- a/riscos/save.c +++ b/riscos/save.c @@ -311,7 +311,7 @@ bool ro_gui_load_theme(char *path) { /* Check the header is OK */ if ((file_header->magic_value != 0x4d54534e) || - (file_header->parser_version > 1)) return false; + (file_header->parser_version > 2)) return false; /* Try to load the sprite file */ @@ -413,8 +413,17 @@ bool ro_gui_load_theme(char *path) { file_header->status_bg); ro_gui_set_icon_background_colour(dialog_main, ICON_MAIN_STATUSFG_COLOUR, file_header->status_fg); - ro_gui_set_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_LEFT, - file_header->throbber_left); + if (file_header->parser_version >= 2) { + ro_gui_set_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_LEFT, + file_header->theme_flags & (1 << 0)); + ro_gui_set_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_REDRAW, + file_header->theme_flags & (1 << 1)); + } else { + ro_gui_set_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_LEFT, + file_header->theme_flags); + ro_gui_set_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_REDRAW, + true); + } /* Remember the filename for saving later on */ @@ -450,7 +459,7 @@ bool ro_gui_save_theme(char *path) { /* Complete the header */ file_header->magic_value = 0x4d54534e; - file_header->parser_version = 1; + file_header->parser_version = 2; strcpy(file_header->name, ro_gui_get_icon_string(dialog_main, ICON_MAIN_NAME)); strcpy(file_header->author, ro_gui_get_icon_string(dialog_main, ICON_MAIN_AUTHOR)); file_header->browser_bg = ro_gui_get_icon_background_colour(dialog_main, @@ -461,10 +470,12 @@ bool ro_gui_save_theme(char *path) { ICON_MAIN_STATUSBG_COLOUR); file_header->status_fg = ro_gui_get_icon_background_colour(dialog_main, ICON_MAIN_STATUSFG_COLOUR); - if (ro_gui_get_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_LEFT)) { - file_header->throbber_left = 0xff; - } - + if (ro_gui_get_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_LEFT)) + file_header->theme_flags = (1 << 0); + if (ro_gui_get_icon_selected_state(dialog_main, ICON_MAIN_THROBBER_REDRAW)) + file_header->theme_flags = (1 << 1); + + /* Append the compressed sprites */ if (theme_sprites) { -- cgit v1.2.3