
2000-04-19 Michael Natterer <mitch@gimp.org> * app/bucket_fill.c * app/by_color_select.c * app/fuzzy_select.c * app/preferences_dialog.c: made the "default_threshold" gimprc variable work as advertized: - initialize the thresholds with it. - use it for "Reset". - added a widget to the "Tool Options" preferences page. - noticed that the "Reset" button of "By Color Select" doesn't behave like all the other "Reset" buttons and changed it to reset the ui, not the selection. (There is now a "None" button and because it was so trivial, I couldn't resist to add "All" and "Invert" buttons, too) * libgimp/Makefile.am * libgimp/gimpui.c: new file. * libgimp/gimpui.h: new function gimp_ui_init() which will be called by all plugins which have a ui (not only by those with a preview because plugins should always follow gimp's colormap installation policy). Could someone please check if the FIXME stuff in the function is the right thing to do (TM). Does GdkRGB allocate the correct colors for the widgets in all cases or do we have to find another way to ensure this across processes (gtk instances)?
69 lines
1.9 KiB
C
69 lines
1.9 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"
|
|
|
|
void
|
|
gimp_ui_init (gchar *prog_name,
|
|
gboolean preview)
|
|
{
|
|
gint argc;
|
|
gchar **argv;
|
|
|
|
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 ());
|
|
|
|
/* FIXME: check if gimp could allocate and attach smh and don't blindly
|
|
* use the commandline option
|
|
*/
|
|
gdk_set_use_xshm (gimp_use_xshm ());
|
|
|
|
/* FIXME: check if gimp's GdkRGB subsystem actually installed a cmap
|
|
* and don't blindly use the gimprc option
|
|
*/
|
|
if (gimp_install_cmap ())
|
|
{
|
|
gdk_rgb_set_install (TRUE);
|
|
|
|
/* or is this needed in all cases? */
|
|
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;
|
|
}
|