app: Add GimpContext property to GimpDockWindow

The GimpDockWindow will need to have a GimpContext so add such a
property but call it "gimp-context" for now to avoid clashing with
"context" of GimpDock.
This commit is contained in:
Martin Nordholts 2009-09-10 21:34:49 +02:00
parent 15497c1d68
commit 81d961423a
3 changed files with 89 additions and 1 deletions

View File

@ -27,17 +27,36 @@
#include "widgets-types.h"
#include "core/gimpcontext.h"
#include "gimpdockwindow.h"
#include "gimpwindow.h"
#include "gimp-intl.h"
enum
{
PROP_0,
PROP_CONTEXT,
};
struct _GimpDockWindowPrivate
{
gint dummy;
GimpContext *context;
};
static void gimp_dock_window_dispose (GObject *object);
static void gimp_dock_window_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec);
static void gimp_dock_window_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec);
G_DEFINE_TYPE (GimpDockWindow, gimp_dock_window, GIMP_TYPE_WINDOW)
@ -46,6 +65,18 @@ G_DEFINE_TYPE (GimpDockWindow, gimp_dock_window, GIMP_TYPE_WINDOW)
static void
gimp_dock_window_class_init (GimpDockWindowClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = gimp_dock_window_dispose;
object_class->set_property = gimp_dock_window_set_property;
object_class->get_property = gimp_dock_window_get_property;
g_object_class_install_property (object_class, PROP_CONTEXT,
g_param_spec_object ("gimp-context", NULL, NULL,
GIMP_TYPE_CONTEXT,
GIMP_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
g_type_class_add_private (klass, sizeof (GimpDockWindowPrivate));
}
@ -55,4 +86,59 @@ gimp_dock_window_init (GimpDockWindow *dock_window)
dock_window->p = G_TYPE_INSTANCE_GET_PRIVATE (dock_window,
GIMP_TYPE_DOCK_WINDOW,
GimpDockWindowPrivate);
dock_window->p->context = NULL;
}
static void
gimp_dock_window_dispose (GObject *object)
{
GimpDockWindow *dock_window = GIMP_DOCK_WINDOW (object);
if (dock_window->p->context)
{
g_object_unref (dock_window->p->context);
dock_window->p->context = NULL;
}
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
gimp_dock_window_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
GimpDockWindow *dock_window = GIMP_DOCK_WINDOW (object);
switch (property_id)
{
case PROP_CONTEXT:
dock_window->p->context = g_value_dup_object (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gimp_dock_window_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
{
GimpDockWindow *dock_window = GIMP_DOCK_WINDOW (object);
switch (property_id)
{
case PROP_CONTEXT:
g_value_set_object (value, dock_window->p->context);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}

View File

@ -385,6 +385,7 @@ gimp_menu_dock_new (GimpDialogFactory *dialog_factory,
"Dock Context", NULL);
menu_dock = g_object_new (GIMP_TYPE_MENU_DOCK,
"gimp-context", context,
"context", context,
"dialog-factory", dialog_factory,
NULL);

View File

@ -625,6 +625,7 @@ gimp_toolbox_new (GimpDialogFactory *dialog_factory,
toolbox = g_object_new (GIMP_TYPE_TOOLBOX,
"title", _("Toolbox"),
"gimp-context", context,
"context", context,
"dialog-factory", dialog_factory,
NULL);