GdkGC finished; remaining tasks:
- GdkFont, when Pango is merged - GtkStyle
This commit is contained in:
@@ -184,13 +184,10 @@ gdk_draw_point (GdkDrawable *drawable,
|
||||
gint x,
|
||||
gint y)
|
||||
{
|
||||
GdkGCPrivate *gc_private;
|
||||
GdkPoint point;
|
||||
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (gc != NULL);
|
||||
|
||||
gc_private = (GdkGCPrivate*) gc;
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
point.x = x;
|
||||
point.y = y;
|
||||
@@ -206,13 +203,10 @@ gdk_draw_line (GdkDrawable *drawable,
|
||||
gint x2,
|
||||
gint y2)
|
||||
{
|
||||
GdkGCPrivate *gc_private;
|
||||
GdkSegment segment;
|
||||
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (gc != NULL);
|
||||
|
||||
gc_private = (GdkGCPrivate*) gc;
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
segment.x1 = x1;
|
||||
segment.y1 = y1;
|
||||
@@ -231,7 +225,7 @@ gdk_draw_rectangle (GdkDrawable *drawable,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
if (width < 0 || height < 0)
|
||||
{
|
||||
@@ -262,7 +256,7 @@ gdk_draw_arc (GdkDrawable *drawable,
|
||||
gint angle2)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
if (width < 0 || height < 0)
|
||||
{
|
||||
@@ -289,7 +283,7 @@ gdk_draw_polygon (GdkDrawable *drawable,
|
||||
gint npoints)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_polygon (drawable, gc, filled,
|
||||
points, npoints);
|
||||
@@ -329,7 +323,7 @@ gdk_draw_text (GdkDrawable *drawable,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (font != NULL);
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (text != NULL);
|
||||
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_text (drawable, font, gc, x, y, text, text_length);
|
||||
@@ -346,7 +340,7 @@ gdk_draw_text_wc (GdkDrawable *drawable,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (font != NULL);
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (text != NULL);
|
||||
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_text_wc (drawable, font, gc, x, y, text, text_length);
|
||||
@@ -365,7 +359,7 @@ gdk_draw_drawable (GdkDrawable *drawable,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (src != NULL);
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
if (width < 0 || height < 0)
|
||||
{
|
||||
@@ -398,7 +392,7 @@ gdk_draw_image (GdkDrawable *drawable,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (image != NULL);
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
if (width == -1)
|
||||
width = image->width;
|
||||
@@ -417,7 +411,7 @@ gdk_draw_points (GdkDrawable *drawable,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail ((points != NULL) && (npoints > 0));
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (npoints >= 0);
|
||||
|
||||
if (npoints == 0)
|
||||
@@ -438,7 +432,7 @@ gdk_draw_segments (GdkDrawable *drawable,
|
||||
return;
|
||||
|
||||
g_return_if_fail (segs != NULL);
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (nsegs >= 0);
|
||||
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_segments (drawable, gc, segs, nsegs);
|
||||
@@ -453,7 +447,7 @@ gdk_draw_lines (GdkDrawable *drawable,
|
||||
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
g_return_if_fail (points != NULL);
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (npoints >= 0);
|
||||
|
||||
if (npoints == 0)
|
||||
|
||||
140
gdk/gdkgc.c
140
gdk/gdkgc.c
@@ -29,21 +29,62 @@
|
||||
#include "gdkgc.h"
|
||||
#include "gdkprivate.h"
|
||||
|
||||
GdkGC*
|
||||
gdk_gc_alloc (void)
|
||||
static void gdk_gc_init (GdkGC *gc);
|
||||
static void gdk_gc_class_init (GdkGCClass *klass);
|
||||
static void gdk_gc_finalize (GObject *object);
|
||||
|
||||
static gpointer parent_class = NULL;
|
||||
|
||||
GType
|
||||
gdk_gc_get_type (void)
|
||||
{
|
||||
GdkGCPrivate *private;
|
||||
static GType object_type = 0;
|
||||
|
||||
private = g_new (GdkGCPrivate, 1);
|
||||
private->ref_count = 1;
|
||||
private->klass = NULL;
|
||||
private->klass_data = NULL;
|
||||
private->clip_x_origin = 0;
|
||||
private->clip_y_origin = 0;
|
||||
private->ts_x_origin = 0;
|
||||
private->ts_y_origin = 0;
|
||||
if (!object_type)
|
||||
{
|
||||
static const GTypeInfo object_info =
|
||||
{
|
||||
sizeof (GdkGCClass),
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gdk_gc_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GdkGC),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gdk_gc_init,
|
||||
};
|
||||
|
||||
object_type = g_type_register_static (G_TYPE_OBJECT,
|
||||
"GdkGC",
|
||||
&object_info);
|
||||
}
|
||||
|
||||
return object_type;
|
||||
}
|
||||
|
||||
return (GdkGC *)private;
|
||||
static void
|
||||
gdk_gc_init (GdkGC *gc)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_gc_class_init (GdkGCClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek (G_TYPE_OBJECT);
|
||||
|
||||
object_class->finalize = gdk_gc_finalize;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_gc_finalize (GObject *object)
|
||||
{
|
||||
GdkGC *gc = GDK_GC (object);
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
GdkGC*
|
||||
@@ -63,7 +104,6 @@ gdk_gc_new_with_values (GdkDrawable *drawable,
|
||||
GdkGCValuesMask values_mask)
|
||||
{
|
||||
GdkGC *gc;
|
||||
GdkGCPrivate *private;
|
||||
|
||||
g_return_val_if_fail (drawable != NULL, NULL);
|
||||
|
||||
@@ -73,16 +113,14 @@ gdk_gc_new_with_values (GdkDrawable *drawable,
|
||||
gc = GDK_DRAWABLE_GET_CLASS (drawable)->create_gc (drawable,
|
||||
values,
|
||||
values_mask);
|
||||
private = (GdkGCPrivate *)gc;
|
||||
|
||||
if (values_mask & GDK_GC_CLIP_X_ORIGIN)
|
||||
private->clip_x_origin = values->clip_x_origin;
|
||||
gc->clip_x_origin = values->clip_x_origin;
|
||||
if (values_mask & GDK_GC_CLIP_Y_ORIGIN)
|
||||
private->clip_y_origin = values->clip_y_origin;
|
||||
gc->clip_y_origin = values->clip_y_origin;
|
||||
if (values_mask & GDK_GC_TS_X_ORIGIN)
|
||||
private->ts_x_origin = values->ts_x_origin;
|
||||
gc->ts_x_origin = values->ts_x_origin;
|
||||
if (values_mask & GDK_GC_TS_Y_ORIGIN)
|
||||
private->ts_y_origin = values->ts_y_origin;
|
||||
gc->ts_y_origin = values->ts_y_origin;
|
||||
|
||||
return gc;
|
||||
}
|
||||
@@ -90,10 +128,7 @@ gdk_gc_new_with_values (GdkDrawable *drawable,
|
||||
GdkGC *
|
||||
gdk_gc_ref (GdkGC *gc)
|
||||
{
|
||||
GdkGCPrivate *private = (GdkGCPrivate*) gc;
|
||||
|
||||
g_return_val_if_fail (gc != NULL, NULL);
|
||||
private->ref_count += 1;
|
||||
g_object_ref (G_OBJECT (gc));
|
||||
|
||||
return gc;
|
||||
}
|
||||
@@ -101,28 +136,17 @@ gdk_gc_ref (GdkGC *gc)
|
||||
void
|
||||
gdk_gc_unref (GdkGC *gc)
|
||||
{
|
||||
GdkGCPrivate *private = (GdkGCPrivate*) gc;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (private->ref_count > 0);
|
||||
|
||||
private->ref_count--;
|
||||
|
||||
if (private->ref_count == 0)
|
||||
{
|
||||
private->klass->destroy (gc);
|
||||
g_free (private);
|
||||
}
|
||||
g_object_unref (G_OBJECT (gc));
|
||||
}
|
||||
|
||||
void
|
||||
gdk_gc_get_values (GdkGC *gc,
|
||||
GdkGCValues *values)
|
||||
{
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (values != NULL);
|
||||
|
||||
((GdkGCPrivate *)gc)->klass->get_values (gc, values);
|
||||
GDK_GC_GET_CLASS (gc)->get_values (gc, values);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -130,21 +154,19 @@ gdk_gc_set_values (GdkGC *gc,
|
||||
GdkGCValues *values,
|
||||
GdkGCValuesMask values_mask)
|
||||
{
|
||||
GdkGCPrivate *private = (GdkGCPrivate *)gc;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (values != NULL);
|
||||
|
||||
if (values_mask & GDK_GC_CLIP_X_ORIGIN)
|
||||
private->clip_x_origin = values->clip_x_origin;
|
||||
gc->clip_x_origin = values->clip_x_origin;
|
||||
if (values_mask & GDK_GC_CLIP_Y_ORIGIN)
|
||||
private->clip_y_origin = values->clip_y_origin;
|
||||
gc->clip_y_origin = values->clip_y_origin;
|
||||
if (values_mask & GDK_GC_TS_X_ORIGIN)
|
||||
private->ts_x_origin = values->ts_x_origin;
|
||||
gc->ts_x_origin = values->ts_x_origin;
|
||||
if (values_mask & GDK_GC_TS_Y_ORIGIN)
|
||||
private->ts_y_origin = values->ts_y_origin;
|
||||
gc->ts_y_origin = values->ts_y_origin;
|
||||
|
||||
private->klass->set_values (gc, values, values_mask);
|
||||
GDK_GC_GET_CLASS (gc)->set_values (gc, values, values_mask);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -153,7 +175,7 @@ gdk_gc_set_foreground (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (color != NULL);
|
||||
|
||||
values.foreground = *color;
|
||||
@@ -166,7 +188,7 @@ gdk_gc_set_background (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (color != NULL);
|
||||
|
||||
values.background = *color;
|
||||
@@ -179,7 +201,7 @@ gdk_gc_set_font (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (font != NULL);
|
||||
|
||||
values.font = font;
|
||||
@@ -192,7 +214,7 @@ gdk_gc_set_function (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.function = function;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_FUNCTION);
|
||||
@@ -204,7 +226,7 @@ gdk_gc_set_fill (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.fill = fill;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_FILL);
|
||||
@@ -216,7 +238,7 @@ gdk_gc_set_tile (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.tile = tile;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_TILE);
|
||||
@@ -228,7 +250,7 @@ gdk_gc_set_stipple (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.stipple = stipple;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_STIPPLE);
|
||||
@@ -241,7 +263,7 @@ gdk_gc_set_ts_origin (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.ts_x_origin = x;
|
||||
values.ts_y_origin = y;
|
||||
@@ -257,7 +279,7 @@ gdk_gc_set_clip_origin (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.clip_x_origin = x;
|
||||
values.clip_y_origin = y;
|
||||
@@ -272,7 +294,7 @@ gdk_gc_set_clip_mask (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.clip_mask = mask;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_CLIP_MASK);
|
||||
@@ -285,7 +307,7 @@ gdk_gc_set_subwindow (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.subwindow_mode = mode;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_SUBWINDOW);
|
||||
@@ -297,7 +319,7 @@ gdk_gc_set_exposures (GdkGC *gc,
|
||||
{
|
||||
GdkGCValues values;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
values.graphics_exposures = exposures;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_EXPOSURES);
|
||||
@@ -330,8 +352,8 @@ gdk_gc_set_dashes (GdkGC *gc,
|
||||
gint8 dash_list[],
|
||||
gint n)
|
||||
{
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (dash_list != NULL);
|
||||
|
||||
((GdkGCPrivate *)gc)->klass->set_dashes (gc, dash_offset, dash_list, n);
|
||||
GDK_GC_GET_CLASS (gc)->set_dashes (gc, dash_offset, dash_list, n);
|
||||
}
|
||||
|
||||
22
gdk/gdkgc.h
22
gdk/gdkgc.h
@@ -150,14 +150,27 @@ struct _GdkGCValues
|
||||
GdkJoinStyle join_style;
|
||||
};
|
||||
|
||||
#define GDK_TYPE_GC (gdk_gc_get_type ())
|
||||
#define GDK_GC(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GC, GdkGC))
|
||||
#define GDK_GC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GC, GdkGCClass))
|
||||
#define GDK_IS_GC(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GC))
|
||||
#define GDK_IS_GC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GC))
|
||||
#define GDK_GC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GC, GdkGCClass))
|
||||
|
||||
struct _GdkGC
|
||||
{
|
||||
gint dummy_var;
|
||||
GObject parent_instance;
|
||||
|
||||
gint clip_x_origin;
|
||||
gint clip_y_origin;
|
||||
gint ts_x_origin;
|
||||
gint ts_y_origin;
|
||||
};
|
||||
|
||||
struct _GdkGCClass
|
||||
{
|
||||
void (*destroy) (GdkGC *gc);
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (*get_values) (GdkGC *gc,
|
||||
GdkGCValues *values);
|
||||
void (*set_values) (GdkGC *gc,
|
||||
@@ -170,14 +183,11 @@ struct _GdkGCClass
|
||||
};
|
||||
|
||||
|
||||
GType gdk_gc_get_type (void);
|
||||
GdkGC *gdk_gc_new (GdkDrawable *drawable);
|
||||
GdkGC *gdk_gc_alloc (void);
|
||||
|
||||
GdkGC *gdk_gc_new_with_values (GdkDrawable *drawable,
|
||||
GdkGCValues *values,
|
||||
GdkGCValuesMask values_mask);
|
||||
void gdk_gc_init (GdkGC *gc,
|
||||
GdkGCClass *klass);
|
||||
GdkGC *gdk_gc_ref (GdkGC *gc);
|
||||
void gdk_gc_unref (GdkGC *gc);
|
||||
void gdk_gc_get_values (GdkGC *gc,
|
||||
|
||||
@@ -51,7 +51,6 @@ extern "C" {
|
||||
#define gdk_pixmap_lookup(xid) ((GdkPixmap*) gdk_xid_table_lookup (xid))
|
||||
#define gdk_font_lookup(xid) ((GdkFont*) gdk_xid_table_lookup (xid))
|
||||
|
||||
typedef struct _GdkGCPrivate GdkGCPrivate;
|
||||
typedef struct _GdkColorInfo GdkColorInfo;
|
||||
typedef struct _GdkFontPrivate GdkFontPrivate;
|
||||
typedef struct _GdkEventFilter GdkEventFilter;
|
||||
@@ -63,18 +62,6 @@ struct _GdkFontPrivate
|
||||
guint ref_count;
|
||||
};
|
||||
|
||||
struct _GdkGCPrivate
|
||||
{
|
||||
guint ref_count;
|
||||
GdkGCClass *klass;
|
||||
gpointer klass_data;
|
||||
|
||||
gint clip_x_origin;
|
||||
gint clip_y_origin;
|
||||
gint ts_x_origin;
|
||||
gint ts_y_origin;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
GDK_COLOR_WRITEABLE = 1 << 0
|
||||
} GdkColorInfoFlags;
|
||||
|
||||
@@ -823,10 +823,10 @@ gdk_window_get_offsets (GdkWindow *window,
|
||||
|
||||
#define OFFSET_GC(gc) \
|
||||
gint x_offset, y_offset; \
|
||||
gint old_clip_x = ((GdkGCPrivate *)gc)->clip_x_origin; \
|
||||
gint old_clip_y = ((GdkGCPrivate *)gc)->clip_y_origin; \
|
||||
gint old_ts_x = ((GdkGCPrivate *)gc)->ts_x_origin; \
|
||||
gint old_ts_y = ((GdkGCPrivate *)gc)->ts_y_origin; \
|
||||
gint old_clip_x = (gc)->clip_x_origin; \
|
||||
gint old_clip_y = (gc)->clip_y_origin; \
|
||||
gint old_ts_x = (gc)->ts_x_origin; \
|
||||
gint old_ts_y = (gc)->ts_y_origin; \
|
||||
gdk_window_get_offsets (drawable, &x_offset, &y_offset); \
|
||||
if (x_offset != 0 || y_offset != 0) \
|
||||
{ \
|
||||
|
||||
@@ -24,6 +24,36 @@
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* gcc -ansi -pedantic on GNU/Linux causes warnings and errors
|
||||
* unless this is defined:
|
||||
* warning: #warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE"
|
||||
*/
|
||||
#ifndef _XOPEN_SOURCE
|
||||
# define _XOPEN_SOURCE 1
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#if defined (HAVE_IPC_H) && defined (HAVE_SHM_H) && defined (HAVE_XSHM_H)
|
||||
#define USE_SHM
|
||||
#endif
|
||||
|
||||
#ifdef USE_SHM
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
#endif /* USE_SHM */
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
|
||||
#ifdef USE_SHM
|
||||
#include <X11/extensions/XShm.h>
|
||||
#endif /* USE_SHM */
|
||||
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "gdkdrawable-x11.h"
|
||||
#include "gdkpixmap-x11.h"
|
||||
|
||||
@@ -11,8 +11,7 @@ static void gdk_x11_gc_values_to_xvalues (GdkGCValues *values,
|
||||
GdkGCValuesMask mask,
|
||||
XGCValues *xvalues,
|
||||
unsigned long *xvalues_mask);
|
||||
|
||||
static void gdk_x11_gc_destroy (GdkGC *gc);
|
||||
|
||||
static void gdk_x11_gc_get_values (GdkGC *gc,
|
||||
GdkGCValues *values);
|
||||
static void gdk_x11_gc_set_values (GdkGC *gc,
|
||||
@@ -23,12 +22,74 @@ static void gdk_x11_gc_set_dashes (GdkGC *gc,
|
||||
gchar dash_list[],
|
||||
gint n);
|
||||
|
||||
static GdkGCClass gdk_x11_gc_class = {
|
||||
gdk_x11_gc_destroy,
|
||||
gdk_x11_gc_get_values,
|
||||
gdk_x11_gc_set_values,
|
||||
gdk_x11_gc_set_dashes
|
||||
};
|
||||
static void gdk_windowing_gc_init (GdkWindowingGC *windowing_gc);
|
||||
static void gdk_windowing_gc_class_init (GdkWindowingGCClass *klass);
|
||||
static void gdk_windowing_gc_finalize (GObject *object);
|
||||
|
||||
static gpointer parent_class = NULL;
|
||||
|
||||
GType
|
||||
gdk_windowing_gc_get_type (void)
|
||||
{
|
||||
static GType object_type = 0;
|
||||
|
||||
if (!object_type)
|
||||
{
|
||||
static const GTypeInfo object_info =
|
||||
{
|
||||
sizeof (GdkWindowingGCClass),
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gdk_windowing_gc_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GdkWindowingGC),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gdk_windowing_gc_init,
|
||||
};
|
||||
|
||||
object_type = g_type_register_static (GDK_TYPE_GC,
|
||||
"GdkWindowingGC",
|
||||
&object_info);
|
||||
}
|
||||
|
||||
return object_type;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_windowing_gc_init (GdkWindowingGC *windowing_gc)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_windowing_gc_class_init (GdkWindowingGCClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
GdkGCClass *gc_class = GDK_GC_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek (GDK_TYPE_GC);
|
||||
|
||||
object_class->finalize = gdk_windowing_gc_finalize;
|
||||
|
||||
gc_class->get_values = gdk_x11_gc_get_values;
|
||||
gc_class->set_values = gdk_x11_gc_set_values;
|
||||
gc_class->set_dashes = gdk_x11_gc_set_dashes;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_windowing_gc_finalize (GObject *object)
|
||||
{
|
||||
GdkWindowingGC *windowing_gc = GDK_WINDOWING_GC (object);
|
||||
|
||||
if (windowing_gc->clip_region)
|
||||
gdk_region_destroy (windowing_gc->clip_region);
|
||||
|
||||
XFreeGC (GDK_GC_XDISPLAY (windowing_gc), GDK_GC_XGC (windowing_gc));
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
GdkGC *
|
||||
_gdk_x11_gc_new (GdkDrawable *drawable,
|
||||
@@ -36,8 +97,7 @@ _gdk_x11_gc_new (GdkDrawable *drawable,
|
||||
GdkGCValuesMask values_mask)
|
||||
{
|
||||
GdkGC *gc;
|
||||
GdkGCPrivate *private;
|
||||
GdkGCXData *data;
|
||||
GdkWindowingGC *private;
|
||||
|
||||
XGCValues xvalues;
|
||||
unsigned long xvalues_mask;
|
||||
@@ -47,27 +107,24 @@ _gdk_x11_gc_new (GdkDrawable *drawable,
|
||||
*/
|
||||
g_return_val_if_fail (GDK_IS_DRAWABLE_IMPL (drawable), NULL);
|
||||
|
||||
gc = gdk_gc_alloc ();
|
||||
private = (GdkGCPrivate *)gc;
|
||||
gc = GDK_GC (g_type_create_instance (gdk_windowing_gc_get_type ()));
|
||||
private = GDK_WINDOWING_GC (gc);
|
||||
|
||||
private->klass = &gdk_x11_gc_class;
|
||||
private->klass_data = data = g_new (GdkGCXData, 1);
|
||||
|
||||
data->dirty_mask = 0;
|
||||
data->clip_region = NULL;
|
||||
private->dirty_mask = 0;
|
||||
private->clip_region = NULL;
|
||||
|
||||
GDK_GC_XDATA (gc)->xdisplay = GDK_DRAWABLE_IMPL (drawable)->xdisplay;
|
||||
private->xdisplay = GDK_DRAWABLE_IMPL (drawable)->xdisplay;
|
||||
|
||||
if (values_mask & (GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN))
|
||||
{
|
||||
values_mask &= ~(GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN);
|
||||
data->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
private->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
}
|
||||
|
||||
if (values_mask & (GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN))
|
||||
{
|
||||
values_mask &= ~(GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN);
|
||||
data->dirty_mask |= GDK_GC_DIRTY_TS;
|
||||
private->dirty_mask |= GDK_GC_DIRTY_TS;
|
||||
}
|
||||
|
||||
xvalues.function = GXcopy;
|
||||
@@ -79,62 +136,51 @@ _gdk_x11_gc_new (GdkDrawable *drawable,
|
||||
|
||||
gdk_x11_gc_values_to_xvalues (values, values_mask, &xvalues, &xvalues_mask);
|
||||
|
||||
data->xgc = XCreateGC (GDK_GC_XDISPLAY (gc),
|
||||
GDK_DRAWABLE_IMPL (drawable)->xid,
|
||||
xvalues_mask, &xvalues);
|
||||
private->xgc = XCreateGC (GDK_GC_XDISPLAY (gc),
|
||||
GDK_DRAWABLE_IMPL (drawable)->xid,
|
||||
xvalues_mask, &xvalues);
|
||||
|
||||
return gc;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_x11_gc_destroy (GdkGC *gc)
|
||||
{
|
||||
if (GDK_GC_XDATA (gc)->clip_region)
|
||||
gdk_region_destroy (GDK_GC_XDATA (gc)->clip_region);
|
||||
|
||||
XFreeGC (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc));
|
||||
g_free (GDK_GC_XDATA (gc));
|
||||
}
|
||||
|
||||
GC
|
||||
_gdk_x11_gc_flush (GdkGC *gc)
|
||||
{
|
||||
GdkGCPrivate *private = (GdkGCPrivate *)gc;
|
||||
GdkGCXData *data = GDK_GC_XDATA (gc);
|
||||
GdkWindowingGC *private = GDK_WINDOWING_GC (gc);
|
||||
|
||||
if (data->dirty_mask & GDK_GC_DIRTY_CLIP)
|
||||
if (private->dirty_mask & GDK_GC_DIRTY_CLIP)
|
||||
{
|
||||
if (!data->clip_region)
|
||||
if (!private->clip_region)
|
||||
XSetClipOrigin (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc),
|
||||
private->clip_x_origin, private->clip_y_origin);
|
||||
gc->clip_x_origin, gc->clip_y_origin);
|
||||
else
|
||||
{
|
||||
XRectangle *rectangles = g_new (XRectangle, data->clip_region->numRects);
|
||||
GdkRegionBox *boxes = data->clip_region->rects;
|
||||
XRectangle *rectangles = g_new (XRectangle, private->clip_region->numRects);
|
||||
GdkRegionBox *boxes = private->clip_region->rects;
|
||||
int i;
|
||||
|
||||
for (i=0; i<data->clip_region->numRects; i++)
|
||||
for (i=0; i<private->clip_region->numRects; i++)
|
||||
{
|
||||
rectangles[i].x = CLAMP (boxes[i].x1 + private->clip_x_origin, G_MINSHORT, G_MAXSHORT);
|
||||
rectangles[i].y = CLAMP (boxes[i].y1 + private->clip_y_origin, G_MINSHORT, G_MAXSHORT);
|
||||
rectangles[i].width = CLAMP (boxes[i].x2 + private->clip_x_origin, G_MINSHORT, G_MAXSHORT) - rectangles[i].x;
|
||||
rectangles[i].height = CLAMP (boxes[i].y2 + private->clip_y_origin, G_MINSHORT, G_MAXSHORT) - rectangles[i].y;
|
||||
rectangles[i].x = CLAMP (boxes[i].x1 + gc->clip_x_origin, G_MINSHORT, G_MAXSHORT);
|
||||
rectangles[i].y = CLAMP (boxes[i].y1 + gc->clip_y_origin, G_MINSHORT, G_MAXSHORT);
|
||||
rectangles[i].width = CLAMP (boxes[i].x2 + gc->clip_x_origin, G_MINSHORT, G_MAXSHORT) - rectangles[i].x;
|
||||
rectangles[i].height = CLAMP (boxes[i].y2 + gc->clip_y_origin, G_MINSHORT, G_MAXSHORT) - rectangles[i].y;
|
||||
}
|
||||
|
||||
XSetClipRectangles(GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc), 0, 0, rectangles,
|
||||
data->clip_region->numRects, YXBanded);
|
||||
private->clip_region->numRects, YXBanded);
|
||||
|
||||
g_free (rectangles);
|
||||
}
|
||||
}
|
||||
|
||||
if (data->dirty_mask & GDK_GC_DIRTY_TS)
|
||||
if (private->dirty_mask & GDK_GC_DIRTY_TS)
|
||||
{
|
||||
XSetTSOrigin (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc),
|
||||
private->ts_x_origin, private->ts_y_origin);
|
||||
gc->ts_x_origin, gc->ts_y_origin);
|
||||
}
|
||||
|
||||
data->dirty_mask = 0;
|
||||
private->dirty_mask = 0;
|
||||
return GDK_GC_XGC (gc);
|
||||
}
|
||||
|
||||
@@ -287,32 +333,32 @@ gdk_x11_gc_set_values (GdkGC *gc,
|
||||
GdkGCValues *values,
|
||||
GdkGCValuesMask values_mask)
|
||||
{
|
||||
GdkGCXData *data;
|
||||
GdkWindowingGC *windowing_gc;
|
||||
XGCValues xvalues;
|
||||
unsigned long xvalues_mask = 0;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
data = GDK_GC_XDATA (gc);
|
||||
windowing_gc = GDK_WINDOWING_GC (gc);
|
||||
|
||||
if (values_mask & (GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN))
|
||||
{
|
||||
values_mask &= ~(GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN);
|
||||
data->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
windowing_gc->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
}
|
||||
|
||||
if (values_mask & (GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN))
|
||||
{
|
||||
values_mask &= ~(GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN);
|
||||
data->dirty_mask |= GDK_GC_DIRTY_TS;
|
||||
windowing_gc->dirty_mask |= GDK_GC_DIRTY_TS;
|
||||
}
|
||||
|
||||
if (values_mask & GDK_GC_CLIP_MASK)
|
||||
{
|
||||
if (data->clip_region)
|
||||
if (windowing_gc->clip_region)
|
||||
{
|
||||
gdk_region_destroy (data->clip_region);
|
||||
data->clip_region = NULL;
|
||||
gdk_region_destroy (windowing_gc->clip_region);
|
||||
windowing_gc->clip_region = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,7 +376,7 @@ gdk_x11_gc_set_dashes (GdkGC *gc,
|
||||
gchar dash_list[],
|
||||
gint n)
|
||||
{
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
g_return_if_fail (dash_list != NULL);
|
||||
|
||||
XSetDashes (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc),
|
||||
@@ -552,64 +598,62 @@ void
|
||||
gdk_gc_set_clip_rectangle (GdkGC *gc,
|
||||
GdkRectangle *rectangle)
|
||||
{
|
||||
GdkGCPrivate *private = (GdkGCPrivate *)gc;
|
||||
GdkGCXData *data;
|
||||
GdkWindowingGC *windowing_gc;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
data = GDK_GC_XDATA (gc);
|
||||
windowing_gc = GDK_WINDOWING_GC (gc);
|
||||
|
||||
if (data->clip_region)
|
||||
gdk_region_destroy (data->clip_region);
|
||||
if (windowing_gc->clip_region)
|
||||
gdk_region_destroy (windowing_gc->clip_region);
|
||||
|
||||
if (rectangle)
|
||||
data->clip_region = gdk_region_rectangle (rectangle);
|
||||
windowing_gc->clip_region = gdk_region_rectangle (rectangle);
|
||||
else
|
||||
{
|
||||
data->clip_region = NULL;
|
||||
windowing_gc->clip_region = NULL;
|
||||
XSetClipMask (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc), None);
|
||||
}
|
||||
|
||||
private->clip_x_origin = 0;
|
||||
private->clip_y_origin = 0;
|
||||
gc->clip_x_origin = 0;
|
||||
gc->clip_y_origin = 0;
|
||||
|
||||
data->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
windowing_gc->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
}
|
||||
|
||||
void
|
||||
gdk_gc_set_clip_region (GdkGC *gc,
|
||||
GdkRegion *region)
|
||||
{
|
||||
GdkGCPrivate *private = (GdkGCPrivate *)gc;
|
||||
GdkGCXData *data;
|
||||
GdkWindowingGC *windowing_gc;
|
||||
|
||||
g_return_if_fail (gc != NULL);
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
data = GDK_GC_XDATA (gc);
|
||||
windowing_gc = GDK_WINDOWING_GC (gc);
|
||||
|
||||
if (data->clip_region)
|
||||
gdk_region_destroy (data->clip_region);
|
||||
if (windowing_gc->clip_region)
|
||||
gdk_region_destroy (windowing_gc->clip_region);
|
||||
|
||||
if (region)
|
||||
data->clip_region = gdk_region_copy (region);
|
||||
windowing_gc->clip_region = gdk_region_copy (region);
|
||||
else
|
||||
{
|
||||
data->clip_region = NULL;
|
||||
windowing_gc->clip_region = NULL;
|
||||
XSetClipMask (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc), None);
|
||||
}
|
||||
|
||||
private->clip_x_origin = 0;
|
||||
private->clip_y_origin = 0;
|
||||
gc->clip_x_origin = 0;
|
||||
gc->clip_y_origin = 0;
|
||||
|
||||
data->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
windowing_gc->dirty_mask |= GDK_GC_DIRTY_CLIP;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc)
|
||||
{
|
||||
g_return_if_fail (dst_gc != NULL);
|
||||
g_return_if_fail (src_gc != NULL);
|
||||
g_return_if_fail (GDK_IS_WINDOWING_GC (dst_gc));
|
||||
g_return_if_fail (GDK_IS_WINDOWING_GC (src_gc));
|
||||
|
||||
XCopyGC (GDK_GC_XDISPLAY (src_gc), GDK_GC_XGC (src_gc), ~((~1) << GCLastBit),
|
||||
GDK_GC_XGC (dst_gc));
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
static GList *image_list = NULL;
|
||||
static gpointer parent_class = NULL;
|
||||
|
||||
static void gdk_image_destroy (GdkImage *image);
|
||||
static void gdk_x11_image_destroy (GdkImage *image);
|
||||
static void gdk_image_init (GdkImage *image);
|
||||
static void gdk_image_class_init (GdkImageClass *klass);
|
||||
static void gdk_image_finalize (GObject *object);
|
||||
@@ -118,7 +118,7 @@ gdk_image_finalize (GObject *object)
|
||||
{
|
||||
GdkImage *image = GDK_IMAGE (object);
|
||||
|
||||
gdk_image_destroy (image);
|
||||
gdk_x11_image_destroy (image);
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
@@ -132,7 +132,7 @@ gdk_image_exit (void)
|
||||
while (image_list)
|
||||
{
|
||||
image = image_list->data;
|
||||
gdk_image_destroy (image);
|
||||
gdk_x11_image_destroy (image);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -439,7 +439,7 @@ gdk_image_put_pixel (GdkImage *image,
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_image_destroy (GdkImage *image)
|
||||
gdk_x11_image_destroy (GdkImage *image)
|
||||
{
|
||||
GdkImagePrivateData *private;
|
||||
#ifdef USE_SHM
|
||||
|
||||
@@ -47,17 +47,6 @@ typedef struct _GdkVisualPrivate GdkVisualPrivate;
|
||||
typedef struct _GdkICPrivate GdkICPrivate;
|
||||
#endif /* USE_XIM */
|
||||
|
||||
#define GDK_WINDOW_XDATA(win) ((GdkWindowXData *)(((GdkDrawablePrivate*)(win))->klass_data))
|
||||
#define GDK_GC_XDATA(gc) ((GdkGCXData *)(((GdkGCPrivate*)(gc))->klass_data))
|
||||
|
||||
struct _GdkGCXData
|
||||
{
|
||||
GC xgc;
|
||||
Display *xdisplay;
|
||||
GdkRegion *clip_region;
|
||||
guint dirty_mask;
|
||||
};
|
||||
|
||||
struct _GdkCursorPrivate
|
||||
{
|
||||
GdkCursor cursor;
|
||||
@@ -112,6 +101,35 @@ struct _GdkICPrivate
|
||||
|
||||
#endif /* USE_XIM */
|
||||
|
||||
|
||||
typedef struct _GdkWindowingGC GdkWindowingGC;
|
||||
typedef struct _GdkWindowingGCClass GdkWindowingGCClass;
|
||||
|
||||
#define GDK_TYPE_WINDOWING_GC (gdk_windowing_gc_get_type ())
|
||||
#define GDK_WINDOWING_GC(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOWING_GC, GdkWindowingGC))
|
||||
#define GDK_WINDOWING_GC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WINDOWING_GC, GdkWindowingGCClass))
|
||||
#define GDK_IS_WINDOWING_GC(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOWING_GC))
|
||||
#define GDK_IS_WINDOWING_GC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WINDOWING_GC))
|
||||
#define GDK_WINDOWING_GC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WINDOWING_GC, GdkWindowingGCClass))
|
||||
|
||||
struct _GdkWindowingGC
|
||||
{
|
||||
GdkGC parent_instance;
|
||||
|
||||
GC xgc;
|
||||
Display *xdisplay;
|
||||
GdkRegion *clip_region;
|
||||
guint dirty_mask;
|
||||
};
|
||||
|
||||
struct _GdkWindowingGCClass
|
||||
{
|
||||
GdkGCClass parent_class;
|
||||
|
||||
};
|
||||
|
||||
GType gdk_windowing_gc_get_type (void);
|
||||
|
||||
#define GDK_ROOT_WINDOW() gdk_root_window
|
||||
#define GDK_ROOT_PARENT() ((GdkWindow *)gdk_parent_root)
|
||||
#define GDK_DISPLAY() gdk_display
|
||||
@@ -123,15 +141,15 @@ struct _GdkICPrivate
|
||||
#define GDK_DRAWABLE_XID(win) (GDK_IS_WINDOW (win) ? GDK_WINDOW_XID (win) : GDK_PIXMAP_XID (win))
|
||||
#define GDK_IMAGE_XDISPLAY(image) (((GdkImagePrivateData*) GDK_IMAGE (image)->windowing_data)->xdisplay)
|
||||
#define GDK_IMAGE_XIMAGE(image) (((GdkImagePrivateData*) GDK_IMAGE (image)->windowing_data)->ximage)
|
||||
#define GDK_GC_XDISPLAY(gc) (GDK_GC_XDATA(gc)->xdisplay)
|
||||
#define GDK_GC_XDISPLAY(gc) (GDK_WINDOWING_GC(gc)->xdisplay)
|
||||
#define GDK_COLORMAP_XDISPLAY(cmap) (((GdkColormapPrivateData *)GDK_COLORMAP (cmap)->windowing_data)->xdisplay)
|
||||
#define GDK_COLORMAP_XCOLORMAP(cmap) (((GdkColormapPrivateData *)GDK_COLORMAP (cmap)->windowing_data)->xcolormap)
|
||||
#define GDK_VISUAL_XVISUAL(vis) (((GdkVisualPrivate*) vis)->xvisual)
|
||||
#define GDK_FONT_XDISPLAY(font) (((GdkFontPrivate*) font)->xdisplay)
|
||||
#define GDK_FONT_XFONT(font) (((GdkFontPrivateX *)font)->xfont)
|
||||
|
||||
#define GDK_GC_XGC(gc) (GDK_GC_XDATA(gc)->xgc)
|
||||
#define GDK_GC_GET_XGC(gc) (GDK_GC_XDATA(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : GDK_GC_XGC (gc))
|
||||
#define GDK_GC_XGC(gc) (GDK_WINDOWING_GC(gc)->xgc)
|
||||
#define GDK_GC_GET_XGC(gc) (GDK_WINDOWING_GC(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : GDK_GC_XGC (gc))
|
||||
#define GDK_WINDOW_XWINDOW GDK_WINDOW_XID
|
||||
|
||||
extern Display *gdk_display;
|
||||
|
||||
Reference in New Issue
Block a user