summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorAlex Larsson <alexl@redhat.com>2001-06-30 04:30:32 +0000
committerAlexander Larsson <alexl@src.gnome.org>2001-06-30 04:30:32 +0000
commitba023112348763c904aa7c2a60e02536a053af91 (patch)
tree7268c70085f50a21680bef88051d649f232a3ba2 /gdk
parent43696e841d807d9dba7b50314517069634d4cba2 (diff)
downloadgdk-pixbuf-ba023112348763c904aa7c2a60e02536a053af91.tar.gz
Convert GdkDevice to a GObject.
2001-06-30 Alex Larsson <alexl@redhat.com> * gdk/linux-fb/gdkinput-none.c: * gdk/linux-fb/gdkinput.c: * gdk/linux-fb/gdkinputprivate.h: Convert GdkDevice to a GObject. * linux-fb/gdkprivate-fb.h: * linux-fb/gdkvisual-fb.c: Convert GdkVisual to a GObject.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/linux-fb/gdkinput-none.c1
-rw-r--r--gdk/linux-fb/gdkinput.c69
-rw-r--r--gdk/linux-fb/gdkinputprivate.h6
-rw-r--r--gdk/linux-fb/gdkprivate-fb.h8
-rw-r--r--gdk/linux-fb/gdkvisual-fb.c54
5 files changed, 110 insertions, 28 deletions
diff --git a/gdk/linux-fb/gdkinput-none.c b/gdk/linux-fb/gdkinput-none.c
index 4c0575bc4..02ffc164b 100644
--- a/gdk/linux-fb/gdkinput-none.c
+++ b/gdk/linux-fb/gdkinput-none.c
@@ -38,6 +38,7 @@ static void gdk_input_none_get_pointer (GdkWindow *window,
void
gdk_input_init (void)
{
+ _gdk_init_input_core ();
gdk_input_vtable.set_mode = NULL;
gdk_input_vtable.set_axes = NULL;
gdk_input_vtable.set_key = NULL;
diff --git a/gdk/linux-fb/gdkinput.c b/gdk/linux-fb/gdkinput.c
index a3444c33b..c4308f6ba 100644
--- a/gdk/linux-fb/gdkinput.c
+++ b/gdk/linux-fb/gdkinput.c
@@ -37,19 +37,7 @@ static const GdkDeviceAxis gdk_input_core_axes[] = {
{ GDK_AXIS_Y, 0, 0 }
};
-static GdkDevice gdk_input_core_info =
-{
- "Core Pointer",
- GDK_SOURCE_MOUSE,
- GDK_MODE_SCREEN,
- TRUE,
- 2,
- (GdkDeviceAxis *)gdk_input_core_axes,
- 0,
- NULL
-};
-
-GdkDevice *gdk_core_pointer = (GdkDevice *)&gdk_input_core_info;
+GdkDevice *gdk_core_pointer = NULL;
/* Global variables */
@@ -59,6 +47,61 @@ gint gdk_input_ignore_core;
GList *gdk_input_windows;
GList *gdk_input_devices;
+void
+_gdk_init_input_core (void)
+{
+ gdk_core_pointer = g_object_new (GDK_TYPE_DEVICE, NULL);
+
+ gdk_core_pointer->name = "Core Pointer";
+ gdk_core_pointer->source = GDK_SOURCE_MOUSE;
+ gdk_core_pointer->mode = GDK_MODE_SCREEN;
+ gdk_core_pointer->has_cursor = TRUE;
+ gdk_core_pointer->num_axes = 2;
+ gdk_core_pointer->axes = gdk_input_core_axes;
+ gdk_core_pointer->num_keys = 0;
+ gdk_core_pointer->keys = NULL;
+}
+
+static void
+gdk_device_finalize (GObject *object)
+{
+ g_error ("A GdkDevice object was finalized. This should not happen");
+}
+
+static void
+gdk_device_class_init (GObjectClass *class)
+{
+ class->finalize = gdk_device_finalize;
+}
+
+GType
+gdk_device_get_type (void)
+{
+ static GType object_type = 0;
+
+ if (!object_type)
+ {
+ static const GTypeInfo object_info =
+ {
+ sizeof (GdkDeviceClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_device_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GdkDevicePrivate),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL,
+ };
+
+ object_type = g_type_register_static (G_TYPE_OBJECT,
+ "GdkDevice",
+ &object_info, 0);
+ }
+
+ return object_type;
+}
+
GList *
gdk_devices_list (void)
{
diff --git a/gdk/linux-fb/gdkinputprivate.h b/gdk/linux-fb/gdkinputprivate.h
index 46ca8b33c..76004cd5c 100644
--- a/gdk/linux-fb/gdkinputprivate.h
+++ b/gdk/linux-fb/gdkinputprivate.h
@@ -98,6 +98,11 @@ struct _GdkDevicePrivate {
GdkDevice info;
};
+struct _GdkDeviceClass
+{
+ GObjectClass parent_class;
+};
+
struct _GdkInputWindow
{
/* gdk window */
@@ -141,6 +146,7 @@ gint gdk_input_enable_window (GdkWindow *window,
GdkDevicePrivate *gdkdev);
gint gdk_input_disable_window (GdkWindow *window,
GdkDevicePrivate *gdkdev);
+void _gdk_init_input_core (void);
GdkDevicePrivate *gdk_input_find_device (guint32 id);
GdkInputWindow *gdk_input_window_find (GdkWindow *window);
diff --git a/gdk/linux-fb/gdkprivate-fb.h b/gdk/linux-fb/gdkprivate-fb.h
index c7b12f611..5e8d32f40 100644
--- a/gdk/linux-fb/gdkprivate-fb.h
+++ b/gdk/linux-fb/gdkprivate-fb.h
@@ -155,9 +155,11 @@ struct _GdkFBDisplay
int manager_blocked;
};
-typedef struct {
- GdkVisual base;
-} GdkVisualPrivateFB;
+struct _GdkVisualClass
+{
+ GObjectClass parent_class;
+};
+
typedef struct {
GHashTable *hash;
diff --git a/gdk/linux-fb/gdkvisual-fb.c b/gdk/linux-fb/gdkvisual-fb.c
index d593d21f5..6a3354127 100644
--- a/gdk/linux-fb/gdkvisual-fb.c
+++ b/gdk/linux-fb/gdkvisual-fb.c
@@ -31,10 +31,51 @@
static GdkVisual *system_visual = NULL;
+static void
+gdk_visual_finalize (GObject *object)
+{
+ g_error ("A GdkVisual object was finalized. This should not happen");
+}
+
+static void
+gdk_visual_class_init (GObjectClass *class)
+{
+ class->finalize = gdk_visual_finalize;
+}
+
+
+GType
+gdk_visual_get_type (void)
+{
+ static GType object_type = 0;
+
+ if (!object_type)
+ {
+ static const GTypeInfo object_info =
+ {
+ sizeof (GdkVisualClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_visual_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GdkVisual),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL,
+ };
+
+ object_type = g_type_register_static (G_TYPE_OBJECT,
+ "GdkVisual",
+ &object_info, 0);
+ }
+
+ return object_type;
+}
+
void
gdk_visual_init (void)
{
- system_visual = g_new0 (GdkVisual, 1);
+ system_visual = g_object_new (GDK_TYPE_VISUAL, NULL);
system_visual->depth = system_visual->bits_per_rgb = gdk_display->modeinfo.bits_per_pixel;
system_visual->byte_order = GDK_LSB_FIRST;
@@ -101,17 +142,6 @@ gdk_visual_init (void)
}
}
-GdkVisual*
-gdk_visual_ref (GdkVisual *visual)
-{
- return visual;
-}
-
-void
-gdk_visual_unref (GdkVisual *visual)
-{
-}
-
gint
gdk_visual_get_best_depth (void)
{