diff --git a/app/actions/gimpgeglprocedure.c b/app/actions/gimpgeglprocedure.c
index c56946cb29..7305c44460 100644
--- a/app/actions/gimpgeglprocedure.c
+++ b/app/actions/gimpgeglprocedure.c
@@ -38,6 +38,7 @@
#include "core/gimp-memsize.h"
#include "core/gimpcontainer.h"
#include "core/gimpcontext.h"
+#include "core/gimpdisplay.h"
#include "core/gimpdrawable-operation.h"
#include "core/gimpimage.h"
#include "core/gimplayermask.h"
@@ -45,8 +46,6 @@
#include "core/gimpsettings.h"
#include "core/gimptoolinfo.h"
-#include "display/gimpdisplay.h"
-
#include "tools/gimpoperationtool.h"
#include "tools/tool_manager.h"
@@ -80,7 +79,7 @@ static void gimp_gegl_procedure_execute_async (GimpProcedure *procedu
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display);
+ GimpDisplay *display);
G_DEFINE_TYPE (GimpGeglProcedure, gimp_gegl_procedure,
@@ -269,7 +268,7 @@ gimp_gegl_procedure_execute_async (GimpProcedure *procedure,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display)
+ GimpDisplay *display)
{
GimpGeglProcedure *gegl_procedure = GIMP_GEGL_PROCEDURE (procedure);
GimpRunMode run_mode;
@@ -396,7 +395,7 @@ gimp_gegl_procedure_execute_async (GimpProcedure *procedure,
gimp_procedure_get_help_id (procedure));
}
- tool_manager_initialize_active (gimp, GIMP_DISPLAY (display));
+ tool_manager_initialize_active (gimp, display);
if (settings)
gimp_filter_tool_set_config (GIMP_FILTER_TOOL (active_tool),
diff --git a/app/actions/procedure-commands.c b/app/actions/procedure-commands.c
index bcb4586a0d..db3dff9c0c 100644
--- a/app/actions/procedure-commands.c
+++ b/app/actions/procedure-commands.c
@@ -343,7 +343,7 @@ procedure_commands_run_procedure_async (GimpProcedure *procedure,
gimp_procedure_execute_async (procedure, gimp,
gimp_get_user_context (gimp),
progress, args,
- GIMP_OBJECT (display), &error);
+ display, &error);
if (error)
{
diff --git a/app/actions/vectors-commands.c b/app/actions/vectors-commands.c
index 5a2967ac10..120e600b73 100644
--- a/app/actions/vectors-commands.c
+++ b/app/actions/vectors-commands.c
@@ -410,7 +410,7 @@ vectors_selection_to_vectors_cmd_callback (GimpAction *action,
gimp_procedure_execute_async (procedure, image->gimp,
action_data_get_context (data),
GIMP_PROGRESS (display), args,
- GIMP_OBJECT (display), &error);
+ display, &error);
gimp_value_array_unref (args);
diff --git a/app/core/Makefile.am b/app/core/Makefile.am
index be90e742ed..a2d6f0a2de 100644
--- a/app/core/Makefile.am
+++ b/app/core/Makefile.am
@@ -175,6 +175,8 @@ libappcore_a_sources = \
gimpdatafactory.h \
gimpdataloaderfactory.c \
gimpdataloaderfactory.h \
+ gimpdisplay.c \
+ gimpdisplay.h \
gimpdocumentlist.c \
gimpdocumentlist.h \
gimpdrawable.c \
diff --git a/app/core/core-types.h b/app/core/core-types.h
index afb27e8211..d31040d06b 100644
--- a/app/core/core-types.h
+++ b/app/core/core-types.h
@@ -96,6 +96,8 @@ typedef struct _GimpAuxItem GimpAuxItem;
typedef struct _Gimp Gimp;
typedef struct _GimpImage GimpImage;
+typedef struct _GimpDisplay GimpDisplay;
+
/* containers */
diff --git a/app/core/gimp-gui.c b/app/core/gimp-gui.c
index b854fd68d3..42786b8786 100644
--- a/app/core/gimp-gui.c
+++ b/app/core/gimp-gui.c
@@ -28,6 +28,7 @@
#include "gimp-gui.h"
#include "gimpcontainer.h"
#include "gimpcontext.h"
+#include "gimpdisplay.h"
#include "gimpimage.h"
#include "gimpprogress.h"
#include "gimpwaitable.h"
@@ -52,8 +53,6 @@ gimp_gui_init (Gimp *gimp)
gimp->gui.get_user_time = NULL;
gimp->gui.get_theme_dir = NULL;
gimp->gui.get_icon_theme_dir = NULL;
- gimp->gui.display_get_by_id = NULL;
- gimp->gui.display_get_id = NULL;
gimp->gui.display_get_window_id = NULL;
gimp->gui.display_create = NULL;
gimp->gui.display_delete = NULL;
@@ -310,7 +309,7 @@ gimp_get_window_strategy (Gimp *gimp)
return NULL;
}
-GimpObject *
+GimpDisplay *
gimp_get_empty_display (Gimp *gimp)
{
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
@@ -321,37 +320,12 @@ gimp_get_empty_display (Gimp *gimp)
return NULL;
}
-GimpObject *
-gimp_get_display_by_id (Gimp *gimp,
- gint id)
-{
- g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
-
- if (gimp->gui.display_get_by_id)
- return gimp->gui.display_get_by_id (gimp, id);
-
- return NULL;
-}
-
-gint
-gimp_get_display_id (Gimp *gimp,
- GimpObject *display)
-{
- g_return_val_if_fail (GIMP_IS_GIMP (gimp), -1);
- g_return_val_if_fail (GIMP_IS_OBJECT (display), -1);
-
- if (gimp->gui.display_get_id)
- return gimp->gui.display_get_id (display);
-
- return -1;
-}
-
guint32
-gimp_get_display_window_id (Gimp *gimp,
- GimpObject *display)
+gimp_get_display_window_id (Gimp *gimp,
+ GimpDisplay *display)
{
g_return_val_if_fail (GIMP_IS_GIMP (gimp), -1);
- g_return_val_if_fail (GIMP_IS_OBJECT (display), -1);
+ g_return_val_if_fail (GIMP_IS_DISPLAY (display), -1);
if (gimp->gui.display_get_window_id)
return gimp->gui.display_get_window_id (display);
@@ -359,7 +333,7 @@ gimp_get_display_window_id (Gimp *gimp,
return -1;
}
-GimpObject *
+GimpDisplay *
gimp_create_display (Gimp *gimp,
GimpImage *image,
GimpUnit unit,
@@ -377,11 +351,11 @@ gimp_create_display (Gimp *gimp,
}
void
-gimp_delete_display (Gimp *gimp,
- GimpObject *display)
+gimp_delete_display (Gimp *gimp,
+ GimpDisplay *display)
{
g_return_if_fail (GIMP_IS_GIMP (gimp));
- g_return_if_fail (GIMP_IS_OBJECT (display));
+ g_return_if_fail (GIMP_IS_DISPLAY (display));
if (gimp->gui.display_delete)
gimp->gui.display_delete (display);
@@ -401,11 +375,11 @@ gimp_reconnect_displays (Gimp *gimp,
}
GimpProgress *
-gimp_new_progress (Gimp *gimp,
- GimpObject *display)
+gimp_new_progress (Gimp *gimp,
+ GimpDisplay *display)
{
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
- g_return_val_if_fail (display == NULL || GIMP_IS_OBJECT (display), NULL);
+ g_return_val_if_fail (display == NULL || GIMP_IS_DISPLAY (display), NULL);
if (gimp->gui.progress_new)
return gimp->gui.progress_new (gimp, display);
diff --git a/app/core/gimp-gui.h b/app/core/gimp-gui.h
index f4db2c894c..f9a465f0d7 100644
--- a/app/core/gimp-gui.h
+++ b/app/core/gimp-gui.h
@@ -53,23 +53,20 @@ struct _GimpGui
GFile * (* get_icon_theme_dir) (Gimp *gimp);
GimpObject * (* get_window_strategy) (Gimp *gimp);
- GimpObject * (* get_empty_display) (Gimp *gimp);
- GimpObject * (* display_get_by_id) (Gimp *gimp,
- gint ID);
- gint (* display_get_id) (GimpObject *display);
- guint32 (* display_get_window_id) (GimpObject *display);
- GimpObject * (* display_create) (Gimp *gimp,
+ GimpDisplay * (* get_empty_display) (Gimp *gimp);
+ guint32 (* display_get_window_id) (GimpDisplay *display);
+ GimpDisplay * (* display_create) (Gimp *gimp,
GimpImage *image,
GimpUnit unit,
gdouble scale,
GObject *monitor);
- void (* display_delete) (GimpObject *display);
+ void (* display_delete) (GimpDisplay *display);
void (* displays_reconnect) (Gimp *gimp,
GimpImage *old_image,
GimpImage *new_image);
GimpProgress * (* progress_new) (Gimp *gimp,
- GimpObject *display);
+ GimpDisplay *display);
void (* progress_free) (Gimp *gimp,
GimpProgress *progress);
@@ -114,20 +111,20 @@ void gimp_gui_init (Gimp *gimp);
void gimp_gui_ungrab (Gimp *gimp);
GimpObject * gimp_get_window_strategy (Gimp *gimp);
-GimpObject * gimp_get_empty_display (Gimp *gimp);
-GimpObject * gimp_get_display_by_id (Gimp *gimp,
+GimpDisplay * gimp_get_empty_display (Gimp *gimp);
+GimpDisplay * gimp_get_display_by_id (Gimp *gimp,
gint ID);
gint gimp_get_display_id (Gimp *gimp,
- GimpObject *display);
+ GimpDisplay *display);
guint32 gimp_get_display_window_id (Gimp *gimp,
- GimpObject *display);
-GimpObject * gimp_create_display (Gimp *gimp,
+ GimpDisplay *display);
+GimpDisplay * gimp_create_display (Gimp *gimp,
GimpImage *image,
GimpUnit unit,
gdouble scale,
GObject *monitor);
void gimp_delete_display (Gimp *gimp,
- GimpObject *display);
+ GimpDisplay *display);
void gimp_reconnect_displays (Gimp *gimp,
GimpImage *old_image,
GimpImage *new_image);
@@ -152,7 +149,7 @@ void gimp_wait (Gimp *gimp,
...) G_GNUC_PRINTF (3, 4);
GimpProgress * gimp_new_progress (Gimp *gimp,
- GimpObject *display);
+ GimpDisplay *display);
void gimp_free_progress (Gimp *gimp,
GimpProgress *progress);
diff --git a/app/core/gimpcontext.c b/app/core/gimpcontext.c
index 14f2f778c5..605d82caa9 100644
--- a/app/core/gimpcontext.c
+++ b/app/core/gimpcontext.c
@@ -39,6 +39,7 @@
#include "gimpcontainer.h"
#include "gimpcontext.h"
#include "gimpdatafactory.h"
+#include "gimpdisplay.h"
#include "gimpdynamics.h"
#include "gimpimagefile.h"
#include "gimpgradient.h"
@@ -121,10 +122,10 @@ static void gimp_context_real_set_image (GimpContext *context,
/* display */
static void gimp_context_display_removed (GimpContainer *container,
- gpointer display,
+ GimpDisplay *display,
GimpContext *context);
static void gimp_context_real_set_display (GimpContext *context,
- gpointer display);
+ GimpDisplay *display);
/* tool */
static void gimp_context_tool_dirty (GimpToolInfo *tool_info,
@@ -420,7 +421,7 @@ gimp_context_class_init (GimpContextClass *klass)
G_STRUCT_OFFSET (GimpContextClass, display_changed),
NULL, NULL, NULL,
G_TYPE_NONE, 1,
- GIMP_TYPE_OBJECT);
+ GIMP_TYPE_DISPLAY);
gimp_context_signals[TOOL_CHANGED] =
g_signal_new ("tool-changed",
@@ -644,7 +645,7 @@ gimp_context_class_init (GimpContextClass *klass)
g_object_class_install_property (object_class, GIMP_CONTEXT_PROP_DISPLAY,
g_param_spec_object (gimp_context_prop_names[GIMP_CONTEXT_PROP_DISPLAY],
NULL, NULL,
- GIMP_TYPE_OBJECT,
+ GIMP_TYPE_DISPLAY,
GIMP_PARAM_READWRITE));
GIMP_CONFIG_PROP_OBJECT (object_class, GIMP_CONTEXT_PROP_TOOL,
@@ -1940,7 +1941,7 @@ gimp_context_real_set_image (GimpContext *context,
/*****************************************************************************/
/* display *****************************************************************/
-gpointer
+GimpDisplay *
gimp_context_get_display (GimpContext *context)
{
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
@@ -1950,10 +1951,10 @@ gimp_context_get_display (GimpContext *context)
void
gimp_context_set_display (GimpContext *context,
- gpointer display)
+ GimpDisplay *display)
{
g_return_if_fail (GIMP_IS_CONTEXT (context));
- g_return_if_fail (display == NULL || GIMP_IS_OBJECT (display));
+ g_return_if_fail (display == NULL || GIMP_IS_DISPLAY (display));
context_find_defined (context, GIMP_CONTEXT_PROP_DISPLAY);
@@ -1972,7 +1973,7 @@ gimp_context_display_changed (GimpContext *context)
static void
gimp_context_display_removed (GimpContainer *container,
- gpointer display,
+ GimpDisplay *display,
GimpContext *context)
{
if (context->display == display)
@@ -1981,9 +1982,9 @@ gimp_context_display_removed (GimpContainer *container,
static void
gimp_context_real_set_display (GimpContext *context,
- gpointer display)
+ GimpDisplay *display)
{
- GimpObject *old_display;
+ GimpDisplay *old_display;
if (context->display == display)
{
diff --git a/app/core/gimpcontext.h b/app/core/gimpcontext.h
index 7f15a4a01c..82ff26a752 100644
--- a/app/core/gimpcontext.h
+++ b/app/core/gimpcontext.h
@@ -56,7 +56,7 @@ struct _GimpContext
guint32 serialize_props;
GimpImage *image;
- gpointer display;
+ GimpDisplay *display;
GimpToolInfo *tool_info;
gchar *tool_name;
@@ -111,7 +111,7 @@ struct _GimpContextClass
void (* image_changed) (GimpContext *context,
GimpImage *image);
void (* display_changed) (GimpContext *context,
- gpointer display);
+ GimpDisplay *display);
void (* tool_changed) (GimpContext *context,
GimpToolInfo *tool_info);
@@ -222,9 +222,9 @@ void gimp_context_image_changed (GimpContext *context);
/* display */
-gpointer gimp_context_get_display (GimpContext *context);
+GimpDisplay * gimp_context_get_display (GimpContext *context);
void gimp_context_set_display (GimpContext *context,
- gpointer display);
+ GimpDisplay *display);
void gimp_context_display_changed (GimpContext *context);
diff --git a/app/core/gimpdisplay.c b/app/core/gimpdisplay.c
new file mode 100644
index 0000000000..a8aba94ba3
--- /dev/null
+++ b/app/core/gimpdisplay.c
@@ -0,0 +1,195 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995 Spencer Kimball and Peter Mattis
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "config.h"
+
+#include
+#include
+
+#include "libgimpbase/gimpbase.h"
+#include "libgimpmath/gimpmath.h"
+
+#include "core-types.h"
+
+#include "config/gimpguiconfig.h"
+
+#include "core/gimp.h"
+#include "core/gimpcontainer.h"
+#include "core/gimpcontext.h"
+
+#include "gimpdisplay.h"
+
+#include "gimp-intl.h"
+
+enum
+{
+ PROP_0,
+ PROP_ID,
+ PROP_GIMP
+};
+
+
+struct _GimpDisplayPrivate
+{
+ gint id; /* unique identifier for this display */
+};
+
+
+/* local function prototypes */
+
+static void gimp_display_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gimp_display_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec);
+
+
+G_DEFINE_TYPE_WITH_PRIVATE (GimpDisplay, gimp_display, GIMP_TYPE_OBJECT)
+
+#define parent_class gimp_display_parent_class
+
+
+static void
+gimp_display_class_init (GimpDisplayClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = gimp_display_set_property;
+ object_class->get_property = gimp_display_get_property;
+
+ g_object_class_install_property (object_class, PROP_ID,
+ g_param_spec_int ("id",
+ NULL, NULL,
+ 0, G_MAXINT, 0,
+ GIMP_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, PROP_GIMP,
+ g_param_spec_object ("gimp",
+ NULL, NULL,
+ GIMP_TYPE_GIMP,
+ GIMP_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY));
+}
+
+static void
+gimp_display_init (GimpDisplay *display)
+{
+ display->priv = gimp_display_get_instance_private (display);
+}
+
+static void
+gimp_display_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GimpDisplay *display = GIMP_DISPLAY (object);
+ GimpDisplayPrivate *private = display->priv;
+
+ switch (property_id)
+ {
+ case PROP_GIMP:
+ {
+ gint id;
+
+ display->gimp = g_value_get_object (value); /* don't ref the gimp */
+ display->config = GIMP_DISPLAY_CONFIG (display->gimp->config);
+
+ do
+ {
+ id = display->gimp->next_display_id++;
+
+ if (display->gimp->next_display_id == G_MAXINT)
+ display->gimp->next_display_id = 1;
+ }
+ while (gimp_display_get_by_id (display->gimp, id));
+
+ private->id = id;
+ }
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+gimp_display_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GimpDisplay *display = GIMP_DISPLAY (object);
+
+ switch (property_id)
+ {
+ case PROP_ID:
+ g_value_set_int (value, display->priv->id);
+ break;
+
+ case PROP_GIMP:
+ g_value_set_object (value, display->gimp);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+/* public functions */
+
+gint
+gimp_display_get_id (GimpDisplay *display)
+{
+ g_return_val_if_fail (GIMP_IS_DISPLAY (display), -1);
+
+ return display->priv->id;
+}
+
+GimpDisplay *
+gimp_display_get_by_id (Gimp *gimp,
+ gint id)
+{
+ GList *list;
+
+ g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
+
+ for (list = gimp_get_display_iter (gimp);
+ list;
+ list = g_list_next (list))
+ {
+ GimpDisplay *display = list->data;
+
+ if (gimp_display_get_id (display) == id)
+ return display;
+ }
+
+ return NULL;
+}
+
+Gimp *
+gimp_display_get_gimp (GimpDisplay *display)
+{
+ g_return_val_if_fail (GIMP_IS_DISPLAY (display), NULL);
+
+ return display->gimp;
+}
diff --git a/app/core/gimpdisplay.h b/app/core/gimpdisplay.h
new file mode 100644
index 0000000000..2ea00c80d4
--- /dev/null
+++ b/app/core/gimpdisplay.h
@@ -0,0 +1,61 @@
+/* GIMP - The GNU Image Manipulation Program
+ * Copyright (C) 1995 Spencer Kimball and Peter Mattis
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef __GIMP_DISPLAY_H__
+#define __GIMP_DISPLAY_H__
+
+
+#include "gimpobject.h"
+
+
+#define GIMP_TYPE_DISPLAY (gimp_display_get_type ())
+#define GIMP_DISPLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_DISPLAY, GimpDisplay))
+#define GIMP_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_DISPLAY, GimpDisplayClass))
+#define GIMP_IS_DISPLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_DISPLAY))
+#define GIMP_IS_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_DISPLAY))
+#define GIMP_DISPLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_DISPLAY, GimpDisplayClass))
+
+
+typedef struct _GimpDisplayClass GimpDisplayClass;
+typedef struct _GimpDisplayPrivate GimpDisplayPrivate;
+
+struct _GimpDisplay
+{
+ GimpObject parent_instance;
+
+ Gimp *gimp;
+ GimpDisplayConfig *config;
+
+ GimpDisplayPrivate *priv;
+};
+
+struct _GimpDisplayClass
+{
+ GimpObjectClass parent_class;
+};
+
+
+GType gimp_display_get_type (void) G_GNUC_CONST;
+
+gint gimp_display_get_id (GimpDisplay *display);
+GimpDisplay * gimp_display_get_by_id (Gimp *gimp,
+ gint id);
+
+Gimp * gimp_display_get_gimp (GimpDisplay *display);
+
+
+#endif /* __GIMP_DISPLAY_H__ */
diff --git a/app/core/gimpparamspecs.c b/app/core/gimpparamspecs.c
index 5182261f4c..1b096ef10d 100644
--- a/app/core/gimpparamspecs.c
+++ b/app/core/gimpparamspecs.c
@@ -25,6 +25,7 @@
#include "core-types.h"
#include "gimp.h"
+#include "gimpdisplay.h"
#include "gimpimage.h"
#include "gimplayer.h"
#include "gimplayermask.h"
@@ -383,7 +384,7 @@ gimp_param_image_init (GParamSpec *pspec)
static gboolean
gimp_param_image_validate (GParamSpec *pspec,
- GValue *value)
+ GValue *value)
{
GimpParamSpecImage *ispec = GIMP_PARAM_SPEC_IMAGE (pspec);
GimpImage *image = value->data[0].v_pointer;
@@ -876,10 +877,10 @@ gimp_param_spec_vectors (const gchar *name,
* GIMP_TYPE_PARAM_DISPLAY
*/
-static void gimp_param_display_class_init (GParamSpecClass *klass);
-static void gimp_param_display_init (GParamSpec *pspec);
-static gboolean gimp_param_display_validate (GParamSpec *pspec,
- GValue *value);
+static void gimp_param_display_class_init (GParamSpecClass *klass);
+static void gimp_param_display_init (GParamSpec *pspec);
+static gboolean gimp_param_display_validate (GParamSpec *pspec,
+ GValue *value);
GType
gimp_param_display_get_type (void)
@@ -909,33 +910,29 @@ gimp_param_display_get_type (void)
static void
gimp_param_display_class_init (GParamSpecClass *klass)
{
- klass->value_type = g_type_from_name ("GimpDisplay");
-
- g_assert (klass->value_type != G_TYPE_NONE);
-
+ klass->value_type = GIMP_TYPE_DISPLAY;
klass->value_validate = gimp_param_display_validate;
}
static void
gimp_param_display_init (GParamSpec *pspec)
{
- GimpParamSpecDisplay *ispec = GIMP_PARAM_SPEC_DISPLAY (pspec);
+ GimpParamSpecDisplay *dspec = GIMP_PARAM_SPEC_DISPLAY (pspec);
- ispec->none_ok = FALSE;
+ dspec->none_ok = FALSE;
}
static gboolean
gimp_param_display_validate (GParamSpec *pspec,
GValue *value)
{
- GimpParamSpecDisplay *ispec = GIMP_PARAM_SPEC_DISPLAY (pspec);
- GObject *display = value->data[0].v_pointer;
+ GimpParamSpecDisplay *dspec = GIMP_PARAM_SPEC_DISPLAY (pspec);
+ GimpDisplay *display = value->data[0].v_pointer;
- if (! ispec->none_ok && display == NULL)
+ if (! dspec->none_ok && display == NULL)
return TRUE;
- if (display && ! g_value_type_compatible (G_OBJECT_TYPE (display),
- G_PARAM_SPEC_VALUE_TYPE (pspec)))
+ if (display && ! GIMP_IS_DISPLAY (display))
{
g_object_unref (display);
value->data[0].v_pointer = NULL;
@@ -952,12 +949,12 @@ gimp_param_spec_display (const gchar *name,
gboolean none_ok,
GParamFlags flags)
{
- GimpParamSpecDisplay *ispec;
+ GimpParamSpecDisplay *dspec;
- ispec = g_param_spec_internal (GIMP_TYPE_PARAM_DISPLAY,
+ dspec = g_param_spec_internal (GIMP_TYPE_PARAM_DISPLAY,
name, nick, blurb, flags);
- ispec->none_ok = none_ok ? TRUE : FALSE;
+ dspec->none_ok = none_ok ? TRUE : FALSE;
- return G_PARAM_SPEC (ispec);
+ return G_PARAM_SPEC (dspec);
}
diff --git a/app/core/gimpparamspecs.h b/app/core/gimpparamspecs.h
index c89a615718..0405835b4e 100644
--- a/app/core/gimpparamspecs.h
+++ b/app/core/gimpparamspecs.h
@@ -210,13 +210,13 @@ struct _GimpParamSpecChannel
GimpParamSpecDrawable parent_instance;
};
-GType gimp_param_channel_get_type (void) G_GNUC_CONST;
+GType gimp_param_channel_get_type (void) G_GNUC_CONST;
-GParamSpec * gimp_param_spec_channel (const gchar *name,
- const gchar *nick,
- const gchar *blurb,
- gboolean none_ok,
- GParamFlags flags);
+GParamSpec * gimp_param_spec_channel (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gboolean none_ok,
+ GParamFlags flags);
/*
@@ -305,7 +305,7 @@ GParamSpec * gimp_param_spec_vectors (const gchar *name,
*/
#define GIMP_VALUE_HOLDS_DISPLAY(value) (G_TYPE_CHECK_VALUE_TYPE ((value),\
- GIMP_TYPE_OBJECT))
+ GIMP_TYPE_DISPLAY))
#define GIMP_TYPE_PARAM_DISPLAY (gimp_param_display_get_type ())
#define GIMP_PARAM_SPEC_DISPLAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), GIMP_TYPE_PARAM_DISPLAY, GimpParamSpecDisplay))
diff --git a/app/display/display-types.h b/app/display/display-types.h
index 6de751dc1c..302f465d19 100644
--- a/app/display/display-types.h
+++ b/app/display/display-types.h
@@ -28,7 +28,6 @@ typedef struct _GimpCanvas GimpCanvas;
typedef struct _GimpCanvasGroup GimpCanvasGroup;
typedef struct _GimpCanvasItem GimpCanvasItem;
-typedef struct _GimpDisplay GimpDisplay;
typedef struct _GimpDisplayShell GimpDisplayShell;
typedef struct _GimpMotionBuffer GimpMotionBuffer;
diff --git a/app/display/gimpdisplay.c b/app/display/gimpdisplay.c
index 7c7bfafadb..905cdc7142 100644
--- a/app/display/gimpdisplay.c
+++ b/app/display/gimpdisplay.c
@@ -59,19 +59,13 @@
enum
{
PROP_0,
- PROP_ID,
- PROP_GIMP,
PROP_IMAGE,
PROP_SHELL
};
-typedef struct _GimpDisplayPrivate GimpDisplayPrivate;
-
-struct _GimpDisplayPrivate
+struct _GimpDisplayImplPrivate
{
- gint ID; /* unique identifier for this display */
-
GimpImage *image; /* pointer to the associated image */
gint instance; /* the instance # of this display as
* taken from the image at creation */
@@ -80,9 +74,6 @@ struct _GimpDisplayPrivate
cairo_region_t *update_region;
};
-#define GIMP_DISPLAY_GET_PRIVATE(display) \
- ((GimpDisplayPrivate *) gimp_display_get_instance_private ((GimpDisplay *) (display)))
-
/* local function prototypes */
@@ -125,35 +116,22 @@ static void gimp_display_paint_area (GimpDisplay *displa
gint h);
-G_DEFINE_TYPE_WITH_CODE (GimpDisplay, gimp_display, GIMP_TYPE_OBJECT,
- G_ADD_PRIVATE (GimpDisplay)
+G_DEFINE_TYPE_WITH_CODE (GimpDisplayImpl, gimp_display_impl, GIMP_TYPE_DISPLAY,
+ G_ADD_PRIVATE (GimpDisplayImpl)
G_IMPLEMENT_INTERFACE (GIMP_TYPE_PROGRESS,
gimp_display_progress_iface_init))
-#define parent_class gimp_display_parent_class
+#define parent_class gimp_display_impl_parent_class
static void
-gimp_display_class_init (GimpDisplayClass *klass)
+gimp_display_impl_class_init (GimpDisplayImplClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->set_property = gimp_display_set_property;
object_class->get_property = gimp_display_get_property;
- g_object_class_install_property (object_class, PROP_ID,
- g_param_spec_int ("id",
- NULL, NULL,
- 0, G_MAXINT, 0,
- GIMP_PARAM_READABLE));
-
- g_object_class_install_property (object_class, PROP_GIMP,
- g_param_spec_object ("gimp",
- NULL, NULL,
- GIMP_TYPE_GIMP,
- GIMP_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY));
-
g_object_class_install_property (object_class, PROP_IMAGE,
g_param_spec_object ("image",
NULL, NULL,
@@ -168,8 +146,9 @@ gimp_display_class_init (GimpDisplayClass *klass)
}
static void
-gimp_display_init (GimpDisplay *display)
+gimp_display_impl_init (GimpDisplayImpl *display)
{
+ display->priv = gimp_display_impl_get_instance_private (display);
}
static void
@@ -192,31 +171,8 @@ gimp_display_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GimpDisplay *display = GIMP_DISPLAY (object);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
-
switch (property_id)
{
- case PROP_GIMP:
- {
- gint ID;
-
- display->gimp = g_value_get_object (value); /* don't ref the gimp */
- display->config = GIMP_DISPLAY_CONFIG (display->gimp->config);
-
- do
- {
- ID = display->gimp->next_display_id++;
-
- if (display->gimp->next_display_id == G_MAXINT)
- display->gimp->next_display_id = 1;
- }
- while (gimp_display_get_by_id (display->gimp, ID));
-
- private->ID = ID;
- }
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -229,25 +185,16 @@ gimp_display_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GimpDisplay *display = GIMP_DISPLAY (object);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (object);
switch (property_id)
{
- case PROP_ID:
- g_value_set_int (value, private->ID);
- break;
-
- case PROP_GIMP:
- g_value_set_object (value, display->gimp);
- break;
-
case PROP_IMAGE:
- g_value_set_object (value, private->image);
+ g_value_set_object (value, display->priv->image);
break;
case PROP_SHELL:
- g_value_set_object (value, private->shell);
+ g_value_set_object (value, display->priv->shell);
break;
default:
@@ -261,11 +208,11 @@ gimp_display_progress_start (GimpProgress *progress,
gboolean cancellable,
const gchar *message)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- return gimp_progress_start (GIMP_PROGRESS (private->shell), cancellable,
+ if (display->priv->shell)
+ return gimp_progress_start (GIMP_PROGRESS (display->priv->shell),
+ cancellable,
"%s", message);
return NULL;
@@ -274,21 +221,19 @@ gimp_display_progress_start (GimpProgress *progress,
static void
gimp_display_progress_end (GimpProgress *progress)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- gimp_progress_end (GIMP_PROGRESS (private->shell));
+ if (display->priv->shell)
+ gimp_progress_end (GIMP_PROGRESS (display->priv->shell));
}
static gboolean
gimp_display_progress_is_active (GimpProgress *progress)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- return gimp_progress_is_active (GIMP_PROGRESS (private->shell));
+ if (display->priv->shell)
+ return gimp_progress_is_active (GIMP_PROGRESS (display->priv->shell));
return FALSE;
}
@@ -297,32 +242,31 @@ static void
gimp_display_progress_set_text (GimpProgress *progress,
const gchar *message)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- gimp_progress_set_text_literal (GIMP_PROGRESS (private->shell), message);
+ if (display->priv->shell)
+ gimp_progress_set_text_literal (GIMP_PROGRESS (display->priv->shell),
+ message);
}
static void
gimp_display_progress_set_value (GimpProgress *progress,
gdouble percentage)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- gimp_progress_set_value (GIMP_PROGRESS (private->shell), percentage);
+ if (display->priv->shell)
+ gimp_progress_set_value (GIMP_PROGRESS (display->priv->shell),
+ percentage);
}
static gdouble
gimp_display_progress_get_value (GimpProgress *progress)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- return gimp_progress_get_value (GIMP_PROGRESS (private->shell));
+ if (display->priv->shell)
+ return gimp_progress_get_value (GIMP_PROGRESS (display->priv->shell));
return 0.0;
}
@@ -330,21 +274,19 @@ gimp_display_progress_get_value (GimpProgress *progress)
static void
gimp_display_progress_pulse (GimpProgress *progress)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- gimp_progress_pulse (GIMP_PROGRESS (private->shell));
+ if (display->priv->shell)
+ gimp_progress_pulse (GIMP_PROGRESS (display->priv->shell));
}
static guint32
gimp_display_progress_get_window_id (GimpProgress *progress)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- return gimp_progress_get_window_id (GIMP_PROGRESS (private->shell));
+ if (display->priv->shell)
+ return gimp_progress_get_window_id (GIMP_PROGRESS (display->priv->shell));
return 0;
}
@@ -356,11 +298,10 @@ gimp_display_progress_message (GimpProgress *progress,
const gchar *domain,
const gchar *message)
{
- GimpDisplay *display = GIMP_DISPLAY (progress);
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImpl *display = GIMP_DISPLAY_IMPL (progress);
- if (private->shell)
- return gimp_progress_message (GIMP_PROGRESS (private->shell), gimp,
+ if (display->priv->shell)
+ return gimp_progress_message (GIMP_PROGRESS (display->priv->shell), gimp,
severity, domain, message);
return FALSE;
@@ -385,10 +326,10 @@ gimp_display_new (Gimp *gimp,
GimpDialogFactory *dialog_factory,
GdkMonitor *monitor)
{
- GimpDisplay *display;
- GimpDisplayPrivate *private;
- GimpImageWindow *window = NULL;
- GimpDisplayShell *shell;
+ GimpDisplay *display;
+ GimpDisplayImplPrivate *private;
+ GimpImageWindow *window = NULL;
+ GimpDisplayShell *shell;
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
g_return_val_if_fail (image == NULL || GIMP_IS_IMAGE (image), NULL);
@@ -398,11 +339,11 @@ gimp_display_new (Gimp *gimp,
if (gimp->no_interface)
return NULL;
- display = g_object_new (GIMP_TYPE_DISPLAY,
+ display = g_object_new (GIMP_TYPE_DISPLAY_IMPL,
"gimp", gimp,
NULL);
- private = GIMP_DISPLAY_GET_PRIVATE (display);
+ private = GIMP_DISPLAY_IMPL (display)->priv;
/* refs the image */
if (image)
@@ -472,12 +413,12 @@ gimp_display_new (Gimp *gimp,
void
gimp_display_delete (GimpDisplay *display)
{
- GimpDisplayPrivate *private;
- GimpTool *active_tool;
+ GimpDisplayImplPrivate *private;
+ GimpTool *active_tool;
g_return_if_fail (GIMP_IS_DISPLAY (display));
- private = GIMP_DISPLAY_GET_PRIVATE (display);
+ private = GIMP_DISPLAY_IMPL (display)->priv;
/* remove the display from the list */
gimp_container_remove (display->gimp->displays, GIMP_OBJECT (display));
@@ -548,39 +489,6 @@ gimp_display_close (GimpDisplay *display)
}
}
-gint
-gimp_display_get_id (GimpDisplay *display)
-{
- GimpDisplayPrivate *private;
-
- g_return_val_if_fail (GIMP_IS_DISPLAY (display), -1);
-
- private = GIMP_DISPLAY_GET_PRIVATE (display);
-
- return private->ID;
-}
-
-GimpDisplay *
-gimp_display_get_by_id (Gimp *gimp,
- gint id)
-{
- GList *list;
-
- g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
-
- for (list = gimp_get_display_iter (gimp);
- list;
- list = g_list_next (list))
- {
- GimpDisplay *display = list->data;
-
- if (gimp_display_get_id (display) == id)
- return display;
- }
-
- return NULL;
-}
-
/**
* gimp_display_get_action_name:
* @display:
@@ -597,34 +505,26 @@ gimp_display_get_action_name (GimpDisplay *display)
gimp_display_get_id (display));
}
-Gimp *
-gimp_display_get_gimp (GimpDisplay *display)
-{
- g_return_val_if_fail (GIMP_IS_DISPLAY (display), NULL);
-
- return display->gimp;
-}
-
GimpImage *
gimp_display_get_image (GimpDisplay *display)
{
g_return_val_if_fail (GIMP_IS_DISPLAY (display), NULL);
- return GIMP_DISPLAY_GET_PRIVATE (display)->image;
+ return GIMP_DISPLAY_IMPL (display)->priv->image;
}
void
gimp_display_set_image (GimpDisplay *display,
GimpImage *image)
{
- GimpDisplayPrivate *private;
- GimpImage *old_image = NULL;
- GimpDisplayShell *shell;
+ GimpDisplayImplPrivate *private;
+ GimpImage *old_image = NULL;
+ GimpDisplayShell *shell;
g_return_if_fail (GIMP_IS_DISPLAY (display));
g_return_if_fail (image == NULL || GIMP_IS_IMAGE (image));
- private = GIMP_DISPLAY_GET_PRIVATE (display);
+ private = GIMP_DISPLAY_IMPL (display)->priv;
shell = gimp_display_get_shell (display);
@@ -694,36 +594,28 @@ gimp_display_set_image (GimpDisplay *display,
gint
gimp_display_get_instance (GimpDisplay *display)
{
- GimpDisplayPrivate *private;
-
g_return_val_if_fail (GIMP_IS_DISPLAY (display), 0);
- private = GIMP_DISPLAY_GET_PRIVATE (display);
-
- return private->instance;
+ return GIMP_DISPLAY_IMPL (display)->priv->instance;
}
GimpDisplayShell *
gimp_display_get_shell (GimpDisplay *display)
{
- GimpDisplayPrivate *private;
-
g_return_val_if_fail (GIMP_IS_DISPLAY (display), NULL);
- private = GIMP_DISPLAY_GET_PRIVATE (display);
-
- return GIMP_DISPLAY_SHELL (private->shell);
+ return GIMP_DISPLAY_SHELL (GIMP_DISPLAY_IMPL (display)->priv->shell);
}
void
gimp_display_empty (GimpDisplay *display)
{
- GimpDisplayPrivate *private;
- GList *iter;
+ GimpDisplayImplPrivate *private;
+ GList *iter;
g_return_if_fail (GIMP_IS_DISPLAY (display));
- private = GIMP_DISPLAY_GET_PRIVATE (display);
+ private = GIMP_DISPLAY_IMPL (display)->priv;
g_return_if_fail (GIMP_IS_IMAGE (private->image));
@@ -746,12 +638,12 @@ gimp_display_fill (GimpDisplay *display,
GimpUnit unit,
gdouble scale)
{
- GimpDisplayPrivate *private;
+ GimpDisplayImplPrivate *private;
g_return_if_fail (GIMP_IS_DISPLAY (display));
g_return_if_fail (GIMP_IS_IMAGE (image));
- private = GIMP_DISPLAY_GET_PRIVATE (display);
+ private = GIMP_DISPLAY_IMPL (display)->priv;
g_return_if_fail (private->image == NULL);
@@ -769,11 +661,11 @@ gimp_display_update_area (GimpDisplay *display,
gint w,
gint h)
{
- GimpDisplayPrivate *private;
+ GimpDisplayImplPrivate *private;
g_return_if_fail (GIMP_IS_DISPLAY (display));
- private = GIMP_DISPLAY_GET_PRIVATE (display);
+ private = GIMP_DISPLAY_IMPL (display)->priv;
if (now)
{
@@ -824,7 +716,7 @@ gimp_display_flush_now (GimpDisplay *display)
static void
gimp_display_flush_update_region (GimpDisplay *display)
{
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
+ GimpDisplayImplPrivate *private = GIMP_DISPLAY_IMPL (display)->priv;
if (private->update_region)
{
@@ -856,12 +748,12 @@ gimp_display_paint_area (GimpDisplay *display,
gint w,
gint h)
{
- GimpDisplayPrivate *private = GIMP_DISPLAY_GET_PRIVATE (display);
- GimpDisplayShell *shell = gimp_display_get_shell (display);
- gint image_width = gimp_image_get_width (private->image);
- gint image_height = gimp_image_get_height (private->image);
- gint x1, y1, x2, y2;
- gdouble x1_f, y1_f, x2_f, y2_f;
+ GimpDisplayImplPrivate *private = GIMP_DISPLAY_IMPL (display)->priv;
+ GimpDisplayShell *shell = gimp_display_get_shell (display);
+ gint image_width = gimp_image_get_width (private->image);
+ gint image_height = gimp_image_get_height (private->image);
+ gint x1, y1, x2, y2;
+ gdouble x1_f, y1_f, x2_f, y2_f;
/* Bounds check */
x1 = CLAMP (x, 0, image_width);
diff --git a/app/display/gimpdisplay.h b/app/display/gimpdisplay.h
index 43d70d59b0..6fbb5154fa 100644
--- a/app/display/gimpdisplay.h
+++ b/app/display/gimpdisplay.h
@@ -15,39 +15,41 @@
* along with this program. If not, see .
*/
-#ifndef __GIMP_DISPLAY_H__
-#define __GIMP_DISPLAY_H__
+#ifndef __GIMP_DISPLAY_IMPL_H__
+#define __GIMP_DISPLAY_IMPL_H__
-#include "core/gimpobject.h"
+#include "core/gimpdisplay.h"
-#define GIMP_TYPE_DISPLAY (gimp_display_get_type ())
-#define GIMP_DISPLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_DISPLAY, GimpDisplay))
-#define GIMP_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_DISPLAY, GimpDisplayClass))
-#define GIMP_IS_DISPLAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_DISPLAY))
-#define GIMP_IS_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_DISPLAY))
-#define GIMP_DISPLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_DISPLAY, GimpDisplayClass))
+#define GIMP_TYPE_DISPLAY_IMPL (gimp_display_impl_get_type ())
+#define GIMP_DISPLAY_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_DISPLAY_IMPL, GimpDisplayImpl))
+#define GIMP_DISPLAY_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_DISPLAY_IMPL, GimpDisplayImplClass))
+#define GIMP_IS_DISPLAY_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_DISPLAY_IMPL))
+#define GIMP_IS_DISPLAY_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_DISPLAY_IMPL))
+#define GIMP_DISPLAY_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_DISPLAY_IMPL, GimpDisplayImplClass))
-typedef struct _GimpDisplayClass GimpDisplayClass;
+typedef struct _GimpDisplayImpl GimpDisplayImpl;
+typedef struct _GimpDisplayImplClass GimpDisplayImplClass;
+typedef struct _GimpDisplayImplPrivate GimpDisplayImplPrivate;
-struct _GimpDisplay
+
+struct _GimpDisplayImpl
{
- GimpObject parent_instance;
+ GimpDisplay parent_instance;
- Gimp *gimp;
- GimpDisplayConfig *config;
+ GimpDisplayImplPrivate *priv;
};
-struct _GimpDisplayClass
+struct _GimpDisplayImplClass
{
- GimpObjectClass parent_class;
+ GimpDisplayClass parent_class;
};
-GType gimp_display_get_type (void) G_GNUC_CONST;
+GType gimp_display_impl_get_type (void) G_GNUC_CONST;
GimpDisplay * gimp_display_new (Gimp *gimp,
GimpImage *image,
@@ -59,14 +61,8 @@ GimpDisplay * gimp_display_new (Gimp *gimp,
void gimp_display_delete (GimpDisplay *display);
void gimp_display_close (GimpDisplay *display);
-gint gimp_display_get_id (GimpDisplay *display);
-GimpDisplay * gimp_display_get_by_id (Gimp *gimp,
- gint id);
-
gchar * gimp_display_get_action_name (GimpDisplay *display);
-Gimp * gimp_display_get_gimp (GimpDisplay *display);
-
GimpImage * gimp_display_get_image (GimpDisplay *display);
void gimp_display_set_image (GimpDisplay *display,
GimpImage *image);
@@ -92,4 +88,4 @@ void gimp_display_flush (GimpDisplay *display);
void gimp_display_flush_now (GimpDisplay *display);
-#endif /* __GIMP_DISPLAY_H__ */
+#endif /* __GIMP_DISPLAY_IMPL_H__ */
diff --git a/app/file/file-open.c b/app/file/file-open.c
index b87e6e7005..9f3a21b96d 100644
--- a/app/file/file-open.c
+++ b/app/file/file-open.c
@@ -682,7 +682,7 @@ file_open_from_command_line (Gimp *gimp,
{
GimpImage *image;
- GimpObject *display;
+ GimpDisplay *display;
GimpPDBStatusType status;
gboolean success = FALSE;
GError *error = NULL;
diff --git a/app/gui/gui-vtable.c b/app/gui/gui-vtable.c
index 09487382f1..191c5b1a75 100644
--- a/app/gui/gui-vtable.c
+++ b/app/gui/gui-vtable.c
@@ -128,17 +128,14 @@ static guint32 gui_get_user_time (Gimp *gimp);
static GFile * gui_get_theme_dir (Gimp *gimp);
static GFile * gui_get_icon_theme_dir (Gimp *gimp);
static GimpObject * gui_get_window_strategy (Gimp *gimp);
-static GimpObject * gui_get_empty_display (Gimp *gimp);
-static GimpObject * gui_display_get_by_id (Gimp *gimp,
- gint ID);
-static gint gui_display_get_id (GimpObject *display);
-static guint32 gui_display_get_window_id (GimpObject *display);
-static GimpObject * gui_display_create (Gimp *gimp,
+static GimpDisplay * gui_get_empty_display (Gimp *gimp);
+static guint32 gui_display_get_window_id (GimpDisplay *display);
+static GimpDisplay * gui_display_create (Gimp *gimp,
GimpImage *image,
GimpUnit unit,
gdouble scale,
GObject *monitor);
-static void gui_display_delete (GimpObject *display);
+static void gui_display_delete (GimpDisplay *display);
static void gui_displays_reconnect (Gimp *gimp,
GimpImage *old_image,
GimpImage *new_image);
@@ -146,7 +143,7 @@ static gboolean gui_wait (Gimp *gimp,
GimpWaitable *waitable,
const gchar *message);
static GimpProgress * gui_new_progress (Gimp *gimp,
- GimpObject *display);
+ GimpDisplay *display);
static void gui_free_progress (Gimp *gimp,
GimpProgress *progress);
static gboolean gui_pdb_dialog_new (Gimp *gimp,
@@ -203,8 +200,6 @@ gui_vtable_init (Gimp *gimp)
gimp->gui.get_icon_theme_dir = gui_get_icon_theme_dir;
gimp->gui.get_window_strategy = gui_get_window_strategy;
gimp->gui.get_empty_display = gui_get_empty_display;
- gimp->gui.display_get_by_id = gui_display_get_by_id;
- gimp->gui.display_get_id = gui_display_get_id;
gimp->gui.display_get_window_id = gui_display_get_window_id;
gimp->gui.display_create = gui_display_create;
gimp->gui.display_delete = gui_display_delete;
@@ -345,16 +340,16 @@ gui_get_window_strategy (Gimp *gimp)
return gimp_multi_window_strategy_get_singleton ();
}
-static GimpObject *
+static GimpDisplay *
gui_get_empty_display (Gimp *gimp)
{
- GimpObject *display = NULL;
+ GimpDisplay *display = NULL;
if (gimp_container_get_n_children (gimp->displays) == 1)
{
- display = gimp_container_get_first_child (gimp->displays);
+ display = (GimpDisplay *) gimp_container_get_first_child (gimp->displays);
- if (gimp_display_get_image (GIMP_DISPLAY (display)))
+ if (gimp_display_get_image (display))
{
/* The display was not empty */
display = NULL;
@@ -364,21 +359,8 @@ gui_get_empty_display (Gimp *gimp)
return display;
}
-static GimpObject *
-gui_display_get_by_id (Gimp *gimp,
- gint id)
-{
- return (GimpObject *) gimp_display_get_by_id (gimp, id);
-}
-
-static gint
-gui_display_get_id (GimpObject *display)
-{
- return gimp_display_get_id (GIMP_DISPLAY (display));
-}
-
static guint32
-gui_display_get_window_id (GimpObject *display)
+gui_display_get_window_id (GimpDisplay *display)
{
GimpDisplay *disp = GIMP_DISPLAY (display);
GimpDisplayShell *shell = gimp_display_get_shell (disp);
@@ -394,7 +376,7 @@ gui_display_get_window_id (GimpObject *display)
return 0;
}
-static GimpObject *
+static GimpDisplay *
gui_display_create (Gimp *gimp,
GimpImage *image,
GimpUnit unit,
@@ -433,13 +415,13 @@ gui_display_create (Gimp *gimp,
gimp_context_set_display (context, display);
}
- return GIMP_OBJECT (display);
+ return display;
}
static void
-gui_display_delete (GimpObject *display)
+gui_display_delete (GimpDisplay *display)
{
- gimp_display_close (GIMP_DISPLAY (display));
+ gimp_display_close (display);
}
static void
@@ -563,8 +545,8 @@ gui_wait (Gimp *gimp,
}
static GimpProgress *
-gui_new_progress (Gimp *gimp,
- GimpObject *display)
+gui_new_progress (Gimp *gimp,
+ GimpDisplay *display)
{
g_return_val_if_fail (display == NULL || GIMP_IS_DISPLAY (display), NULL);
diff --git a/app/pdb/display-cmds.c b/app/pdb/display-cmds.c
index c98d6e4ba1..2f84486fc8 100644
--- a/app/pdb/display-cmds.c
+++ b/app/pdb/display-cmds.c
@@ -29,6 +29,7 @@
#include "core/gimp.h"
#include "core/gimpcontainer.h"
+#include "core/gimpdisplay.h"
#include "core/gimpimage.h"
#include "core/gimpparamspecs.h"
@@ -54,7 +55,7 @@ display_id_is_valid_invoker (GimpProcedure *procedure,
if (success)
{
- valid = (gimp_get_display_by_id (gimp, display_id) != NULL);
+ valid = (gimp_display_get_by_id (gimp, display_id) != NULL);
}
return_vals = gimp_procedure_get_return_values (procedure, success,
@@ -77,7 +78,7 @@ display_new_invoker (GimpProcedure *procedure,
gboolean success = TRUE;
GimpValueArray *return_vals;
GimpImage *image;
- GimpObject *display = NULL;
+ GimpDisplay *display = NULL;
image = g_value_get_object (gimp_value_array_index (args, 0));
@@ -117,7 +118,7 @@ display_delete_invoker (GimpProcedure *procedure,
GError **error)
{
gboolean success = TRUE;
- GimpObject *display;
+ GimpDisplay *display;
display = g_value_get_object (gimp_value_array_index (args, 0));
@@ -140,7 +141,7 @@ display_get_window_handle_invoker (GimpProcedure *procedure,
{
gboolean success = TRUE;
GimpValueArray *return_vals;
- GimpObject *display;
+ GimpDisplay *display;
gint window = 0;
display = g_value_get_object (gimp_value_array_index (args, 0));
diff --git a/app/pdb/gimpprocedure.c b/app/pdb/gimpprocedure.c
index d2de0ffdf5..1bcf01ee6f 100644
--- a/app/pdb/gimpprocedure.c
+++ b/app/pdb/gimpprocedure.c
@@ -30,6 +30,7 @@
#include "core/gimp.h"
#include "core/gimp-memsize.h"
#include "core/gimpchannel.h"
+#include "core/gimpdisplay.h"
#include "core/gimplayer.h"
#include "core/gimpparamspecs.h"
#include "core/gimpprogress.h"
@@ -66,7 +67,7 @@ static void gimp_procedure_real_execute_async (GimpProcedure *proced
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display);
+ GimpDisplay *display);
static void gimp_procedure_free_strings (GimpProcedure *procedure);
static gboolean gimp_procedure_validate_args (GimpProcedure *procedure,
@@ -220,7 +221,7 @@ gimp_procedure_real_execute_async (GimpProcedure *procedure,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display)
+ GimpDisplay *display)
{
GimpValueArray *return_vals;
GError *error = NULL;
@@ -496,7 +497,7 @@ gimp_procedure_execute_async (GimpProcedure *procedure,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display,
+ GimpDisplay *display,
GError **error)
{
g_return_if_fail (GIMP_IS_PROCEDURE (procedure));
@@ -504,7 +505,7 @@ gimp_procedure_execute_async (GimpProcedure *procedure,
g_return_if_fail (GIMP_IS_CONTEXT (context));
g_return_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress));
g_return_if_fail (args != NULL);
- g_return_if_fail (display == NULL || GIMP_IS_OBJECT (display));
+ g_return_if_fail (display == NULL || GIMP_IS_DISPLAY (display));
g_return_if_fail (error == NULL || *error == NULL);
if (gimp_procedure_validate_args (procedure,
diff --git a/app/pdb/gimpprocedure.h b/app/pdb/gimpprocedure.h
index 5990c25c38..d3cdcf42af 100644
--- a/app/pdb/gimpprocedure.h
+++ b/app/pdb/gimpprocedure.h
@@ -87,7 +87,7 @@ struct _GimpProcedureClass
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display);
+ GimpDisplay *display);
};
@@ -150,7 +150,7 @@ void gimp_procedure_execute_async (GimpProcedure *procedure,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display,
+ GimpDisplay *display,
GError **error);
gint gimp_procedure_name_compare (GimpProcedure *proc1,
diff --git a/app/pdb/progress-cmds.c b/app/pdb/progress-cmds.c
index af91745e59..535246a672 100644
--- a/app/pdb/progress-cmds.c
+++ b/app/pdb/progress-cmds.c
@@ -48,7 +48,7 @@ progress_init_invoker (GimpProcedure *procedure,
{
gboolean success = TRUE;
const gchar *message;
- GimpObject *gdisplay;
+ GimpDisplay *gdisplay;
message = g_value_get_string (gimp_value_array_index (args, 0));
gdisplay = g_value_get_object (gimp_value_array_index (args, 1));
diff --git a/app/plug-in/gimpgpparams.c b/app/plug-in/gimpgpparams.c
index cab548e018..4fa6b70e38 100644
--- a/app/plug-in/gimpgpparams.c
+++ b/app/plug-in/gimpgpparams.c
@@ -31,6 +31,7 @@
#include "plug-in-types.h"
#include "core/gimp.h"
+#include "core/gimpdisplay.h"
#include "core/gimpimage.h"
#include "core/gimplayer.h"
#include "core/gimplayermask.h"
diff --git a/app/plug-in/gimpplugin-progress.c b/app/plug-in/gimpplugin-progress.c
index af90092181..df22e1d227 100644
--- a/app/plug-in/gimpplugin-progress.c
+++ b/app/plug-in/gimpplugin-progress.c
@@ -27,6 +27,7 @@
#include "plug-in-types.h"
#include "core/gimp.h"
+#include "core/gimpdisplay.h"
#include "core/gimpparamspecs.h"
#include "core/gimppdbprogress.h"
#include "core/gimpprogress.h"
@@ -91,12 +92,12 @@ gimp_plug_in_progress_detach (GimpProgress *progress)
void
gimp_plug_in_progress_start (GimpPlugIn *plug_in,
const gchar *message,
- GimpObject *display)
+ GimpDisplay *display)
{
GimpPlugInProcFrame *proc_frame;
g_return_if_fail (GIMP_IS_PLUG_IN (plug_in));
- g_return_if_fail (display == NULL || GIMP_IS_OBJECT (display));
+ g_return_if_fail (display == NULL || GIMP_IS_DISPLAY (display));
proc_frame = gimp_plug_in_get_proc_frame (plug_in);
diff --git a/app/plug-in/gimpplugin-progress.h b/app/plug-in/gimpplugin-progress.h
index 56e5285be7..43514fa46d 100644
--- a/app/plug-in/gimpplugin-progress.h
+++ b/app/plug-in/gimpplugin-progress.h
@@ -26,7 +26,7 @@ gint gimp_plug_in_progress_detach (GimpProgress *progress);
void gimp_plug_in_progress_start (GimpPlugIn *plug_in,
const gchar *message,
- GimpObject *display);
+ GimpDisplay *display);
void gimp_plug_in_progress_end (GimpPlugIn *plug_in,
GimpPlugInProcFrame *proc_frame);
void gimp_plug_in_progress_set_text (GimpPlugIn *plug_in,
diff --git a/app/plug-in/gimppluginmanager-call.c b/app/plug-in/gimppluginmanager-call.c
index be645d8bae..e85d94e934 100644
--- a/app/plug-in/gimppluginmanager-call.c
+++ b/app/plug-in/gimppluginmanager-call.c
@@ -37,6 +37,7 @@
#include "config/gimpguiconfig.h"
#include "core/gimp.h"
+#include "core/gimpdisplay.h"
#include "core/gimpprogress.h"
#include "pdb/gimppdbcontext.h"
@@ -151,7 +152,7 @@ gimp_plug_in_manager_call_run (GimpPlugInManager *manager,
GimpPlugInProcedure *procedure,
GimpValueArray *args,
gboolean synchronous,
- GimpObject *display)
+ GimpDisplay *display)
{
GimpValueArray *return_vals = NULL;
GimpPlugIn *plug_in;
@@ -161,7 +162,7 @@ gimp_plug_in_manager_call_run (GimpPlugInManager *manager,
g_return_val_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress), NULL);
g_return_val_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (procedure), NULL);
g_return_val_if_fail (args != NULL, NULL);
- g_return_val_if_fail (display == NULL || GIMP_IS_OBJECT (display), NULL);
+ g_return_val_if_fail (display == NULL || GIMP_IS_DISPLAY (display), NULL);
plug_in = gimp_plug_in_new (manager, context, progress, procedure, NULL);
@@ -194,7 +195,7 @@ gimp_plug_in_manager_call_run (GimpPlugInManager *manager,
return return_vals;
}
- display_id = display ? gimp_get_display_id (manager->gimp, display) : -1;
+ display_id = display ? gimp_display_get_id (display) : -1;
icon_theme_dir = gimp_get_icon_theme_dir (manager->gimp);
diff --git a/app/plug-in/gimppluginmanager-call.h b/app/plug-in/gimppluginmanager-call.h
index c456ab3b74..405452e2a8 100644
--- a/app/plug-in/gimppluginmanager-call.h
+++ b/app/plug-in/gimppluginmanager-call.h
@@ -45,7 +45,7 @@ GimpValueArray * gimp_plug_in_manager_call_run (GimpPlugInManager *man
GimpPlugInProcedure *procedure,
GimpValueArray *args,
gboolean synchronous,
- GimpObject *display);
+ GimpDisplay *display);
/* Run a temp plug-in proc as if it were a procedure database procedure
*/
diff --git a/app/plug-in/gimppluginprocedure.c b/app/plug-in/gimppluginprocedure.c
index 3a006abb80..a88bdbfdd8 100644
--- a/app/plug-in/gimppluginprocedure.c
+++ b/app/plug-in/gimppluginprocedure.c
@@ -82,7 +82,7 @@ static void gimp_plug_in_procedure_execute_async (GimpProcedure *procedur
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display);
+ GimpDisplay *display);
static GFile * gimp_plug_in_procedure_real_get_file (GimpPlugInProcedure *procedure);
@@ -412,7 +412,7 @@ gimp_plug_in_procedure_execute_async (GimpProcedure *procedure,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display)
+ GimpDisplay *display)
{
GimpPlugInProcedure *plug_in_procedure = GIMP_PLUG_IN_PROCEDURE (procedure);
GError *error = NULL;
diff --git a/app/plug-in/gimptemporaryprocedure.c b/app/plug-in/gimptemporaryprocedure.c
index e0a269a500..849ee3962a 100644
--- a/app/plug-in/gimptemporaryprocedure.c
+++ b/app/plug-in/gimptemporaryprocedure.c
@@ -49,7 +49,7 @@ static void gimp_temporary_procedure_execute_async (GimpProcedure *proce
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display);
+ GimpDisplay *display);
static GFile * gimp_temporary_procedure_get_file (GimpPlugInProcedure *procedure);
@@ -109,7 +109,7 @@ gimp_temporary_procedure_execute_async (GimpProcedure *procedure,
GimpContext *context,
GimpProgress *progress,
GimpValueArray *args,
- GimpObject *display)
+ GimpDisplay *display)
{
GimpTemporaryProcedure *temp_procedure = GIMP_TEMPORARY_PROCEDURE (procedure);
GimpValueArray *return_vals;
diff --git a/app/widgets/gimpdockwindow.c b/app/widgets/gimpdockwindow.c
index ac63c96c29..fd3f78da53 100644
--- a/app/widgets/gimpdockwindow.c
+++ b/app/widgets/gimpdockwindow.c
@@ -139,7 +139,7 @@ static GimpAlignmentType
GimpDock *dock);
static gboolean gimp_dock_window_should_add_to_recent (GimpDockWindow *dock_window);
static void gimp_dock_window_display_changed (GimpDockWindow *dock_window,
- GimpObject *display,
+ GimpDisplay *display,
GimpContext *context);
static void gimp_dock_window_image_changed (GimpDockWindow *dock_window,
GimpImage *image,
@@ -155,7 +155,7 @@ static void gimp_dock_window_dock_removed (GimpDockWindo
GimpDock *dock,
GimpDockColumns *dock_columns);
static void gimp_dock_window_factory_display_changed (GimpContext *context,
- GimpObject *display,
+ GimpDisplay *display,
GimpDock *dock);
static void gimp_dock_window_factory_image_changed (GimpContext *context,
GimpImage *image,
@@ -844,7 +844,7 @@ gimp_dock_window_image_flush (GimpImage *image,
{
if (image == gimp_context_get_image (dock_window->p->context))
{
- GimpObject *display = gimp_context_get_display (dock_window->p->context);
+ GimpDisplay *display = gimp_context_get_display (dock_window->p->context);
if (display)
gimp_ui_manager_update (dock_window->p->ui_manager, display);
@@ -919,7 +919,7 @@ gimp_dock_window_dock_removed (GimpDockWindow *dock_window,
static void
gimp_dock_window_factory_display_changed (GimpContext *context,
- GimpObject *display,
+ GimpDisplay *display,
GimpDock *dock)
{
GimpDockWindow *dock_window = GIMP_DOCK_WINDOW (dock);
@@ -942,7 +942,7 @@ gimp_dock_window_factory_image_changed (GimpContext *context,
static void
gimp_dock_window_display_changed (GimpDockWindow *dock_window,
- GimpObject *display,
+ GimpDisplay *display,
GimpContext *context)
{
/* make sure auto-follow-active works both ways */
@@ -991,9 +991,9 @@ gimp_dock_window_image_changed (GimpDockWindow *dock_window,
}
else if (image != NULL && ! gimp_container_is_empty (display_container))
{
- GimpObject *display;
- GimpImage *display_image;
- gboolean find_display = TRUE;
+ GimpDisplay *display;
+ GimpImage *display_image;
+ gboolean find_display = TRUE;
display = gimp_context_get_display (context);
@@ -1018,7 +1018,7 @@ gimp_dock_window_image_changed (GimpDockWindow *dock_window,
list;
list = g_list_next (list))
{
- display = GIMP_OBJECT (list->data);
+ display = list->data;
g_object_get (display, "image", &display_image, NULL);
diff --git a/app/widgets/gimpdrawabletreeview.c b/app/widgets/gimpdrawabletreeview.c
index 5b17d7953a..7b9919db9b 100644
--- a/app/widgets/gimpdrawabletreeview.c
+++ b/app/widgets/gimpdrawabletreeview.c
@@ -183,9 +183,9 @@ gimp_drawable_tree_view_select_item (GimpContainerView *view,
{
Gimp *gimp = image->gimp;
GimpContext *context = gimp_get_user_context (gimp);
- GObject *display = gimp_context_get_display (context);
+ GimpDisplay *display = gimp_context_get_display (context);
- gimp_message_literal (gimp, display, GIMP_MESSAGE_WARNING,
+ gimp_message_literal (gimp, G_OBJECT (display), GIMP_MESSAGE_WARNING,
_("Cannot select item while a floating "
"selection is active."));
}
diff --git a/libgimp/gimpgpparams-body.c b/libgimp/gimpgpparams-body.c
index a60bdc1eb9..0a2991bad4 100644
--- a/libgimp/gimpgpparams-body.c
+++ b/libgimp/gimpgpparams-body.c
@@ -341,9 +341,9 @@ _gimp_param_spec_to_gp_param_def (GParamSpec *pspec,
GType value_type = G_PARAM_SPEC_VALUE_TYPE (pspec);
const gchar *type_name = NULL;
- if (! strcmp (g_type_name (value_type), "GimpDisplay"))
+ if (g_type_is_a (value_type, GIMP_TYPE_DISPLAY))
{
- /* strcmp() because GimpDisplay is not visible from app/plug-in */
+ /* g_type_is_a() because the core has a GimpDisplay subclasses */
type_name = "GimpParamDisplay";
}
else if (value_type == GIMP_TYPE_IMAGE)
@@ -416,14 +416,14 @@ get_item_by_id (gpointer gimp,
#endif
}
-static GObject *
+static GimpDisplay *
get_display_by_id (gpointer gimp,
gint id)
{
#ifdef LIBGIMP_COMPILATION
- return (GObject *) gimp_display_get_by_id (id);
+ return gimp_display_get_by_id (id);
#else
- return (GObject *) gimp_get_display_by_id (gimp, id);
+ return gimp_display_get_by_id (gimp, id);
#endif
}
@@ -835,25 +835,11 @@ _gimp_value_to_gp_param (const GValue *value,
}
else if (GIMP_VALUE_HOLDS_DISPLAY (value))
{
- GObject *display = g_value_get_object (value);
- gint id = -1;
-
-#if 0
- if (full_copy)
- {
- g_free (param->type_name);
- param->type_name = "GObject";
- }
- else
- param->type_name = (gchar *) "GObject";
-#endif
+ GimpDisplay *display = g_value_get_object (value);
param->param_type = GP_PARAM_TYPE_INT;
- if (display)
- g_object_get (display, "id", &id, NULL);
-
- param->data.d_int = id;
+ param->data.d_int = display ? gimp_display_get_id (display) : -1;
}
else if (G_VALUE_HOLDS_PARAM (value))
{
diff --git a/libgimp/gimpparamspecs.c b/libgimp/gimpparamspecs.c
index bcfd76f662..3bc3e69019 100644
--- a/libgimp/gimpparamspecs.c
+++ b/libgimp/gimpparamspecs.c
@@ -222,10 +222,10 @@ gimp_param_item_validate (GParamSpec *pspec,
**/
GParamSpec *
gimp_param_spec_item (const gchar *name,
- const gchar *nick,
- const gchar *blurb,
- gboolean none_ok,
- GParamFlags flags)
+ const gchar *nick,
+ const gchar *blurb,
+ gboolean none_ok,
+ GParamFlags flags)
{
GimpParamSpecItem *ispec;
@@ -894,9 +894,9 @@ gimp_param_display_class_init (GParamSpecClass *klass)
static void
gimp_param_display_init (GParamSpec *pspec)
{
- GimpParamSpecDisplay *ispec = GIMP_PARAM_SPEC_DISPLAY (pspec);
+ GimpParamSpecDisplay *dspec = GIMP_PARAM_SPEC_DISPLAY (pspec);
- ispec->none_ok = FALSE;
+ dspec->none_ok = FALSE;
}
static gboolean
@@ -944,12 +944,12 @@ gimp_param_spec_display (const gchar *name,
gboolean none_ok,
GParamFlags flags)
{
- GimpParamSpecDisplay *ispec;
+ GimpParamSpecDisplay *dspec;
- ispec = g_param_spec_internal (GIMP_TYPE_PARAM_DISPLAY,
+ dspec = g_param_spec_internal (GIMP_TYPE_PARAM_DISPLAY,
name, nick, blurb, flags);
- ispec->none_ok = none_ok ? TRUE : FALSE;
+ dspec->none_ok = none_ok ? TRUE : FALSE;
- return G_PARAM_SPEC (ispec);
+ return G_PARAM_SPEC (dspec);
}
diff --git a/pdb/groups/display.pdb b/pdb/groups/display.pdb
index 932335c001..4ca4042ec1 100644
--- a/pdb/groups/display.pdb
+++ b/pdb/groups/display.pdb
@@ -39,7 +39,7 @@ HELP
%invoke = (
code => <<'CODE'
{
- valid = (gimp_get_display_by_id (gimp, display_id) != NULL);
+ valid = (gimp_display_get_by_id (gimp, display_id) != NULL);
}
CODE
);
@@ -210,7 +210,8 @@ CODE
}
-@headers = qw("core/gimp.h");
+@headers = qw("core/gimp.h"
+ "core/gimpdisplay.h");
@procs = qw(display_id_is_valid
display_new
diff --git a/pdb/pdb.pl b/pdb/pdb.pl
index de0affbf4e..4400980d90 100644
--- a/pdb/pdb.pl
+++ b/pdb/pdb.pl
@@ -152,8 +152,8 @@ package Gimp::CodeGen::pdb;
gtype => 'GIMP_TYPE_DISPLAY',
type => 'GimpDisplay *',
const_type => 'GimpDisplay *',
- app_type => 'GimpObject *',
- app_const_type => 'GimpObject *',
+ app_type => 'GimpDisplay *',
+ app_const_type => 'GimpDisplay *',
init_value => 'NULL',
out_annotate => '(transfer none)',
get_value_func => '$var = g_value_get_object ($value)',