Description
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.
  
  
  
   
   
   
  
   Subprograms
   
     - 
- 
procedure Get_Size
  (Drawable : Gdk_Drawable;
   Width    : out Gint;
   Height   : out Gint); 
- 
- 
- 
- 
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); 
 
- 
procedure Draw_Line
  (Drawable : Gdk_Drawable;
   Gc       :  Gdk.Gdk_GC;
   X1       : Gint;
   Y1       : Gint;
   X2       : Gint;
   Y2       : Gint); 
 
- 
procedure Draw_Rectangle
  (Drawable : Gdk_Drawable;
   Gc       :  Gdk.Gdk_GC;
   Filled   : Boolean := False;
   X        : Gint;
   Y        : Gint;
   Width    : Gint;
   Height   : Gint); 
 
- 
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); 
 
- 
procedure Draw_Polygon
  (Drawable : Gdk_Drawable;
   Gc       :  Gdk.Gdk_GC;
   Filled   : Boolean;
   Points   : Gdk.Types.Gdk_Points_Array); 
 
- 
procedure Draw_Text
  (Drawable    : Gdk_Drawable;
   Font        :  Gdk.Gdk_Font;
   Gc          :  Gdk.Gdk_GC;
   X           : Gint;
   Y           : Gint;
   Text        : UTF8_String); 
 
- 
procedure Draw_Text
  (Drawable    : Gdk_Drawable;
   Font        :  Gdk.Gdk_Font;
   Gc          :  Gdk.Gdk_GC;
   X           : Gint;
   Y           : Gint;
   Wide_Text   : Gdk.Types.Gdk_WString); 
 
- 
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); 
 
- 
- 
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; 
 
- 
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); 
 
- 
procedure Draw_Points
  (Drawable : Gdk_Drawable;
   Gc       :  Gdk.Gdk_GC;
   Points   : Gdk.Types.Gdk_Points_Array); 
 
- 
procedure Draw_Segments
  (Drawable :  in Gdk_Drawable;
   Gc       :  in Gdk.Gdk_GC;
   Segs     :  in Gdk.Types.Gdk_Segments_Array); 
 
- 
procedure Draw_Lines
  (Drawable : Gdk_Drawable;
   Gc       :  Gdk.Gdk_GC;
   Points   : Gdk.Types.Gdk_Points_Array); 
 
- 
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; 
 
  
     
  
   
   Example
with Glib;
with Gdk.Window;
with Gdk.Drawable;
with Gdk.GC;
with Gdk.Font;
with Gtk.Drawing_Area;
procedure Draw (Drawing : in out Gtk.Drawing_Area.Gtk_Drawing_Area) is
   Gdkw : Gdk.Window.Gdk_Window;
   GC   : Gdk.GC.Gdk_GC;
   Font : Gdk.Font.Gdk_Font;
   use type Glib.Gint;
begin
 Get the Gdk window
   Gdkw := Gtk.Drawing_Area.Get_Window (Drawing);
 Clear the window
   Gdk.Window.Clear (Gdkw);
 Create a graphic context associated with this window
   Gdk.GC.Gdk_New (GC, Gdkw);
 Draw a line in this window
   Gdk.Drawable.Draw_Line
     (Drawable => Gdkw,
      GC => GC,
      X1 =>   0, Y1 =>   0,
      X2 => 100, Y2 => 100);
 Draw an arc
   Gdk.Drawable.Draw_Arc
     (Drawable => Gdkw,
      Gc       => GC,
      Filled   => True,
      X        => 100,
      Y        => 100,
      Width    => 200,
      Height   => 100,
      Angle1   => 0 * 64,
      Angle2   => 270 * 64);
 Ask for a given font
   Gdk.Font.Load (Font,
                  "-adobe-courier-medium-i-*-*-15-*-*-*-*-*-*-*");
   Gdk.Drawable.Draw_Text
     (Drawable    => Gdkw,
      Font        => Font,
      Gc          => GC,
      X           => 50,
      Y           => 50,
      Text        => "Hello World");
   Gdk.GC.Destroy (GC);
end Draw;