summaryrefslogtreecommitdiff
path: root/gdk/gdkdrawable.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-11-08 20:14:59 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-11-08 20:14:59 +0000
commite9b6bfcc01c0d76c2e5392a0d332bd0d00544ae7 (patch)
treef2f741cf95b0b49eabf3a756a404413724c5d248 /gdk/gdkdrawable.h
parentcd02981bf22833edfca5c5af03278f5701246411 (diff)
downloadgtk+-e9b6bfcc01c0d76c2e5392a0d332bd0d00544ae7.tar.gz
Move all X specific code into the x11/ directory. Aside from shuffling
Mon Nov 8 14:47:04 1999 Owen Taylor <otaylor@redhat.com> 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.
Diffstat (limited to 'gdk/gdkdrawable.h')
-rw-r--r--gdk/gdkdrawable.h82
1 files changed, 72 insertions, 10 deletions
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 <gdk/gdktypes.h>
+#include <gdk/gdkgc.h>
#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,