summaryrefslogtreecommitdiff
path: root/gdk/gdkvisual.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2010-12-10 09:06:52 -0500
committerMatthias Clasen <mclasen@redhat.com>2010-12-21 12:06:56 -0500
commitc6a5074295c65b59bb88ae7a2ade37ae2c46d611 (patch)
treed4fae75781cb10da24cb3c1b71e4f9e1e21dcf47 /gdk/gdkvisual.c
parent23a2b4221683765d5ff8f5c0dea33ee02dc45f66 (diff)
downloadgtk+-c6a5074295c65b59bb88ae7a2ade37ae2c46d611.tar.gz
Move GdkVisual parallel-implementable
It turned out no vfuncs were necessary. I've decided to move the screen member up to GdkVisual, since it is the same in all backends. The X11 backend subclasses now, to add the X members that it needs to keep track of. GdkVisual and GdkVisualClass are hidden now.
Diffstat (limited to 'gdk/gdkvisual.c')
-rw-r--r--gdk/gdkvisual.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/gdk/gdkvisual.c b/gdk/gdkvisual.c
index 15f681d3c6..b0201b2599 100644
--- a/gdk/gdkvisual.c
+++ b/gdk/gdkvisual.c
@@ -25,7 +25,6 @@
#include "gdkinternals.h"
#include "gdkvisual.h"
-
#include "gdkscreen.h"
@@ -55,6 +54,26 @@
* then %GDK_VISUAL_STATIC_GRAY.
*/
+G_DEFINE_TYPE (GdkVisual, gdk_visual, G_TYPE_OBJECT)
+
+static void
+gdk_visual_init (GdkVisual *visual)
+{
+}
+
+static void
+gdk_visual_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (gdk_visual_parent_class)->finalize (object);
+}
+
+static void
+gdk_visual_class_init (GdkVisualClass *visual_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (visual_class);
+
+ object_class->finalize = gdk_visual_finalize;
+}
/**
* gdk_list_visuals:
@@ -428,3 +447,21 @@ gdk_visual_get_blue_pixel_details (GdkVisual *visual,
if (precision)
*precision = visual->blue_prec;
}
+
+/**
+ * gdk_visual_get_screen:
+ * @visual: a #GdkVisual
+ *
+ * Gets the screen to which this visual belongs
+ *
+ * Return value: (transfer none): the screen to which this visual belongs.
+ *
+ * Since: 2.2
+ */
+GdkScreen *
+gdk_visual_get_screen (GdkVisual *visual)
+{
+ g_return_val_if_fail (GDK_IS_VISUAL (visual), NULL);
+
+ return visual->screen;
+}