X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gdk%2Fgdkdrawable.h;h=ccaa36441672921e38c358c738fd14aaefd20f36;hb=1ff434a681f7d39c9129324fa11a5af55e5fa857;hp=e177ca81a1d0736796afc32cd07cbcda2a56d04c;hpb=86b5c82a97335ff7cd2edac3c1242d4c6b51e01b;p=~andy%2Fgtk diff --git a/gdk/gdkdrawable.h b/gdk/gdkdrawable.h index e177ca81a..ccaa36441 100644 --- a/gdk/gdkdrawable.h +++ b/gdk/gdkdrawable.h @@ -1,14 +1,42 @@ +/* GDK - The GIMP Drawing Kit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ #ifndef __GDK_DRAWABLE_H__ #define __GDK_DRAWABLE_H__ #include #include +#include +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include + +G_BEGIN_DECLS typedef struct _GdkDrawableClass GdkDrawableClass; +typedef struct _GdkTrapezoid GdkTrapezoid; #define GDK_TYPE_DRAWABLE (gdk_drawable_get_type ()) #define GDK_DRAWABLE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAWABLE, GdkDrawable)) @@ -31,14 +59,14 @@ struct _GdkDrawableClass GdkGCValuesMask mask); void (*draw_rectangle) (GdkDrawable *drawable, GdkGC *gc, - gint filled, + gboolean filled, gint x, gint y, gint width, gint height); void (*draw_arc) (GdkDrawable *drawable, GdkGC *gc, - gint filled, + gboolean filled, gint x, gint y, gint width, @@ -47,7 +75,7 @@ struct _GdkDrawableClass gint angle2); void (*draw_polygon) (GdkDrawable *drawable, GdkGC *gc, - gint filled, + gboolean filled, GdkPoint *points, gint npoints); void (*draw_text) (GdkDrawable *drawable, @@ -81,7 +109,7 @@ struct _GdkDrawableClass GdkGC *gc, GdkSegment *segs, gint nsegs); - void (*draw_lines) (GdkDrawable *drawable, + void (*draw_lines) (GdkDrawable *drawable, GdkGC *gc, GdkPoint *points, gint npoints); @@ -111,8 +139,9 @@ struct _GdkDrawableClass void (*set_colormap) (GdkDrawable *drawable, GdkColormap *cmap); - GdkColormap* (*get_colormap) (GdkDrawable *drawable); - GdkVisual* (*get_visual) (GdkDrawable *drawable); + GdkColormap* (*get_colormap) (GdkDrawable *drawable); + GdkVisual* (*get_visual) (GdkDrawable *drawable); + GdkScreen* (*get_screen) (GdkDrawable *drawable); GdkImage* (*get_image) (GdkDrawable *drawable, gint x, @@ -120,6 +149,9 @@ struct _GdkDrawableClass gint width, gint height); + GdkRegion* (*get_clip_region) (GdkDrawable *drawable); + GdkRegion* (*get_visible_region) (GdkDrawable *drawable); + GdkDrawable* (*get_composite_drawable) (GdkDrawable *drawable, gint x, gint y, @@ -127,20 +159,75 @@ struct _GdkDrawableClass gint height, gint *composite_x_offset, gint *composite_y_offset); + + void (*draw_pixbuf) (GdkDrawable *drawable, + GdkGC *gc, + GdkPixbuf *pixbuf, + gint src_x, + gint src_y, + gint dest_x, + gint dest_y, + gint width, + gint height, + GdkRgbDither dither, + gint x_dither, + gint y_dither); + GdkImage* (*_copy_to_image) (GdkDrawable *drawable, + GdkImage *image, + gint src_x, + gint src_y, + gint dest_x, + gint dest_y, + gint width, + gint height); + void (*draw_glyphs_transformed) (GdkDrawable *drawable, + GdkGC *gc, + PangoMatrix *matrix, + PangoFont *font, + gint x, + gint y, + PangoGlyphString *glyphs); + void (*draw_trapezoids) (GdkDrawable *drawable, + GdkGC *gc, + GdkTrapezoid *trapezoids, + gint n_trapezoids); + + cairo_surface_t *(*ref_cairo_surface) (GdkDrawable *drawable); + + /* Padding for future expansion */ + void (*_gdk_reserved4) (void); + void (*_gdk_reserved5) (void); + void (*_gdk_reserved6) (void); + void (*_gdk_reserved7) (void); + void (*_gdk_reserved9) (void); + void (*_gdk_reserved10) (void); + void (*_gdk_reserved11) (void); + void (*_gdk_reserved12) (void); + void (*_gdk_reserved13) (void); + void (*_gdk_reserved14) (void); + void (*_gdk_reserved15) (void); + void (*_gdk_reserved16) (void); }; -GType gdk_drawable_get_type (void); +struct _GdkTrapezoid +{ + double y1, x11, x21, y2, x12, x22; +}; + +GType gdk_drawable_get_type (void) G_GNUC_CONST; /* Manipulation of drawables */ +#ifndef GDK_DISABLE_DEPRECATED void gdk_drawable_set_data (GdkDrawable *drawable, const gchar *key, gpointer data, GDestroyNotify destroy_func); gpointer gdk_drawable_get_data (GdkDrawable *drawable, const gchar *key); +#endif /* GDK_DISABLE_DEPRECATED */ void gdk_drawable_get_size (GdkDrawable *drawable, gint *width, @@ -150,8 +237,13 @@ void gdk_drawable_set_colormap (GdkDrawable *drawable, GdkColormap* gdk_drawable_get_colormap (GdkDrawable *drawable); GdkVisual* gdk_drawable_get_visual (GdkDrawable *drawable); gint gdk_drawable_get_depth (GdkDrawable *drawable); +GdkScreen* gdk_drawable_get_screen (GdkDrawable *drawable); +GdkDisplay* gdk_drawable_get_display (GdkDrawable *drawable); + +#ifndef GDK_DISABLE_DEPRECATED GdkDrawable* gdk_drawable_ref (GdkDrawable *drawable); void gdk_drawable_unref (GdkDrawable *drawable); +#endif /* GDK_DISABLE_DEPRECATED */ /* Drawing */ @@ -161,20 +253,20 @@ void gdk_draw_point (GdkDrawable *drawable, gint y); void gdk_draw_line (GdkDrawable *drawable, GdkGC *gc, - gint x1, - gint y1, - gint x2, - gint y2); + gint x1_, + gint y1_, + gint x2_, + gint y2_); void gdk_draw_rectangle (GdkDrawable *drawable, GdkGC *gc, - gint filled, + gboolean filled, gint x, gint y, gint width, gint height); void gdk_draw_arc (GdkDrawable *drawable, GdkGC *gc, - gint filled, + gboolean filled, gint x, gint y, gint width, @@ -183,15 +275,20 @@ void gdk_draw_arc (GdkDrawable *drawable, gint angle2); void gdk_draw_polygon (GdkDrawable *drawable, GdkGC *gc, - gint filled, + gboolean filled, GdkPoint *points, gint npoints); +#if !defined (GDK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION) +/* Used by gtk_default_draw_string () */ void gdk_draw_string (GdkDrawable *drawable, GdkFont *font, GdkGC *gc, gint x, gint y, const gchar *string); +#endif /* !GDK_DISABLE_DEPRECATED || GTK_COMPILATION */ +#if !defined (GDK_DISABLE_DEPRECATED) || defined (GDK_COMPILATION) +/* Used by gdk_pixmap_draw_text (), gdk_window_draw_text() */ void gdk_draw_text (GdkDrawable *drawable, GdkFont *font, GdkGC *gc, @@ -199,6 +296,7 @@ void gdk_draw_text (GdkDrawable *drawable, gint y, const gchar *text, gint text_length); +/* Used by gdk_pixmap_draw_text_wc (), gdk_window_draw_text_wc () */ void gdk_draw_text_wc (GdkDrawable *drawable, GdkFont *font, GdkGC *gc, @@ -206,6 +304,7 @@ void gdk_draw_text_wc (GdkDrawable *drawable, gint y, const GdkWChar *text, gint text_length); +#endif /* !GDK_DISABLE_DEPRECATED || GDK_COMPILATION */ void gdk_draw_drawable (GdkDrawable *drawable, GdkGC *gc, GdkDrawable *src, @@ -236,6 +335,18 @@ void gdk_draw_lines (GdkDrawable *drawable, GdkGC *gc, GdkPoint *points, gint npoints); +void gdk_draw_pixbuf (GdkDrawable *drawable, + GdkGC *gc, + GdkPixbuf *pixbuf, + gint src_x, + gint src_y, + gint dest_x, + gint dest_y, + gint width, + gint height, + GdkRgbDither dither, + gint x_dither, + gint y_dither); void gdk_draw_glyphs (GdkDrawable *drawable, GdkGC *gc, @@ -254,14 +365,55 @@ void gdk_draw_layout (GdkDrawable *drawable, gint y, PangoLayout *layout); -GdkImage* gdk_drawable_get_image (GdkDrawable *drawable, - gint x, - gint y, - gint width, - gint height); +void gdk_draw_layout_line_with_colors (GdkDrawable *drawable, + GdkGC *gc, + gint x, + gint y, + PangoLayoutLine *line, + const GdkColor *foreground, + const GdkColor *background); +void gdk_draw_layout_with_colors (GdkDrawable *drawable, + GdkGC *gc, + gint x, + gint y, + PangoLayout *layout, + const GdkColor *foreground, + const GdkColor *background); + +void gdk_draw_glyphs_transformed (GdkDrawable *drawable, + GdkGC *gc, + PangoMatrix *matrix, + PangoFont *font, + gint x, + gint y, + PangoGlyphString *glyphs); +void gdk_draw_trapezoids (GdkDrawable *drawable, + GdkGC *gc, + GdkTrapezoid *trapezoids, + gint n_trapezoids); + +#ifndef GDK_DISABLE_DEPRECATED +#define gdk_draw_pixmap gdk_draw_drawable +#define gdk_draw_bitmap gdk_draw_drawable +#endif /* GDK_DISABLE_DEPRECATED */ + +GdkImage* gdk_drawable_get_image (GdkDrawable *drawable, + gint x, + gint y, + gint width, + gint height); +GdkImage *gdk_drawable_copy_to_image (GdkDrawable *drawable, + GdkImage *image, + gint src_x, + gint src_y, + gint dest_x, + gint dest_y, + gint width, + gint height); + +GdkRegion *gdk_drawable_get_clip_region (GdkDrawable *drawable); +GdkRegion *gdk_drawable_get_visible_region (GdkDrawable *drawable); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS #endif /* __GDK_DRAWABLE_H__ */