diff options
author | Owen Taylor <otaylor@redhat.com> | 1999-11-08 20:14:59 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1999-11-08 20:14:59 +0000 |
commit | e9b6bfcc01c0d76c2e5392a0d332bd0d00544ae7 (patch) | |
tree | f2f741cf95b0b49eabf3a756a404413724c5d248 /gdk/gdkdrawable.h | |
parent | cd02981bf22833edfca5c5af03278f5701246411 (diff) | |
download | gtk+-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.h | 82 |
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, |