/** * 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; }
/** * 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; }