]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdkdrawable.h
Updated Basque translation.
[~andy/gtk] / gdk / gdkdrawable.h
index a1c5fd3f2b4cd10e238a1d6a5b614e098b2fc51e..508bf86fcfd2027816c687c524dd2c471a566dd1 100644 (file)
@@ -1,67 +1,77 @@
+/* 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/.
+ */
+
+#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
+#error "Only <gdk/gdk.h> can be included directly."
+#endif
+
 #ifndef __GDK_DRAWABLE_H__
 #define __GDK_DRAWABLE_H__
 
 #include <gdk/gdktypes.h>
 #include <gdk/gdkgc.h>
+#include <gdk/gdkrgb.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+#include <cairo.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 typedef struct _GdkDrawableClass GdkDrawableClass;
+typedef struct _GdkTrapezoid     GdkTrapezoid;
 
-/* Types of windows.
- *   Root: There is only 1 root window and it is initialized
- *        at startup. Creating a window of type GDK_WINDOW_ROOT
- *        is an error.
- *   Toplevel: Windows which interact with the window manager.
- *   Child: Windows which are children of some other type of window.
- *         (Any other type of window). Most windows are child windows.
- *   Dialog: A special kind of toplevel window which interacts with
- *          the window manager slightly differently than a regular
- *          toplevel window. Dialog windows should be used for any
- *          transient window.
- *   Pixmap: Pixmaps are really just another kind of window which
- *          doesn't actually appear on the screen. It can't have
- *          children, either and is really just a convenience so
- *          that the drawing functions can work on both windows
- *          and pixmaps transparently. (ie. You shouldn't pass a
- *          pixmap to any procedure which accepts a window with the
- *          exception of the drawing functions).
- *   Foreign: A window that actually belongs to another application
- */
-typedef enum
-{
-  GDK_WINDOW_ROOT,
-  GDK_WINDOW_TOPLEVEL,
-  GDK_WINDOW_CHILD,
-  GDK_WINDOW_DIALOG,
-  GDK_WINDOW_TEMP,
-  GDK_DRAWABLE_PIXMAP,
-  GDK_WINDOW_FOREIGN
-} GdkDrawableType;
+#define GDK_TYPE_DRAWABLE              (gdk_drawable_get_type ())
+#define GDK_DRAWABLE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAWABLE, GdkDrawable))
+#define GDK_DRAWABLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAWABLE, GdkDrawableClass))
+#define GDK_IS_DRAWABLE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAWABLE))
+#define GDK_IS_DRAWABLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DRAWABLE))
+#define GDK_DRAWABLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DRAWABLE, GdkDrawableClass))
 
 struct _GdkDrawable
 {
-  gpointer user_data;
+  GObject parent_instance;
 };
  
 struct _GdkDrawableClass 
 {
-  void  (*destroy)       (GdkDrawable    *drawable);
+  GObjectClass parent_class;
+  
   GdkGC *(*create_gc)    (GdkDrawable    *drawable,
                          GdkGCValues    *values,
                          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,
@@ -70,7 +80,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,
@@ -108,22 +118,123 @@ struct _GdkDrawableClass
                          GdkGC        *gc,
                          GdkPoint     *points,
                          gint          npoints);
+
+  void (*draw_glyphs)    (GdkDrawable      *drawable,
+                         GdkGC            *gc,
+                         PangoFont        *font,
+                         gint              x,
+                         gint              y,
+                         PangoGlyphString *glyphs);
+
+  void (*draw_image)     (GdkDrawable *drawable,
+                          GdkGC              *gc,
+                          GdkImage    *image,
+                          gint        xsrc,
+                          gint        ysrc,
+                          gint        xdest,
+                          gint        ydest,
+                          gint        width,
+                          gint        height);
+  
+  gint (*get_depth)      (GdkDrawable  *drawable);
+  void (*get_size)       (GdkDrawable  *drawable,
+                          gint         *width,
+                          gint         *height);
+
+  void (*set_colormap)   (GdkDrawable  *drawable,
+                          GdkColormap  *cmap);
+
+  GdkColormap* (*get_colormap) (GdkDrawable  *drawable);
+  GdkVisual*   (*get_visual)   (GdkDrawable  *drawable);
+  GdkScreen*   (*get_screen)   (GdkDrawable  *drawable);
+
+  GdkImage*    (*get_image)  (GdkDrawable  *drawable,
+                              gint          x,
+                              gint          y,
+                              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,
+                                          gint         width,
+                                          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);
 };
 
+struct _GdkTrapezoid
+{
+  double y1, x11, x21, y2, x12, x22;
+};
+
+GType           gdk_drawable_get_type     (void) G_GNUC_CONST;
+
 /* Manipulation of drawables
  */
-GdkDrawable *   gdk_drawable_alloc        (void);
-
-GdkDrawableType gdk_drawable_get_type     (GdkDrawable   *window);
 
