gimp/libgimp/gimpui.c
Michael Natterer cdd0a5147d app/fileops.c Make sure that we don't try to destroy query_boxes twice or
2000-11-18  Michael Natterer  <mitch@gimp.org>

	* app/fileops.c
	* libgimp/gimpquerybox.[ch]: Make sure that we don't try to destroy
	query_boxes twice or try to disconnect not-any-more connected
	handlers.

	* app/color_notebook.c
	* app/gimpcontext.[ch]
	* app/gimphelp.[ch]
	* app/lc_dialog.[ch]
	* app/menus.h
	* app/preferences_dialog.c
	* app/tools.[ch]
	* libgimp/gimpcolorbutton.[ch]
	* libgimp/gimpdialog.[ch]
	* libgimp/gimpexport.[ch]
	* libgimp/gimpfileselection.[ch]
	* libgimp/gimphelpui.[ch]
	* libgimp/gimppatheditor.[ch]
	* libgimp/gimppixmap.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimpui.[ch]
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: in a coding attack, changed help_data
	and many other strings passed to UI functions to (const gchar *).
	As a consequence, I had to fix lots of warnings ;)

	* plug-ins/common/tga.c
	* plug-ins/imagemap/imap_main.c: fixed warnings.

	Code cleanup and indentation all over the place.
2000-11-18 00:25:42 +00:00

85 lines
2.8 KiB
C

/* LIBGIMP - The GIMP Library
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include "gimp.h"
#include "gimpui.h"
/**
* 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: #TRUE if the plug-in has some kind of preview in it's UI.
* Note that passing #TRUE is recommended also if one of the
* used GIMP Library widgets contains a preview (like the image
* menu returned by gimp_image_menu_new()).
*
* This function initializes GTK+ with gtk_init(), instructs GDK not to
* use X shared memory if The GIMP was invoked with the --no-xshm command
* line option and initializes GDK's image rendering subsystem (GdkRGB) to
* follow the GIMP main program's colormap allocation/installation policy.
*
* The 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)
{
gint argc;
gchar **argv;
gchar *user_gtkrc;
static gboolean initialized = FALSE;
g_return_if_fail (prog_name != NULL);
if (initialized)
return;
argc = 1;
argv = g_new (gchar *, 1);
argv[0] = g_strdup (prog_name);
gtk_init (&argc, &argv);
gtk_rc_parse (gimp_gtkrc ());
user_gtkrc = gimp_personal_rc_file ("gtkrc");
gtk_rc_parse (user_gtkrc);
g_free (user_gtkrc);
/* It's only safe to switch Gdk SHM usage off */
if (! gimp_use_xshm ())
gdk_set_use_xshm (FALSE);
gdk_rgb_set_min_colors (gimp_min_colors ());
gdk_rgb_set_install (gimp_install_cmap ());
gtk_widget_set_default_visual (gdk_rgb_get_visual ());
gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
/* Set the gamma after installing the colormap because
* gtk_preview_set_gamma() initializes GdkRGB if not already done
*/
if (preview)
gtk_preview_set_gamma (gimp_gamma ());
initialized = TRUE;
}