`sig
type gdkFunction = [ `COPY | `INVERT | `XOR ]
type gdkFill = [ `OPAQUE_STIPPLED | `SOLID | `STIPPLED | `TILED ]
type gdkSubwindowMode = [ `CLIP_BY_CHILDREN | `INCLUDE_INFERIORS ]
type gdkLineStyle = [ `DOUBLE_DASH | `ON_OFF_DASH | `SOLID ]
type gdkCapStyle = [ `BUTT | `NOT_LAST | `PROJECTING | `ROUND ]
type gdkJoinStyle = [ `BEVEL | `MITER | `ROUND ]
val create : [> `drawable ] Gobject.obj -> Gdk.gc
val set_foreground : Gdk.gc -> Gdk.color -> unit
val set_background : Gdk.gc -> Gdk.color -> unit
val set_font : Gdk.gc -> Gdk.font -> unit
val set_function : Gdk.gc -> Gdk.GC.gdkFunction -> unit
val set_fill : Gdk.gc -> Gdk.GC.gdkFill -> unit
val set_tile : Gdk.gc -> Gdk.pixmap -> unit
val set_stipple : Gdk.gc -> Gdk.pixmap -> unit
val set_ts_origin : Gdk.gc -> x:int -> y:int -> unit
val set_clip_origin : Gdk.gc -> x:int -> y:int -> unit
val set_clip_mask : Gdk.gc -> Gdk.bitmap -> unit
val set_clip_rectangle : Gdk.gc -> Gdk.Rectangle.t -> unit
val set_clip_region : Gdk.gc -> Gdk.region -> unit
val set_subwindow : Gdk.gc -> Gdk.GC.gdkSubwindowMode -> unit
val set_exposures : Gdk.gc -> bool -> unit
val set_line_attributes :
Gdk.gc ->
width:int ->
style:Gdk.GC.gdkLineStyle ->
cap:Gdk.GC.gdkCapStyle -> join:Gdk.GC.gdkJoinStyle -> unit
val set_dashes : Gdk.gc -> offset:int -> int list -> unit
val copy : dst:Gdk.gc -> Gdk.gc -> unit
type values = {
foreground : Gdk.color;
background : Gdk.color;
font : Gdk.font option;
fonction : Gdk.GC.gdkFunction;
fill : Gdk.GC.gdkFill;
tile : Gdk.pixmap option;
stipple : Gdk.pixmap option;
clip_mask : Gdk.bitmap option;
subwindow_mode : Gdk.GC.gdkSubwindowMode;
ts_x_origin : int;
ts_y_origin : int;
clip_x_origin : int;
clip_y_origin : int;
graphics_exposures : bool;
line_width : int;
line_style : Gdk.GC.gdkLineStyle;
cap_style : Gdk.GC.gdkCapStyle;
join_style : Gdk.GC.gdkJoinStyle;
}
val get_values : Gdk.gc -> Gdk.GC.values
end`