/** * gimp_ui_init: * @prog_name: The name of the plug-in which will be passed as argv[0] to * gtk_init(). It's a convention to use the name of the * executable and _not_ the PDB procedure name. * @preview: This parameter is unused and exists for historical * reasons only. * * This function initializes GTK+ with gtk_init() and initializes GDK's * image rendering subsystem (GdkRGB) to follow the GIMP main program's * colormap allocation/installation policy. * * It also sets up various other things so that the plug-in user looks * and behaves like the GIMP core. This includes selecting the GTK+ * theme and setting up the help system as chosen in the GIMP * preferences. Any plug-in that provides a user interface should call * this function. **/ void gimp_ui_init (const gchar *prog_name, gboolean preview) { GdkScreen *screen; const gchar *display_name; gchar *themerc; g_return_if_fail (prog_name != NULL); if (gimp_ui_initialized) return; g_set_prgname (prog_name); display_name = gimp_display_name (); if (display_name) { #if defined (GDK_WINDOWING_X11) g_setenv ("DISPLAY", display_name, TRUE); #else g_setenv ("GDK_DISPLAY", display_name, TRUE); #endif } if (gimp_user_time ()) { /* Construct a fake startup ID as we only want to pass the * interaction timestamp, see _gdk_windowing_set_default_display(). */ gchar *startup_id = g_strdup_printf ("_TIME%u", gimp_user_time ()); g_setenv ("DESKTOP_STARTUP_ID", startup_id, TRUE); g_free (startup_id); } gtk_init (NULL, NULL); themerc = gimp_personal_rc_file ("themerc"); gtk_rc_add_default_file (themerc); g_free (themerc); gdk_set_program_class (gimp_wm_class ()); screen = gdk_screen_get_default (); gtk_widget_set_default_colormap (gdk_screen_get_rgb_colormap (screen)); gimp_widgets_init (gimp_ui_help_func, gimp_context_get_foreground, gimp_context_get_background, gimp_ensure_modules); if (! gimp_show_tool_tips ()) gimp_help_disable_tooltips (); gimp_dialogs_show_help_button (gimp_show_help_button ()); gimp_ui_initialized = TRUE; }
static void gui_show_tooltips_notify (GimpGuiConfig *gui_config, GParamSpec *param_spec, Gimp *gimp) { if (gui_config->show_tooltips) gimp_help_enable_tooltips (); else gimp_help_disable_tooltips (); }
/** * gimp_ui_init: * @prog_name: The name of the plug-in which will be passed as argv[0] to * gtk_init(). It's a convention to use the name of the * executable and _not_ the PDB procedure name or something. * @preview: This parameter is unused and exists for historical * reasons only. * * This function initializes GTK+ with gtk_init() and initializes GDK's * image rendering subsystem (GdkRGB) to follow the GIMP main program's * colormap allocation/installation policy. * * GIMP's colormap policy can be determinded by the user with the * gimprc variables @min_colors and @install_cmap. **/ void gimp_ui_init (const gchar *prog_name, gboolean preview) { const gchar *display_name; gchar *themerc; GdkScreen *screen; g_return_if_fail (prog_name != NULL); if (gimp_ui_initialized) return; g_set_prgname (prog_name); display_name = gimp_display_name (); if (display_name) { #if defined (GDK_WINDOWING_X11) const gchar var_name[] = "DISPLAY"; #else const gchar var_name[] = "GDK_DISPLAY"; #endif putenv (g_strdup_printf ("%s=%s", var_name, display_name)); } gtk_init (NULL, NULL); themerc = gimp_personal_rc_file ("themerc"); gtk_rc_add_default_file (themerc); g_free (themerc); gdk_set_program_class (gimp_wm_class ()); gdk_rgb_set_min_colors (gimp_min_colors ()); gdk_rgb_set_install (gimp_install_cmap ()); screen = gdk_screen_get_default (); gtk_widget_set_default_colormap (gdk_screen_get_rgb_colormap (screen)); gimp_widgets_init (gimp_ui_help_func, gimp_context_get_foreground, gimp_context_get_background, gimp_ensure_modules); if (! gimp_show_tool_tips ()) gimp_help_disable_tooltips (); gimp_dialogs_show_help_button (gimp_show_help_button ()); gimp_ui_initialized = TRUE; }
/* -------------------------------- * gap_base_check_tooltips * -------------------------------- * check and enable/disable tooltips according to global gimprc settings */ gboolean gap_base_check_tooltips(gboolean *old_state) { char *value_string; gboolean new_state; gboolean changed; new_state = TRUE; changed = TRUE; value_string = gimp_gimprc_query("show-tooltips"); if(value_string != NULL) { if (strcmp(value_string, "no") == 0) { new_state = FALSE; } } if (old_state != NULL) { if(*old_state == new_state) { changed = FALSE; } } if (changed == TRUE) { if(new_state == TRUE) { gimp_help_enable_tooltips (); } else { gimp_help_disable_tooltips (); } } return (new_state); } /* end gap_base_check_tooltips */
static void gui_restore_callback (Gimp *gimp, GimpInitStatusFunc status_callback) { GimpDisplayConfig *display_config = GIMP_DISPLAY_CONFIG (gimp->config); GimpGuiConfig *gui_config = GIMP_GUI_CONFIG (gimp->config); if (gimp->be_verbose) g_print ("INIT: %s\n", G_STRFUNC); gui_vtable_init (gimp); if (! gui_config->show_tooltips) gimp_help_disable_tooltips (); g_signal_connect (gui_config, "notify::show-tooltips", G_CALLBACK (gui_show_tooltips_notify), gimp); gimp_dialogs_show_help_button (gui_config->use_help && gui_config->show_help_button); g_signal_connect (gui_config, "notify::use-help", G_CALLBACK (gui_show_help_button_notify), gimp); g_signal_connect (gui_config, "notify::user-manual-online", G_CALLBACK (gui_user_manual_notify), gimp); g_signal_connect (gui_config, "notify::show-help-button", G_CALLBACK (gui_show_help_button_notify), gimp); g_signal_connect (gimp_get_user_context (gimp), "display-changed", G_CALLBACK (gui_display_changed), gimp); /* make sure the monitor resolution is valid */ if (display_config->monitor_res_from_gdk || display_config->monitor_xres < GIMP_MIN_RESOLUTION || display_config->monitor_yres < GIMP_MIN_RESOLUTION) { gdouble xres, yres; gimp_get_monitor_resolution (initial_screen, initial_monitor, &xres, &yres); g_object_set (gimp->config, "monitor-xresolution", xres, "monitor-yresolution", yres, "monitor-resolution-from-windowing-system", TRUE, NULL); } actions_init (gimp); menus_init (gimp, global_action_factory); gimp_render_init (gimp); dialogs_init (gimp, global_menu_factory); gimp_clipboard_init (gimp); gimp_clipboard_set_buffer (gimp, gimp->global_buffer); g_signal_connect (gimp, "buffer-changed", G_CALLBACK (gui_global_buffer_changed), NULL); gimp_devices_init (gimp); gimp_controllers_init (gimp); session_init (gimp); g_type_class_unref (g_type_class_ref (GIMP_TYPE_COLOR_SELECTOR_PALETTE)); status_callback (NULL, _("Tool Options"), 1.0); gimp_tools_restore (gimp); }