# Module Gdk.GC

    module GC: sig .. end

    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 -> gdkFunction -> unit

    val set_fill : 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 -> gdkSubwindowMode -> unit

    val set_exposures : Gdk.gc -> bool -> unit

    val set_line_attributes : Gdk.gc ->
           width:int ->
           style:gdkLineStyle ->
           cap:gdkCapStyle -> join: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 : `gdkFunction`;`
`` | `fill : `gdkFill`;`
`` | `tile : `Gdk.pixmap option`;`
`` | `stipple : `Gdk.pixmap option`;`
`` | `clip_mask : `Gdk.bitmap option`;`
`` | `subwindow_mode : `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 : `gdkLineStyle`;`
`` | `cap_style : `gdkCapStyle`;`
`` | `join_style : `gdkJoinStyle`;`

}

    val get_values : Gdk.gc -> values