subtype Gdk_GC is Gdk.Gdk_GC;
type Gdk_GC_Values is new Gdk.C_Proxy;
type Gdk_Function is (Copy, Invert, Gdk_Xor, Clear, Gdk_And, And_Reverse, And_Invert, Noop, Gdk_Or, Equiv, Or_Reverse, Copy_Invert, Or_Invert, Nand, Set);
GC_Foreground : constant Gdk_GC_Values_Mask := 2 ** 0;
GC_Background : constant Gdk_GC_Values_Mask := 2 ** 1;
GC_Font : constant Gdk_GC_Values_Mask := 2 ** 2;
GC_Function : constant Gdk_GC_Values_Mask := 2 ** 3;
GC_Fill : constant Gdk_GC_Values_Mask := 2 ** 4;
GC_Tile : constant Gdk_GC_Values_Mask := 2 ** 5;
GC_Stipple : constant Gdk_GC_Values_Mask := 2 ** 6;
GC_Clip_Mask : constant Gdk_GC_Values_Mask := 2 ** 7;
GC_Subwindow : constant Gdk_GC_Values_Mask := 2 ** 8;
GC_Ts_X_Origin : constant Gdk_GC_Values_Mask := 2 ** 9;
GC_Tx_Y_Origin : constant Gdk_GC_Values_Mask := 2 ** 10;
GC_Clip_X_Origin : constant Gdk_GC_Values_Mask := 2 ** 11;
GC_Clip_Y_Origin : constant Gdk_GC_Values_Mask := 2 ** 12;
GC_Exposures : constant Gdk_GC_Values_Mask := 2 ** 13;
GC_Line_Width : constant Gdk_GC_Values_Mask := 2 ** 14;
GC_Line_Style : constant Gdk_GC_Values_Mask := 2 ** 15;
GC_Cap_Style : constant Gdk_GC_Values_Mask := 2 ** 16;
GC_Join_Style : constant Gdk_GC_Values_Mask := 2 ** 17;
Null_GC_Values : constant Gdk_GC_Values := null;
procedure Gdk_New
( | GC | : out Gdk_GC; |
Drawable | : Gdk.Gdk_Drawable); |
procedure Gdk_New
( | GC | : out Gdk_GC; |
Drawable | : Gdk.Gdk_Drawable; | |
Values | : Gdk_GC_Values; | |
Values_Mask | : Gdk_GC_Values_Mask); |
procedure Destroy
( | GC | : Gdk_GC); |
procedure Unref
( | GC | : Gdk_GC); |
procedure Get_Values
( | GC | : Gdk_GC; |
Values | : Gdk_GC_Values); |
procedure Set_Values
( | GC | : Gdk_GC; |
Values | : Gdk_GC_Values; | |
Mask | : Gdk_GC_Values_Mask); |
procedure Set_Foreground
( | GC | : Gdk_GC; |
Color | : Gdk.Color.Gdk_Color); |
procedure Set_Background
( | GC | : Gdk_GC; |
Color | : Gdk.Color.Gdk_Color); |
procedure Set_Font
( | GC | : Gdk_GC; |
Font | : Gdk.Font.Gdk_Font); |
procedure Set_Function
( | GC | : Gdk_GC; |
Func | : Gdk_Function); |
procedure Set_Tile
( | GC | : Gdk_GC; |
Tile | : Gdk.Gdk_Pixmap); |
procedure Set_Stipple
( | GC | : Gdk_GC; |
Stipple | : Gdk.Gdk_Pixmap); |
procedure Set_Clip_Mask
( | GC | : Gdk.GC.Gdk_GC; |
Mask | : Gdk.Gdk_Bitmap); |
procedure Set_Clip_Rectangle
( | GC | : Gdk_GC; |
Rectangle | : Gdk.Rectangle.Gdk_Rectangle); |
procedure Set_Clip_Rectangle
( | GC | : Gdk_GC; |
Rectangle | : Gdk.Rectangle.Gdk_Rectangle_Access := null); |
procedure Set_Clip_Region
( | GC | : Gdk_GC; |
Region | : Gdk.Region.Gdk_Region); |
procedure Set_Subwindow
( | GC | : Gdk_GC; |
Mode | : Gdk_Subwindow_Mode); |
procedure Set_Exposures
( | GC | : Gdk_GC; |
Exposures | : Boolean); |
procedure Set_Line_Attributes
( | GC | : Gdk_GC; |
Line_Width | : Gint; | |
Line_Style | : Gdk_Line_Style; | |
Cap_Style | : Gdk_Cap_Style; | |
Join_Style | : Gdk_Join_Style); |
procedure Set_Dashes
( | Gc | : Gdk_GC; |
Dash_Offset | : Gint; | |
Dash_List | : Guchar_Array); |
procedure Set_Colormap
( | Gc | : Gdk_GC; |
Colormap | : Gdk.Gdk_Colormap); |
function Get_Colormap
( | Gc | : Gdk_GC) return Gdk.Gdk_Colormap; |
procedure Set_Rgb_Fg_Color
( | Gc | : Gdk_GC; |
Color | : Gdk.Color.Gdk_Color); |
procedure Set_Rgb_Bg_Color
( | Gc | : Gdk_GC; |
Color | : Gdk.Color.Gdk_Color); |
function Gdk_New return Gdk_GC_Values;
procedure Set_Foreground
( | Values | : Gdk_GC_Values; |
Color | : Gdk.Color.Gdk_Color); |
procedure Set_Background
( | Values | : Gdk_GC_Values; |
Color | : Gdk.Color.Gdk_Color); |
procedure Set_Font
( | Values | : Gdk_GC_Values; |
Font | : Gdk.Font.Gdk_Font); |
procedure Set_Function
( | Values | : Gdk_GC_Values; |
Func | : Gdk_Function); |
procedure Set_Fill
( | Values | : Gdk_GC_Values; |
Fill | : Gdk_Fill); |
procedure Set_Ts_Origin
( | Values | : Gdk_GC_Values; |
X, Y | : Gint); |
procedure Set_Clip_Origin
( | Values | : Gdk_GC_Values; |
X, Y | : Gint); |
procedure Set_Subwindow
( | Values | : Gdk_GC_Values; |
Mode | : Gdk_Subwindow_Mode); |
procedure Set_Exposures
( | Values | : Gdk_GC_Values; |
Exposures | : Boolean); |
procedure Set_Line_Attributes
( | Values | : Gdk_GC_Values; |
Line_Width | : Gint; | |
Line_Style | : Gdk_Line_Style; | |
Cap_Style | : Gdk_Cap_Style; | |
Join_Style | : Gdk_Join_Style); |
A graphic context is a structure that describes all the attributes used by the drawing functions in Gdk.
The colors, line styles, Fill styles and so on are defined through this structure.
On X11 systems, this structure is stored directly on the XServer, which speeds up the transfer of the drawing attributes a lot. Instead of transferring all of them every time you call one of the drawing functions, you simply specify which GC you want to use.
Thus, it is recommended to create as many GCs as you need, instead of creating a single one that is modified every time you need to modify one of the attributes.
On Unix machines, you should have a look at the external utility 'xgc' which demonstrates all the basic settings of the graphic contexts.
Binding from C File version 1.3.6
<testgtk>create_gc.adb</testgtk> <see>Gtk.GC</see>