From e9b6bfcc01c0d76c2e5392a0d332bd0d00544ae7 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Mon, 8 Nov 1999 20:14:59 +0000 Subject: Move all X specific code into the x11/ directory. Aside from shuffling Mon Nov 8 14:47:04 1999 Owen Taylor Move all X specific code into the x11/ directory. Aside from shuffling things around, did the following: * gdk/gdkprivate.h gdk/gdk.h gdk/x11/gdkmain-x11.h: Add gdk_arg_context_* - a simple argument parsing system in the style of popt. * gdk/gdkdrawable.[ch] gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkprivate-x11.h: Remove X specific stuff from GdkDrawable and GdkWindowPrivate - add ->klass and ->klass_data fields. The klass_data field points to an auxilliary structure that is windowing system dependent. * gdk/gdkfont.c: Make most of the measurement functions simply wrappers around gdk_text_extents(). * gdk/gdkfont.c gdk/gdkprivate.h gdk/x11/gdkfont-x11.c: Add a _gdk_font_strlen() function that hides the weird behavior in gtk+-1.[02] where a string is interpreted differently for 8-bit and 16-bit fonts. * gdk/gdkevents.c: Add a new function gdk_event_button_generate() to store common code for synthesizing double/triple press events. * gdk/gdkgc.[ch]: Virtualize in the same way as gdkdrawable.h. Make all the function that modify an existing GC simply wrappers around gdk_gc_set_values(). * gdk/gdkcc.[ch]: Moved into x11/ directory in preparation for throwing out later. * gdk/gdkfont.c gdk/gdkimage.c gdk/gdkcolor.c: Change GdkFontPrivate, GdkImagePrivate and GdkColormapPrivate to have a windowing system dependent part (GdkFontPrivateX etc.) that "derives" from the system-independent part. * configure.in gdk/x11/Makefile.in gdk/x11/gdkinput*.c: Got rid of the included-source-files for XInput in favor of automake conditionals. (Which didn't exist when XInput support was originally added.) * gdk/gdkrgb.c: Remove the visual id from the debugging statements since that is X11 specific; print out type/depth info instead. --- gdk/gdkdrawable.h | 82 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 72 insertions(+), 10 deletions(-) (limited to 'gdk/gdkdrawable.h') diff --git a/gdk/gdkdrawable.h b/gdk/gdkdrawable.h index b3286c4823..80d797ef53 100644 --- a/gdk/gdkdrawable.h +++ b/gdk/gdkdrawable.h @@ -2,11 +2,14 @@ #define __GDK_DRAWABLE_H__ #include +#include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +typedef struct _GdkDrawableClass GdkDrawableClass; + /* Types of windows. * Root: There is only 1 root window and it is initialized * at startup. Creating a window of type GDK_WINDOW_ROOT @@ -42,9 +45,75 @@ struct _GdkDrawable { gpointer user_data; }; + +struct _GdkDrawableClass +{ + void (*destroy) (GdkDrawable *drawable); + GdkGC *(*create_gc) (GdkDrawable *drawable, + GdkGCValues *values, + GdkGCValuesMask mask); + void (*draw_rectangle) (GdkDrawable *drawable, + GdkGC *gc, + gint filled, + gint x, + gint y, + gint width, + gint height); + void (*draw_arc) (GdkDrawable *drawable, + GdkGC *gc, + gint filled, + gint x, + gint y, + gint width, + gint height, + gint angle1, + gint angle2); + void (*draw_polygon) (GdkDrawable *drawable, + GdkGC *gc, + gint filled, + GdkPoint *points, + gint npoints); + void (*draw_text) (GdkDrawable *drawable, + GdkFont *font, + GdkGC *gc, + gint x, + gint y, + const gchar *text, + gint text_length); + void (*draw_text_wc) (GdkDrawable *drawable, + GdkFont *font, + GdkGC *gc, + gint x, + gint y, + const GdkWChar *text, + gint text_length); + void (*draw_drawable) (GdkDrawable *drawable, + GdkGC *gc, + GdkDrawable *src, + gint xsrc, + gint ysrc, + gint xdest, + gint ydest, + gint width, + gint height); + void (*draw_points) (GdkDrawable *drawable, + GdkGC *gc, + GdkPoint *points, + gint npoints); + void (*draw_segments) (GdkDrawable *drawable, + GdkGC *gc, + GdkSegment *segs, + gint nsegs); + void (*draw_lines) (GdkDrawable *drawable, + GdkGC *gc, + GdkPoint *points, + gint npoints); +}; /* Manipulation of drawables */ +GdkDrawable * gdk_drawable_alloc (void); + GdkDrawableType gdk_drawable_get_type (GdkDrawable *window); void gdk_drawable_set_data (GdkDrawable *drawable, @@ -61,6 +130,8 @@ void gdk_drawable_set_colormap (GdkDrawable *drawable, GdkColormap *colormap); GdkColormap* gdk_drawable_get_colormap (GdkDrawable *drawable); GdkVisual* gdk_drawable_get_visual (GdkDrawable *drawable); +GdkDrawable* gdk_drawable_ref (GdkDrawable *drawable); +void gdk_drawable_unref (GdkDrawable *drawable); /* Drawing */ @@ -115,16 +186,7 @@ void gdk_draw_text_wc (GdkDrawable *drawable, gint y, const GdkWChar *text, gint text_length); -void gdk_draw_pixmap (GdkDrawable *drawable, - GdkGC *gc, - GdkDrawable *src, - gint xsrc, - gint ysrc, - gint xdest, - gint ydest, - gint width, - gint height); -void gdk_draw_bitmap (GdkDrawable *drawable, +void gdk_draw_drawable (GdkDrawable *drawable, GdkGC *gc, GdkDrawable *src, gint xsrc, -- cgit v1.2.1