END_HANDLER COMBO_CHANGED(comboSearch, search_provider) { nsgtk_scaffolding *current = scaf_list; char *name; /* refresh web search prefs from file */ search_web_provider_details(nsoption_charp(search_provider)); /* retrieve ico */ search_web_retrieve_ico(false); /* callback may handle changing gui */ if (search_web_ico() != NULL) gui_window_set_search_ico(search_web_ico()); /* set entry */ name = search_web_provider_name(); if (name == NULL) { warn_user(messages_get("NoMemory"), 0); continue; } char content[strlen(name) + SLEN("Search ") + 1]; sprintf(content, "Search %s", name); free(name); while (current) { nsgtk_scaffolding_set_websearch(current, content); current = nsgtk_scaffolding_iterate(current); } }
/** * cleanup code physical update of all toolbars; resensitize * \param g the 'front' scaffolding that called customize */ void nsgtk_toolbar_close(nsgtk_scaffolding *g) { int i; nsgtk_scaffolding *list = scaf_list; while (list) { struct nsgtk_theme *theme = nsgtk_theme_load(GTK_ICON_SIZE_LARGE_TOOLBAR); if (theme == NULL) { warn_user(messages_get("NoMemory"), 0); continue; } /* clear toolbar */ gtk_container_foreach(GTK_CONTAINER(nsgtk_scaffolding_toolbar( list)), nsgtk_toolbar_clear_toolbar, list); /* then add items */ for (i = BACK_BUTTON; i < PLACEHOLDER_BUTTON; i++) { nsgtk_toolbar_add_item_to_toolbar(list, i, theme); } nsgtk_toolbar_connect_all(list); gtk_widget_show_all(GTK_WIDGET(nsgtk_scaffolding_toolbar( list))); nsgtk_scaffolding_set_sensitivity(list); nsgtk_widget_override_background_color(GTK_WIDGET(nsgtk_window_get_layout(nsgtk_scaffolding_top_level(list))), GTK_STATE_NORMAL, 0, 0xFFFF, 0xFFFF, 0xFFFF); g_signal_handler_unblock(GTK_WIDGET( nsgtk_window_get_layout( nsgtk_scaffolding_top_level(list))), nsgtk_window_get_signalhandler( nsgtk_scaffolding_top_level(list), NSGTK_WINDOW_SIGNAL_CLICK)); g_signal_handler_unblock(GTK_WIDGET( nsgtk_window_get_layout( nsgtk_scaffolding_top_level(list))), nsgtk_window_get_signalhandler( nsgtk_scaffolding_top_level(list), NSGTK_WINDOW_SIGNAL_REDRAW)); if ((nsgtk_get_browser_window(nsgtk_scaffolding_top_level( list))->current_content != NULL) && (hlcache_handle_get_url(nsgtk_get_browser_window( nsgtk_scaffolding_top_level(list))-> current_content) != NULL)) browser_window_refresh_url_bar( nsgtk_get_browser_window( nsgtk_scaffolding_top_level(list)), hlcache_handle_get_url( nsgtk_get_browser_window( nsgtk_scaffolding_top_level(list))-> current_content), nsgtk_get_browser_window( nsgtk_scaffolding_top_level(list))-> frag_id); if (list != g) gtk_widget_set_sensitive(GTK_WIDGET( nsgtk_scaffolding_window(list)), TRUE); free(theme); list = nsgtk_scaffolding_iterate(list); } gtk_widget_set_sensitive(GTK_WIDGET(nsgtk_scaffolding_notebook(g)), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(nsgtk_scaffolding_menu_bar(g)), TRUE); /* update favicon etc */ nsgtk_scaffolding_set_top_level(nsgtk_scaffolding_top_level(g)); if (search_web_ico()) gui_window_set_search_ico(search_web_ico()); }