(* $Id$ *)

prefix "Gtk"
initializer "ml_gtkbin_init"

header {
open Gtk
}

oheader{
open GtkPackProps
}

classes {
  GtkAdjustment "Gtk.adjustment obj"
}

class Bin abstract : Container {}

class Alignment set wrap : Bin {
  "xalign"               gfloat               : Read / Write
  "yalign"               gfloat               : Read / Write
  "xscale"               gfloat               : Read / Write
  "yscale"               gfloat               : Read / Write
  "bottom-padding"       guint                : Read / Write / NoSet
  "left-padding"         guint                : Read / Write / NoSet
  "right-padding"        guint                : Read / Write / NoSet
  "top-padding"          guint                : Read / Write / NoSet
}

class Frame set wrap : Bin {
  "label"                gchararray_opt       : Read / Write
  "label-widget"         GtkWidget_opt        : Read / Write / NoSet
  "label-xalign"         gfloat               : Read / Write
  "label-yalign"         gfloat               : Read / Write
  "shadow-type"          GtkShadowType        : Read / Write
}

class AspectFrame set wrap : Frame {
  "obey-child"           gboolean             : Read / Write
  "ratio"                gfloat               : Read / Write
  "xalign"               gfloat               : Read / Write
  "yalign"               gfloat               : Read / Write
}

class EventBox : Bin {}

class Invisible : Bin {
  "screen"               GdkScreen            : Read / Write
}

class HandleBox set wrap wrapsig : Bin {
  "handle-position"      GtkPositionType      : Read / Write
  "snap-edge"            GtkPositionType      : Read / Write
  "shadow_type"          GtkShadowType        : Read / Write
  "snap-edge-set"        gboolean             : Read / Write / NoSet / NoWrap
  signal child_attached : GtkWidget
  signal child_detached : GtkWidget
}

class ScrolledWindow set wrap : Bin {
  "hadjustment"          GtkAdjustment        : Read / Write / Construct
  "vadjustment"          GtkAdjustment        : Read / Write / Construct
  "hscrollbar-policy"(hpolicy)  GtkPolicyType : Read / Write
  "vscrollbar-policy"(vpolicy)  GtkPolicyType : Read / Write
  "window-placement"(placement) GtkCornerType : Read / Write
  "shadow-type"          GtkShadowType        : Read / Write
  method add_with_viewport : "[>`widget] obj -> unit"
  signal move_focus_out : GtkDirectionType
  signal scroll_child :   GtkScrollType gboolean
}

class Viewport set wrap : Bin {
  "hadjustment"          GtkAdjustment        : Read / Write
  "vadjustment"          GtkAdjustment        : Read / Write
  "shadow-type"          GtkShadowType        : Read / Write
  signal set_scroll_adjustments : GtkAdjustment_opt GtkAdjustment_opt
}

class Expander set wrap wrapsig : Bin {
  "expanded"             gboolean             : Read / Write / Construct
  "label"                gchararray           : Read / Write / Construct
  "label-widget"         GtkWidget            : Read / Write / NoSet
  "spacing"              gint                 : Read / Write
  "use-underline"        gboolean             : Read / Write / Construct
  signal activate
}
