----------------------------------------------------------------------- -- GtkAda - Ada95 binding for Gtk+/Gnome -- -- -- -- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet -- -- Copyright (C) 2000-2008, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or -- -- modify it under the terms of the GNU 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 -- -- General Public License for more details. -- -- -- -- You should have received a copy of the GNU 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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- This package provides support for drawing points, lines, arcs and text onto -- what are called 'drawables'. Drawables, as the name suggests, are things -- which support drawing onto them, and are either Gdk_Window or -- Gdk_Pixmap objects. -- -- Many of the drawing operations take a Gdk_GC argument, which represents a -- graphics context. This Gdk_GC contains a number of drawing attributes such -- as foreground color, background color and line width, and is used to -- reduce the number of arguments needed for each drawing operation. -- See Gdk.GC for more information. -- -- -- 1.3.6 -- Gdk, the low-level API with Glib; use Glib; with Gdk.Types; with Pango.Layout; package Gdk.Drawable is subtype Gdk_Drawable is Gdk.Gdk_Drawable; -- A screen area that can be drawn upon. Null_Drawable : constant Gdk_Drawable; function Get_Type return Glib.GType; -- Return the internal value associated with a Gdk_Drawable. procedure Get_Size (Drawable : Gdk_Drawable; Width : out Gint; Height : out Gint); -- Return the width and height of a given drawable. procedure Set_Colormap (Drawable : Gdk_Drawable; Colormap : Gdk.Gdk_Colormap); function Get_Colormap (Drawable : Gdk_Drawable) return Gdk.Gdk_Colormap; function Get_Visual (Drawable : Gdk_Drawable) return Gdk.Gdk_Visual; function Get_Depth (Drawable : Gdk_Drawable) return Gint; procedure Ref (Drawable : Gdk_Drawable); procedure Unref (Drawable : Gdk_Drawable); procedure Draw_Point (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; X : Gint; Y : Gint); -- Draw a point, using the foreground color and other attributes of the Gc. procedure Draw_Line (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; X1 : Gint; Y1 : Gint; X2 : Gint; Y2 : Gint); -- Draw a line, using the foreground color and other attributes of the Gc. -- (X1, Y1) is coordinate of the start point. -- (X2, Y2) is coordinate of the end point. procedure Draw_Rectangle (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Filled : Boolean := False; X : Gint; Y : Gint; Width : Gint; Height : Gint); -- Draw a rectangular outline or filled rectangle. -- Note that a rectangle drawn filled is 1 pixel smaller in both dimensions -- than a rectangle outlined. Calling -- Draw_Rectangle (Window, Gc, True, 0, 0, 20, 20) results in a filled -- rectangle 20 pixels wide and 20 pixels high. Calling -- Draw_Rectangle (Window, Gc, False, 0, 0, 20, 20) results in an outlined -- rectangle with corners at (0, 0), (0, 20), (20, 20), and (20, 0), which -- makes it 21 pixels wide and 21 pixels high. -- -- (X, Y) represents the coordinate of the top-left edge of the rectangle. procedure Draw_Arc (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Filled : Boolean := False; X : Gint; Y : Gint; Width : Gint; Height : Gint; Angle1 : Gint; Angle2 : Gint); -- Draws an arc or a filled 'pie slice'. -- The arc is defined by the bounding rectangle of the entire ellipse, and -- the start and end angles of the part of the ellipse to be drawn. -- Filled is True if the arc should be filled, producing a 'pie slice'. -- (X, Y) represent the coordinate of the top-left edge of the bounding -- rectangle. -- Angle1 is the start angle of the arc, relative to the 3 o'clock -- position, counter-clockwise, in 1/64ths of a degree. -- Angle2 is the end angle of the arc, relative to angle1, in 1/64ths of a -- degree. procedure Draw_Polygon (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Filled : Boolean; Points : Gdk.Types.Gdk_Points_Array); -- Draw an outlined or filled polygon. -- Filled is True if the polygon should be filled. The polygon is closed -- automatically, connecting the last point to the first point if -- necessary. -- Points is an array of Gdk_Point specifying the points making up the -- polygon. procedure Draw_Text (Drawable : Gdk_Drawable; Font : Gdk.Gdk_Font; GC : Gdk.Gdk_GC; X : Gint; Y : Gint; Text : UTF8_String); -- Draw a string in the given font or fontset. -- X is the x coordinate of the left edge of the text. -- Y is the y coordinate of the baseline of the text. -- -- You should use Gtk.Widget.Create_Pango_Layout instead to handle -- internationalization. procedure Draw_Text (Drawable : Gdk_Drawable; Font : Gdk.Gdk_Font; GC : Gdk.Gdk_GC; X : Gint; Y : Gint; Wide_Text : Gdk.Types.Gdk_WString); -- Draw a wide string in the given font of fontset. -- If the font is a 1-byte font, the string is converted into 1-byte -- characters (discarding the high bytes) before output. procedure Draw_Drawable (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Src : Gdk_Drawable; Xsrc : Gint; Ysrc : Gint; Xdest : Gint; Ydest : Gint; Width : Gint := -1; Height : Gint := -1); -- Draw a pixmap, or a part of a pixmap, onto another drawable. -- Src is the source Gdk_Drawable to draw. -- Xsrc is the left edge of the source rectangle within Src. -- Ysrc is the top of the source rectangle within Src. -- Xdest is the x coordinate of the destination within Src. -- Ydest is the y coordinate of the destination within Src. -- Width is the width of the area to be copied, or -1 to make the area -- extend to the right edge of the source pixmap. -- Height is the height of the area to be copied, or -1 to make the area -- extend to the bottom edge of the source pixmap. procedure Draw_Layout (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; X : Gint; Y : Gint; Layout : Pango.Layout.Pango_Layout); -- Display the layout and its text in Drawable. This method should be -- preferred over Draw_Text. procedure Draw_Pixmap (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Src : Gdk_Drawable; Xsrc : Gint; Ysrc : Gint; Xdest : Gint; Ydest : Gint; Width : Gint := -1; Height : Gint := -1) renames Draw_Drawable; -- Deprecated, use Draw_Drawable instead. procedure Draw_Image (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Image : Gdk.Gdk_Image; Xsrc : Gint; Ysrc : Gint; Xdest : Gint; Ydest : Gint; Width : Gint := -1; Height : Gint := -1); -- Draw a Gdk_Image onto a Drawable. -- The depth of the Gdk_Image must match the depth of the Gdk_Drawable. -- Image is the Gdk_Image to draw. -- Xsrc is the left edge of the source rectangle within Image. -- Ysrc is the top of the source rectangle within Image. -- Xdest is the x coordinate of the destination within Drawable. -- Ydest is the y coordinate of the destination within Drawable. -- Width is the width of the area to be copied, or -1 to make the area -- extend to the right edge of image. -- Height is the height of the area to be copied, or -1 to make the area -- extend to the bottom edge of image. procedure Draw_Points (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Points : Gdk.Types.Gdk_Points_Array); -- Draw a number of points. -- Use the foreground color and other attributes of the Gc. procedure Draw_Segments (Drawable : in Gdk_Drawable; GC : in Gdk.Gdk_GC; Segs : in Gdk.Types.Gdk_Segments_Array); -- Draw a number of unconnected lines. procedure Draw_Lines (Drawable : Gdk_Drawable; GC : Gdk.Gdk_GC; Points : Gdk.Types.Gdk_Points_Array); -- Draw a series of lines connecting the given points. -- The way in which joins between lines are drawn is determined by the -- Cap_Style value in the Gdk_GC. This can be set with -- Gdk.Gc.Set_Line_Attributes. function Get_Image (Drawable : Gdk_Drawable; X : Gint; Y : Gint; Width : Gint; Height : Gint) return Gdk_Image; function Get_Clip_Region (Drawable : Gdk_Drawable) return Gdk.Gdk_Region; function Get_Visible_Region (Drawable : Gdk_Drawable) return Gdk.Gdk_Region; private Null_Drawable : constant Gdk_Drawable := null; pragma Import (C, Get_Type, "gdk_drawable_get_type"); pragma Import (C, Get_Depth, "gdk_drawable_get_depth"); pragma Import (C, Ref, "gdk_drawable_ref"); pragma Import (C, Unref, "gdk_drawable_unref"); pragma Import (C, Get_Size, "gdk_drawable_get_size"); pragma Import (C, Get_Colormap, "gdk_drawable_get_colormap"); pragma Import (C, Get_Visual, "gdk_drawable_get_visual"); pragma Import (C, Set_Colormap, "gdk_drawable_set_colormap"); pragma Import (C, Draw_Drawable, "gdk_draw_drawable"); pragma Import (C, Draw_Line, "gdk_draw_line"); pragma Import (C, Draw_Point, "gdk_draw_point"); pragma Import (C, Draw_Image, "gdk_draw_image"); pragma Import (C, Get_Image, "gdk_drawable_get_image"); pragma Import (C, Get_Clip_Region, "gdk_drawable_get_clip_region"); pragma Import (C, Get_Visible_Region, "gdk_drawable_get_visible_region"); end Gdk.Drawable; -- -- ../examples/documentation/draw.adb -- -- missing pango related functions: -- gdk_draw_glyphs -- gdk_draw_layout_line -- gdk_draw_layout_line_with_colors -- gdk_draw_layout_with_colors