From a507b604bd863e5900275c524ea89bf1e9e82c3b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pekka=20Geh=C3=B6r?= Date: Thu, 22 Jan 2009 07:49:41 +0200 Subject: [PATCH] Added irreco_theme_manager_dlg_set_layout_button() functio. --- irreco/src/core/irreco_theme_manager_dlg.c | 99 +++++++++++++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) diff --git a/irreco/src/core/irreco_theme_manager_dlg.c b/irreco/src/core/irreco_theme_manager_dlg.c index 7a32550f..01fb1d92 100644 --- a/irreco/src/core/irreco_theme_manager_dlg.c +++ b/irreco/src/core/irreco_theme_manager_dlg.c @@ -895,11 +895,104 @@ static void irreco_theme_manager_dlg_upload_theme(GtkButton *button, IRRECO_RETURN } + +void irreco_theme_manager_dlg_set_layout_button(IrrecoThemeManagerDlg *self) +{ + IrrecoStringTable *table; + gchar *un_mmc1 = NULL; + gchar *un_mmc2 = NULL; + gchar *pressed_mmc1 = NULL; + gchar *pressed_mmc2 = NULL; + gchar *button_dir = NULL; + GString *bg_mmc = NULL; + + IRRECO_ENTER + bg_mmc = g_string_new(NULL); + table = self->irreco_data->irreco_layout_array; + + IRRECO_STRING_TABLE_FOREACH_DATA(self->theme->buttons, + IrrecoThemeButton *, temp_button) + + button_dir = g_strrstr(temp_button->image_up->str, "/irreco"); + un_mmc1 = g_strconcat("/media/mmc1", button_dir, NULL); + un_mmc2 = g_strconcat("/media/mmc2", button_dir, NULL); + + button_dir = g_strrstr(temp_button->image_down->str, "/irreco"); + pressed_mmc1 = g_strconcat("/media/mmc1", button_dir, NULL); + pressed_mmc2 = g_strconcat("/media/mmc2", button_dir, NULL); + + if (!irreco_is_file(temp_button->image_up->str)) { + + IRRECO_STRING_TABLE_FOREACH(table, key, + IrrecoButtonLayout *, + layout) + + IRRECO_PTR_ARRAY_FORWARDS(layout->button_array, + IrrecoButton *, button) + + if (button->style != NULL && + g_str_equal(button->style->style_name->str, + temp_button->style_name->str)) { + + if (irreco_is_file(un_mmc1)) { + g_string_printf( + button->style->image_up, + "%s", un_mmc1); + g_string_printf( + button->style->image_down, + "%s", pressed_mmc1); + } else if (irreco_is_file(un_mmc2)) { + g_string_printf( + button->style->image_up, + "%s", un_mmc2); + g_string_printf( + button->style->image_down, + "%s", pressed_mmc2); + } else { + button->type = IRRECO_BTYPE_GTK_BUTTON; + irreco_button_set_style(button, NULL); + irreco_button_create_widget(button); + } + } + + IRRECO_PTR_ARRAY_FORWARDS_END + + g_string_printf(bg_mmc, "%s" , + irreco_button_layout_get_bg_image(layout)); + + g_string_erase(bg_mmc, 10, 1); + g_string_insert_c(bg_mmc, 10, 1); + if (irreco_is_file(bg_mmc->str)) { + + irreco_button_layout_set_bg_image(layout, + bg_mmc->str); + } else { + g_string_erase(bg_mmc, 10, 1); + g_string_insert_c(bg_mmc, 10, 2); + irreco_button_layout_set_bg_image(layout, + bg_mmc->str); + } + + + IRRECO_STRING_TABLE_FOREACH_END + } + IRRECO_STRING_TABLE_FOREACH_END + + g_string_free(bg_mmc, TRUE); + if (un_mmc1 != NULL) g_free(un_mmc1); + if (un_mmc2 != NULL) g_free(un_mmc2); + if (pressed_mmc1 != NULL) g_free(pressed_mmc1); + if (pressed_mmc2 != NULL) g_free(pressed_mmc2); + IRRECO_RETURN +} + /** *Create new theme or edit theme */ static void irreco_theme_manager_dlg_new_theme(GtkButton *button, - IrrecoThemeManagerDlg *self){ + IrrecoThemeManagerDlg *self) +{ + IRRECO_ENTER /* Check which button */ /* Create new theme */ @@ -944,6 +1037,9 @@ static void irreco_theme_manager_dlg_new_theme(GtkButton *button, if (irreco_theme_creator_dlg_run(GTK_WINDOW(self), self->irreco_data, new_theme)) { + + irreco_theme_manager_dlg_set_layout_button(self); + self->theme = irreco_theme_copy(new_theme); gtk_button_clicked(GTK_BUTTON(self->refresh_button)); } @@ -953,6 +1049,7 @@ static void irreco_theme_manager_dlg_new_theme(GtkButton *button, g_free(rm_dir); g_free(temp_dir); irreco_theme_free(new_theme); + } IRRECO_RETURN } -- 2.11.4.GIT