added new API gimp_color_button_[get|set]_update() which configures the

2003-11-11  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpcolorbutton.[ch]: added new API
	gimp_color_button_[get|set]_update() which configures the button
	to emit "color_changed" continuously while the color in the color
	selection dialog is being changed. Fixes bug #90091.

	Renamed GimpColorButton struct member
	"GtkItemFactory *item_factory" to a /*< private >*/ member named
	"gpointer popup_menu". This is ugly but fixes bug #125115,

	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell.c
	* app/widgets/gimpcolorpanel.c: changed accordingly.

	* libgimpwidgets/gimpcolorbutton.c: use a GimpColorSelection
	with a handmade GimpDialog instead of GtkColorSelectionDialog.

	Enabled module loading for plug-ins so the color selection
	can show the color selectors which are implemented in modules:

	* libgimpwidgets/gimpwidgets-private.[ch]: added
	GimpEnsureModlesFunc which can be called by modules users.

	* app/gui/gui.c (gui_libs_init): pass NULL as
	GimpEnsureModulesFunc since the core loads the modules itself.

	* libgimp/gimpui.c (gimp_ui_init): pass new private function
	gimp_ensure_modules() which will load the modules upon first
	invocation.

	* libgimp/Makefile.am: link libgimpui against libgimpmodule.

	* libgimpwidgets/gimpcolorselection.c: call
	_gimp_ensure_modules_func() if it is non-NULL so color selector
	modules are available for plug-ins.

	* tools/pdbgen/pdb/gimprc.pdb: added new PDB wrapper
	gimp_get_module_load_inhibit().

	* app/pdb/gimprc_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/gimpgimprc_pdb.[ch]: regenerated.
This commit is contained in:
Michael Natterer
2003-11-11 17:55:45 +00:00
committed by Michael Natterer
parent 73570b0d35
commit e34358d8c3
19 changed files with 523 additions and 188 deletions

View File

@ -21,6 +21,10 @@
#include <stdlib.h>
#include <gtk/gtk.h>
#include "libgimpmodule/gimpmodule.h"
#include "gimp.h"
#include "gimpui.h"
@ -30,8 +34,9 @@
/* local function prototypes */
static void gimp_ui_help_func (const gchar *help_id,
gpointer help_data);
static void gimp_ui_help_func (const gchar *help_id,
gpointer help_data);
static void gimp_ensure_modules (void);
/* public functions */
@ -143,7 +148,8 @@ gimp_ui_init (const gchar *prog_name,
gimp_widgets_init (&vtable,
gimp_ui_help_func,
gimp_palette_get_foreground,
gimp_palette_get_background);
gimp_palette_get_background,
gimp_ensure_modules);
if (! gimp_show_tool_tips ())
gimp_help_disable_tooltips ();
@ -160,3 +166,25 @@ gimp_ui_help_func (const gchar *help_id,
{
gimp_help (gimp_get_progname (), help_id);
}
static void
gimp_ensure_modules (void)
{
static GimpModuleDB *module_db = NULL;
if (! module_db)
{
gchar *load_inhibit;
gchar *module_path;
load_inhibit = gimp_get_module_load_inhibit ();
module_path = gimp_gimprc_query ("module-path");
module_db = gimp_module_db_new (FALSE);
gimp_module_db_set_load_inhibit (module_db, load_inhibit);
gimp_module_db_load (module_db, module_path);
g_free (load_inhibit);
g_free (module_path);
}
}