Commit 01645960 authored by Michael Natterer's avatar Michael Natterer 😴 Committed by Michael Natterer

app/core/Makefile.am app/core/core-types.h added an "application object"

2001-07-04  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimp.[ch]: added an "application object" called Gimp.

	Currently, it contains the image list, the clipboard, the data
	factories, the procedural hashtable and the tool info list.  It's
	the toplevel object of the core object system. Finally, creating a
	Gimp object will return a standalone gimp core engine instance
	with no other global states/variables involved.

	* app/app_procs.[ch]: allocate a "Gimp" instance called "the_gimp" :)
	Removed stuff which is now done by the "Gimp" object. Merged
	gimp_init() into app_init() because gimp_init() is taken now.

	* app/context_manager.[ch]: removed stuff done by "Gimp".

	* app/batch.[ch]
	* app/gimage.[ch]
	* app/xcf/xcf-load.[ch]
	* app/xcf/xcf.[ch]
	* app/core/gimpedit.[ch]
	* app/tools/tool_manager.[ch]: pass around an additional "Gimp"
	argument.

	* app/pdb/procedural_db.[ch]: pass a "Gimp" pointer as first
	parameter to all internal procedures and to all procedural_db_*
	functions.

	* app/core/gimpcontext.[ch]
	* app/core/gimpimage.[ch]: added a "Gimp" pointer to the structs.

	* app/devices.c
	* app/errors.c
	* app/file-open.c
	* app/file-save.c
	* app/gimphelp.c
	* app/gimpunit.c
	* app/image_new.c
	* app/main.c
	* app/nav_window.c
	* app/plug_in.c
	* app/base/base.c
	* app/core/gimpdatafactory.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-mask.c
	* app/core/gimptoolinfo.[ch]
	* app/gui/brush-select.c
	* app/gui/convert-dialog.c
	* app/gui/dialogs-constructors.c
	* app/gui/edit-commands.c
	* app/gui/file-open-dialog.c
	* app/gui/file-save-dialog.c
	* app/gui/gradient-editor.c
	* app/gui/gradient-select.c
	* app/gui/gui.c
	* app/gui/image-commands.c
	* app/gui/info-window.c
	* app/gui/menus.c
	* app/gui/palette-editor.c
	* app/gui/palette-import-dialog.c
	* app/gui/palette-select.c
	* app/gui/paths-dialog.c
	* app/gui/pattern-select.c
	* app/gui/preferences-dialog.c
	* app/gui/test-commands.c
	* app/gui/toolbox.c
	* app/gui/tools-commands.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimppainttool.h
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.h
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcontainerview-utils.c
	* app/widgets/gimpcursor.c
	* app/widgets/gimpdnd.c
	* app/widgets/gimpimagedock.c: changed accordingly. Cleaned up
	lots of includes. Many files still access the global "the_gimp"
	variable exported by app_procs.h.

	* tools/pdbgen/app.pl
	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/palette.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb
	* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly. Don't
	use "the_gimp" here because all procedures get passed a "Gimp"
	pointer now.

	* app/pdb/*: regenerated.
parent de24019f
2001-07-04 Dave Neary <dneary@eircom.net
2001-07-04 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimp.[ch]: added an "application object" called Gimp.
Currently, it contains the image list, the clipboard, the data
factories, the procedural hashtable and the tool info list. It's
the toplevel object of the core object system. Finally, creating a
Gimp object will return a standalone gimp core engine instance
with no other global states/variables involved.
* app/app_procs.[ch]: allocate a "Gimp" instance called "the_gimp" :)
Removed stuff which is now done by the "Gimp" object. Merged
gimp_init() into app_init() because gimp_init() is taken now.
* app/context_manager.[ch]: removed stuff done by "Gimp".
* app/batch.[ch]
* app/gimage.[ch]
* app/xcf/xcf-load.[ch]
* app/xcf/xcf.[ch]
* app/core/gimpedit.[ch]
* app/tools/tool_manager.[ch]: pass around an additional "Gimp"
argument.
* app/pdb/procedural_db.[ch]: pass a "Gimp" pointer as first
parameter to all internal procedures and to all procedural_db_*
functions.
* app/core/gimpcontext.[ch]
* app/core/gimpimage.[ch]: added a "Gimp" pointer to the structs.
* app/devices.c
* app/errors.c
* app/file-open.c
* app/file-save.c
* app/gimphelp.c
* app/gimpunit.c
* app/image_new.c
* app/main.c
* app/nav_window.c
* app/plug_in.c
* app/base/base.c
* app/core/gimpdatafactory.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-mask.c
* app/core/gimptoolinfo.[ch]
* app/gui/brush-select.c
* app/gui/convert-dialog.c
* app/gui/dialogs-constructors.c
* app/gui/edit-commands.c
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c
* app/gui/gradient-editor.c
* app/gui/gradient-select.c
* app/gui/gui.c
* app/gui/image-commands.c
* app/gui/info-window.c
* app/gui/menus.c
* app/gui/palette-editor.c
* app/gui/palette-import-dialog.c
* app/gui/palette-select.c
* app/gui/paths-dialog.c
* app/gui/pattern-select.c
* app/gui/preferences-dialog.c
* app/gui/test-commands.c
* app/gui/toolbox.c
* app/gui/tools-commands.c
* app/tools/gimpbezierselecttool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimppainttool.h
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.h
* app/widgets/gimpbufferview.c
* app/widgets/gimpcontainerview-utils.c
* app/widgets/gimpcursor.c
* app/widgets/gimpdnd.c
* app/widgets/gimpimagedock.c: changed accordingly. Cleaned up
lots of includes. Many files still access the global "the_gimp"
variable exported by app_procs.h.
* tools/pdbgen/app.pl
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/palette.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb
* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly. Don't
use "the_gimp" here because all procedures get passed a "Gimp"
pointer now.
* app/pdb/*: regenerated.
2001-07-04 Dave Neary <dneary@eircom.net>
* po/POTFILESin: Changed to reflect some moved/removed files.
......
......@@ -25,6 +25,7 @@
#include "core/core-types.h"
#include "tools/tools-types.h"
#include "core/gimp.h"
#include "core/gimpbuffer.h"
#include "core/gimpcontainer.h"
#include "core/gimpcontext.h"
......@@ -40,7 +41,6 @@
#include "dialogs.h"
#include "edit-commands.h"
#include "context_manager.h"
#include "gdisplay.h"
#include "undo.h"
......@@ -119,14 +119,14 @@ edit_paste_cmd_callback (GtkWidget *widget,
GDisplay *gdisp;
return_if_no_display (gdisp);
if (global_buffer)
if (gdisp->gimage->gimp->global_buffer)
{
/* stop any active tool */
tool_manager_control_active (HALT, gdisp);
if (gimp_edit_paste (gdisp->gimage,
gimp_image_active_drawable (gdisp->gimage),
global_buffer,
gdisp->gimage->gimp->global_buffer,
FALSE))
{
gdisplays_update_title (gdisp->gimage);
......@@ -142,14 +142,14 @@ edit_paste_into_cmd_callback (GtkWidget *widget,
GDisplay *gdisp;
return_if_no_display (gdisp);
if (global_buffer)
if (gdisp->gimage->gimp->global_buffer)
{
/* stop any active tool */
tool_manager_control_active (HALT, gdisp);
if (gimp_edit_paste (gdisp->gimage,
gimp_image_active_drawable (gdisp->gimage),
global_buffer,
gdisp->gimage->gimp->global_buffer,
TRUE))
{
gdisplays_update_title (gdisp->gimage);
......@@ -165,13 +165,14 @@ edit_paste_as_new_cmd_callback (GtkWidget *widget,
GDisplay *gdisp;
return_if_no_display (gdisp);
if (global_buffer)
if (gdisp->gimage->gimp->global_buffer)
{
/* stop any active tool */
tool_manager_control_active (HALT, gdisp);
gimp_edit_paste_as_new (gdisp->gimage,
global_buffer);
gimp_edit_paste_as_new (gdisp->gimage->gimp,
gdisp->gimage,
gdisp->gimage->gimp->global_buffer);
}
}
......@@ -290,7 +291,7 @@ cut_named_buffer_callback (GtkWidget *widget,
GimpBuffer *buffer;
buffer = gimp_buffer_new (new_tiles, name);
gimp_container_add (named_buffers, GIMP_OBJECT (buffer));
gimp_container_add (gimage->gimp->named_buffers, GIMP_OBJECT (buffer));
}
gdisplays_flush ();
......@@ -314,6 +315,6 @@ copy_named_buffer_callback (GtkWidget *widget,
GimpBuffer *buffer;
buffer = gimp_buffer_new (new_tiles, name);
gimp_container_add (named_buffers, GIMP_OBJECT (buffer));
gimp_container_add (gimage->gimp->named_buffers, GIMP_OBJECT (buffer));
}
}
......@@ -133,7 +133,8 @@ image_invert_cmd_callback (GtkWidget *widget,
}
return_vals =
procedural_db_run_proc ("gimp_invert",
procedural_db_run_proc (gdisp->gimage->gimp,
"gimp_invert",
&nreturn_vals,
GIMP_PDB_DRAWABLE, gimp_drawable_get_ID (drawable),
GIMP_PDB_END);
......
......@@ -1709,11 +1709,11 @@ plug_in_handle_proc_run (GPProcRun *proc_run)
PlugInBlocked *blocked;
args = plug_in_params_to_args (proc_run->params, proc_run->nparams, FALSE);
proc_rec = procedural_db_lookup (proc_run->name);
proc_rec = procedural_db_lookup (the_gimp, proc_run->name);
if (proc_rec)
{
return_vals = procedural_db_execute (proc_run->name, args);
return_vals = procedural_db_execute (the_gimp, proc_run->name, args);
}
else
{
......@@ -2025,7 +2025,7 @@ plug_in_handle_proc_install (GPProcInstall *proc_install)
proc_defs = g_slist_append (proc_defs, proc_def);
proc->exec_method.temporary.plug_in = (void *) current_plug_in;
procedural_db_register (proc);
procedural_db_register (the_gimp, proc);
/* If there is a menu path specified, create a menu entry */
if (proc_install->menu_path)
......@@ -2433,7 +2433,7 @@ plug_in_add_to_db (void)
if (proc_def->prog && (proc_def->db_info.proc_type != GIMP_INTERNAL))
{
proc_def->db_info.exec_method.plug_in.filename = proc_def->prog;
procedural_db_register (&proc_def->db_info);
procedural_db_register (the_gimp, &proc_def->db_info);
}
}
......@@ -2458,14 +2458,16 @@ plug_in_add_to_db (void)
if (proc_def->image_types)
{
return_vals =
procedural_db_execute ("gimp_register_save_handler",
procedural_db_execute (the_gimp,
"gimp_register_save_handler",
args);
g_free (return_vals);
}
else
{
return_vals =
procedural_db_execute ("gimp_register_magic_load_handler",
procedural_db_execute (the_gimp,
"gimp_register_magic_load_handler",
args);
g_free (return_vals);
}
......@@ -2789,7 +2791,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);
procedural_db_unregister (the_gimp, proc_def->db_info.name);
/* Remove the defintion from the global list */
proc_defs = g_slist_remove (proc_defs, proc_def);
......
......@@ -22,12 +22,14 @@
#include "tools/tools-types.h"
#include "core/gimp.h"
#include "core/gimpcontext.h"
#include "core/gimpimage.h"
#include "tools/gimptool.h"
#include "tools/tool_manager.h"
#include "app_procs.h"
#include "gdisplay.h"
......@@ -59,9 +61,12 @@ tools_swap_contexts_cmd_callback (GtkWidget *widget,
if (! swap_context)
{
swap_context = gimp_context_new ("Swap Context",
swap_context = gimp_context_new (the_gimp,
"Swap Context",
gimp_context_get_user ());
temp_context = gimp_context_new ("Temp Context", NULL);
temp_context = gimp_context_new (the_gimp,
"Temp Context",
NULL);
}
gimp_context_copy_args (gimp_context_get_user (),
......
......@@ -33,6 +33,7 @@
#include "base/base.h"
#include "core/gimp.h"
#include "core/gimpdatafactory.h"
#include "pdb/internal_procs.h"
......@@ -72,7 +73,7 @@
#include "libgimp/gimpintl.h"
static void app_init (void);
Gimp *the_gimp = NULL;
/* FIXME: gimp_busy HACK */
......@@ -81,30 +82,6 @@ gboolean gimp_busy = FALSE;
static gboolean is_app_exit_finish_done = FALSE;
void
gimp_init (gint gimp_argc,
gchar **gimp_argv)
{
/* Initialize the application */
app_init ();
/* Parse the rest of the command line arguments as images to load */
if (gimp_argc > 0)
while (gimp_argc--)
{
if (*gimp_argv)
file_open_with_display (*gimp_argv, *gimp_argv);
gimp_argv++;
}
batch_init ();
if (! no_interface)
{
gui_post_init ();
}
}
void
app_init_update_status (const gchar *text1,
const gchar *text2,
......@@ -119,8 +96,9 @@ app_init_update_status (const gchar *text1,
/* #define RESET_BAR() app_init_update_status("", "", 0) */
#define RESET_BAR()
static void
app_init (void)
void
app_init (gint gimp_argc,
gchar **gimp_argv)
{
const gchar *gtkrc;
gchar *filename;
......@@ -157,6 +135,17 @@ app_init (void)
splash_create ();
}
/* initialize lowlevel stuff */
base_init ();
/* Create an instance of the "Gimp" object which is the root of the
* core object system
*/
the_gimp = gimp_new ();
gtk_object_ref (GTK_OBJECT (the_gimp));
gtk_object_sink (GTK_OBJECT (the_gimp));
/* Initialize the context system before loading any data */
context_manager_init ();
......@@ -164,9 +153,8 @@ app_init (void)
* We need to do this first because any of the init
* procedures might install or query it as needed.
*/
procedural_db_init ();
RESET_BAR();
internal_procs_init ();
app_init_update_status (_("Procedural Database"), NULL, -1);
internal_procs_init (the_gimp);
#ifdef DISPLAY_FILTERS
color_display_init ();
......@@ -176,14 +164,6 @@ app_init (void)
if (gimprc.always_restore_session)
restore_session = TRUE;
/* make sure the monitor resolution is valid */
if (gimprc.monitor_xres < GIMP_MIN_RESOLUTION ||
gimprc.monitor_yres < GIMP_MIN_RESOLUTION)
{
gdisplay_xserver_resolution (&gimprc.monitor_xres, &gimprc.monitor_yres);
gimprc.using_xserver_resolution = TRUE;
}
/* Now we are ready to draw the splash-screen-image to the start-up window */
if (! no_interface && ! no_splash_image)
{
......@@ -191,38 +171,16 @@ app_init (void)
}
RESET_BAR();
xcf_init (); /* initialize the xcf file format routines */
/* initialize the global parasite table */
app_init_update_status (_("Looking for data files"), _("Parasites"), 0.00);
gimp_init_parasites ();
/* initialize the list of gimp brushes */
app_init_update_status (NULL, _("Brushes"), 0.20);
gimp_data_factory_data_init (global_brush_factory, no_data);
/* initialize the list of gimp patterns */
app_init_update_status (NULL, _("Patterns"), 0.40);
gimp_data_factory_data_init (global_pattern_factory, no_data);
/* initialize the list of gimp palettes */
app_init_update_status (NULL, _("Palettes"), 0.60);
gimp_data_factory_data_init (global_palette_factory, no_data);
xcf_init (the_gimp); /* initialize the xcf file format routines */
/* initialize the list of gimp gradients */
app_init_update_status (NULL, _("Gradients"), 0.80);
gimp_data_factory_data_init (global_gradient_factory, no_data);
app_init_update_status (NULL, NULL, 1.00);
/* initialize the global gimp object */
gimp_initialize (the_gimp);
plug_in_init (); /* initialize the plug in structures */
module_db_init (); /* load any modules we need */
RESET_BAR();
/* initialize lowlevel stuff */
base_init ();
if (! no_interface)
{
if (! no_splash)
......@@ -238,6 +196,22 @@ app_init (void)
{
gui_restore ();
}
/* Parse the rest of the command line arguments as images to load */
if (gimp_argc > 0)
while (gimp_argc--)
{
if (*gimp_argv)
file_open_with_display (*gimp_argv, *gimp_argv);
gimp_argv++;
}
batch_init (the_gimp);
if (! no_interface)
{
gui_post_init ();
}
}
void
......@@ -269,7 +243,6 @@ app_exit_finish (void)
gdisplays_delete ();
context_manager_free ();
plug_in_kill ();
procedural_db_free ();
save_unitrc ();
gimp_parasiterc_save ();
......@@ -282,12 +255,15 @@ app_exit_finish (void)
xcf_exit ();
gtk_object_unref (GTK_OBJECT (the_gimp));
the_gimp = NULL;
base_exit ();
/* There used to be gtk_main_quit() here, but there's a chance
* that gtk_main() was never called before we reach this point. --Sven
*/
gtk_exit (0);
gtk_exit (0);
}
gboolean
......
......@@ -20,13 +20,18 @@
#define __APP_PROCS_H__
void gimp_init (gint gimp_argc,
gchar **gimp_argv);
/*
* this is a temp hack
*/
extern Gimp *the_gimp;
void app_init_update_status (const gchar *label1,
const gchar *label2,
gdouble percentage);
void app_init (gint gimp_argc,
gchar **gimp_argv);
void app_exit (gboolean kill_it);
void app_exit_finish (void);
gboolean app_exit_finish_done (void);
......
......@@ -56,11 +56,12 @@ base_init (void)
{
gchar *path;
toast_old_temp_files ();
/* Add the swap file */
if (base_config->swap_path == NULL)
base_config->swap_path = g_get_tmp_dir ();
toast_old_temp_files ();
path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "gimpswap.%lu",
base_config->swap_path,
(unsigned long) getpid ());
......
......@@ -29,7 +29,7 @@
#include <gtk/gtk.h>
#include "apptypes.h"
#include "core/core-types.h"
#include "appenv.h"
#include "app_procs.h"
......@@ -38,11 +38,13 @@
#include "pdb/procedural_db.h"
static void batch_run_cmd (gchar *cmd);
static void batch_run_cmd (Gimp *gimp,
gchar *cmd);
static void batch_read (gpointer data,
gint source,
GdkInputCondition condition);
static void batch_pserver (gint run_mode,
static void batch_pserver (Gimp *gimp,
gint run_mode,
gint flags,
gint extra);
......@@ -50,7 +52,7 @@ static void batch_pserver (gint run_mode,
static ProcRecord *eval_proc;
void
batch_init (void)
batch_init (Gimp *gimp)
{
extern gchar **batch_cmds;
......@@ -58,7 +60,7 @@ batch_init (void)
gboolean perl_server_already_running = FALSE;
gint i;
eval_proc = procedural_db_lookup ("extension_script_fu_eval");
eval_proc = procedural_db_lookup (gimp, "extension_script_fu_eval");
read_from_stdin = FALSE;
for (i = 0; batch_cmds[i]; i++)
......@@ -75,7 +77,7 @@ batch_init (void)
{
if (!perl_server_already_running)
{
batch_pserver (run_mode, flags, extra);
batch_pserver (gimp, run_mode, flags, extra);
perl_server_already_running = 1;
}
continue;
......@@ -94,7 +96,7 @@ batch_init (void)
{
#ifndef G_OS_WIN32 /* for now */
g_print ("reading batch commands from stdin\n");
gdk_input_add (STDIN_FILENO, GDK_INPUT_READ, batch_read, NULL);
gdk_input_add (STDIN_FILENO, GDK_INPUT_READ, batch_read, gimp);
read_from_stdin = TRUE;
#else
g_error ("Batch mode from standard input not implemented on Win32");
......@@ -103,14 +105,15 @@ batch_init (void)
}
else
{
batch_run_cmd (batch_cmds[i]);
batch_run_cmd (gimp, batch_cmds[i]);
}
}
}
static void
batch_run_cmd (gchar *cmd)
batch_run_cmd (Gimp *gimp,
gchar *cmd)
{
Argument *args;
Argument *vals;
......@@ -129,7 +132,8 @@ batch_run_cmd (gchar *cmd)
args[0].value.pdb_int = 1;
args[1].value.pdb_pointer = cmd;
vals = procedural_db_execute ("extension_script_fu_eval", args);
vals = procedural_db_execute (gimp, "extension_script_fu_eval", args);
switch (vals[0].value.pdb_int)
{
case GIMP_PDB_EXECUTION_ERROR:
......@@ -203,7 +207,7 @@ batch_read (gpointer data,
if (done)
{
batch_run_cmd (string->str);
batch_run_cmd ((Gimp *) data, string->str);
g_string_truncate (string, 0);
}
}
......@@ -212,7 +216,8 @@ batch_read (gpointer data,
#endif /* !G_OS_WIN32 */
static void
batch_pserver (gint run_mode,
batch_pserver (Gimp *gimp,
gint run_mode,
gint flags,
gint extra)
{
......@@ -221,7 +226,7 @@ batch_pserver (gint run_mode,
Argument *vals;
gint i;
pserver_proc = procedural_db_lookup ("extension_perl_server");
pserver_proc = procedural_db_lookup (gimp, "extension_perl_server");
if (!pserver_proc)
{
......@@ -237,7 +242,8 @@ batch_pserver (gint run_mode,
args[1].value.pdb_int = flags;
args[2].value.pdb_int = extra;
vals = procedural_db_execute ("extension_perl_server", args);
vals = procedural_db_execute (gimp, "extension_perl_server", args);
switch (vals[0].value.pdb_int)
{
case GIMP_PDB_EXECUTION_ERROR:
......
......@@ -15,9 +15,12 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __BATCH_H__
#define __BATCH_H__
void batch_init (void);
void batch_init (Gimp *gimp);
#endif /* __BATCH_H__ */
......@@ -22,19 +22,10 @@
#include "core/core-types.h"
#include "base/tile-manager.h"
#include "core/gimpbrush.h"
#include "core/gimpbrushgenerated.h"
#include "core/gimpbrushpipe.h"
#include "core/gimpbuffer.h"
#include "core/gimp.h"
#include "core/gimpcontext.h"
#include "core/gimpdatafactory.h"
#include "core/gimpgradient.h"
#include "core/gimplist.h"
#include "core/gimpimage.h"
#include "core/gimppalette.h"
#include "core/gimppattern.h"
#include "core/gimptoolinfo.h"
#include "tools/gimptool.h"
......@@ -45,6 +36,7 @@
#include "gui/brush-select.h"
#include "appenv.h"
#include "app_procs.h"
#include "context_manager.h"
#include "gdisplay.h"
#include "gimprc.h"
......@@ -54,29 +46,6 @@
GIMP_CONTEXT_PAINT_MODE_MASK
/*
* the list of all images
*/
GimpContainer *image_context = NULL;
/*
* the global cut buffer