sig
  val cast : 'Gobject.obj -> Gtk.notebook Gtk.obj
  module P :
    sig
      val enable_popup : ([> `notebook ], bool) Gobject.property
      val homogeneous : ([> `notebook ], bool) Gobject.property
      val page : ([> `notebook ], int) Gobject.property
      val scrollable : ([> `notebook ], bool) Gobject.property
      val show_border : ([> `notebook ], bool) Gobject.property
      val show_tabs : ([> `notebook ], bool) Gobject.property
      val tab_border : ([> `notebook ], int) Gobject.property
      val tab_hborder : ([> `notebook ], int) Gobject.property
      val tab_pos : ([> `notebook ], GtkEnums.position_type) Gobject.property
      val tab_vborder : ([> `notebook ], int) Gobject.property
    end
  module S :
    sig
      val switch_page :
        ([> `notebook ], Gpointer.boxed option -> int -> unit) GtkSignal.t
    end
  val create : Gtk.notebook Gobject.param list -> Gtk.notebook Gtk.obj
  external insert_page_menu :
    [> `notebook ] Gtk.obj ->
    [> `widget ] Gtk.obj ->
    tab_label:[> `widget ] Gtk.optobj ->
    menu_label:[> `widget ] Gtk.optobj -> ?pos:int -> int
    = "ml_gtk_notebook_insert_page_menu"
  external remove_page : [> `notebook ] Gtk.obj -> int -> unit
    = "ml_gtk_notebook_remove_page"
  external get_current_page : [> `notebook ] Gtk.obj -> int
    = "ml_gtk_notebook_get_current_page"
  external get_nth_page : [> `notebook ] Gtk.obj -> int -> Gtk.widget Gtk.obj
    = "ml_gtk_notebook_get_nth_page"
  external page_num : [> `notebook ] Gtk.obj -> [> `widget ] Gtk.obj -> int
    = "ml_gtk_notebook_page_num"
  external next_page : [> `notebook ] Gtk.obj -> unit
    = "ml_gtk_notebook_next_page"
  external prev_page : [> `notebook ] Gtk.obj -> unit
    = "ml_gtk_notebook_prev_page"
  external get_tab_label :
    [> `notebook ] Gtk.obj -> [> `widget ] Gtk.obj -> Gtk.widget Gtk.obj
    = "ml_gtk_notebook_get_tab_label"
  external set_tab_label :
    [> `notebook ] Gtk.obj ->
    [> `widget ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_notebook_set_tab_label"
  external get_menu_label :
    [> `notebook ] Gtk.obj -> [> `widget ] Gtk.obj -> Gtk.widget Gtk.obj
    = "ml_gtk_notebook_get_menu_label"
  external set_menu_label :
    [> `notebook ] Gtk.obj ->
    [> `widget ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_notebook_set_menu_label"
  external reorder_child :
    [> `notebook ] Gtk.obj -> [> `widget ] Gtk.obj -> int -> unit
    = "ml_gtk_notebook_reorder_child"
  val make_params :
    cont:(([> `notebook ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?enable_popup:bool ->
    ?homogeneous_tabs:bool ->
    ?scrollable:bool ->
    ?show_border:bool ->
    ?show_tabs:bool ->
    ?tab_border:int -> ?tab_pos:GtkEnums.position_type -> 'b
end