+#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     (GdkWindow     *drawable,
+void            gdk_drawable_get_size     (GdkDrawable   *drawable,
                                           gint           *width,
                                           gint           *height);
 void           gdk_drawable_set_colormap (GdkDrawable    *drawable,
@@ -131,95 +242,183 @@ 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
  */
-void gdk_draw_point     (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          x,
-                         gint          y);
-void gdk_draw_line      (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          x1,
-                         gint          y1,
-                         gint          x2,
-                         gint          y2);
-void gdk_draw_rectangle         (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          filled,
-                         gint          x,
-                         gint          y,
-                         gint          width,
-                         gint          height);
-void gdk_draw_arc       (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          filled,
-                         gint          x,
-                         gint          y,
-                         gint          width,
-                         gint          height,
-                         gint          angle1,
-                         gint          angle2);
-void gdk_draw_polygon   (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          filled,
-                         GdkPoint     *points,
-                         gint          npoints);
-void gdk_draw_string    (GdkDrawable  *drawable,
-                         GdkFont      *font,
-                         GdkGC        *gc,
-                         gint          x,
-                         gint          y,
-                         const gchar  *string);
-void gdk_draw_text      (GdkDrawable  *drawable,
-                         GdkFont      *font,
-                         GdkGC        *gc,
-                         gint          x,
-                         gint          y,
-                         const gchar  *text,
-                         gint          text_length);
-void gdk_draw_text_wc   (GdkDrawable    *drawable,
-                         GdkFont        *font,
-                         GdkGC          *gc,
-                         gint            x,
-                         gint            y,
-                         const GdkWChar *text,
-                         gint            text_length);
-void gdk_draw_drawable  (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkDrawable  *src,
-                         gint          xsrc,
-                         gint          ysrc,
-                         gint          xdest,
-                         gint          ydest,
-                         gint          width,
-                         gint          height);
-void gdk_draw_image     (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkImage     *image,
-                         gint          xsrc,
-                         gint          ysrc,
-                         gint          xdest,
-                         gint          ydest,
-                         gint          width,
-                         gint          height);
-void gdk_draw_points    (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkPoint     *points,
-                         gint          npoints);
-void gdk_draw_segments  (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkSegment   *segs,
-                         gint          nsegs);
-void gdk_draw_lines      (GdkDrawable  *drawable,
-                          GdkGC        *gc,
-                          GdkPoint     *points,
-                          gint          npoints);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+void gdk_draw_point     (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        gint              x,
+                        gint              y);
+void gdk_draw_line      (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        gint              x1_,
+                        gint              y1_,
+                        gint              x2_,
+                        gint              y2_);
+void gdk_draw_rectangle (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        gboolean          filled,
+                        gint              x,
+                        gint              y,
+                        gint              width,
+                        gint              height);
+void gdk_draw_arc       (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        gboolean          filled,
+                        gint              x,
+                        gint              y,
+                        gint              width,
+                        gint              height,
+                        gint              angle1,
+                        gint              angle2);
+void gdk_draw_polygon   (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        gboolean          filled,
+                        const GdkPoint   *points,
+                        gint              n_points);
+#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,
+                        gint              x,
+                        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,
+                        gint              x,
+                        gint              y,
+                        const GdkWChar   *text,
+                        gint              text_length);
+#endif /* !GDK_DISABLE_DEPRECATED || GDK_COMPILATION */
+void gdk_draw_drawable  (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        GdkDrawable      *src,
+                        gint              xsrc,
+                        gint              ysrc,
+                        gint              xdest,
+                        gint              ydest,
+                        gint              width,
+                        gint              height);
+void gdk_draw_image     (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        GdkImage         *image,
+                        gint              xsrc,
+                        gint              ysrc,
+                        gint              xdest,
+                        gint              ydest,
+                        gint              width,
+                        gint              height);
+void gdk_draw_points    (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        const GdkPoint   *points,
+                        gint              n_points);
+void gdk_draw_segments  (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        const GdkSegment *segs,
+                        gint              n_segs);
+void gdk_draw_lines     (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        const GdkPoint   *points,
+                        gint              n_points);
+void gdk_draw_pixbuf    (GdkDrawable      *drawable,
+                        GdkGC            *gc,
+                        const 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,
+                          PangoFont        *font,
+                          gint              x,
+                          gint              y,
+                          PangoGlyphString *glyphs);
+void gdk_draw_layout_line (GdkDrawable      *drawable,
+                          GdkGC            *gc,
+                          gint              x,
+                          gint              y,
+                          PangoLayoutLine  *line);
+void gdk_draw_layout      (GdkDrawable      *drawable,
+                          GdkGC            *gc,
+                          gint              x,
+                          gint              y,
+                          PangoLayout      *layout);
+
+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,
+                                 const PangoMatrix  *matrix,
+                                 PangoFont          *font,
+                                 gint                x,
+                                 gint                y,
+                                 PangoGlyphString   *glyphs);
+void gdk_draw_trapezoids         (GdkDrawable        *drawable,
+                                 GdkGC              *gc,
+                                 const 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);
+
+G_END_DECLS
 
 #endif /* __GDK_DRAWABLE_H__ */