(define-object Button
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkButton")
  (gtype-id "GTK_TYPE_BUTTON")
)

(define-function gtk_button_new
  (is-constructor-of "GtkButton")
  (c-name "gtk_button_new")
  (caller-owns-return #t)
  (return-type "GtkWidget*")
)

(define-function gtk_button_new_with_label
  (is-constructor-of "GtkButton")
  (c-name "gtk_button_new_with_label")
  (caller-owns-return #t)
  (return-type "GtkWidget*")
  (parameters
    '("const-gchar*" "label")
  )
)

(define-function gtk_button_new_with_mnemonic
  (is-constructor-of "GtkButton")
  (c-name "gtk_button_new_with_mnemonic")
  (caller-owns-return #t)
  (return-type "GtkWidget*")
  (parameters
    '("const-gchar*" "label")
  )
)

(define-function gtk_button_new_from_stock
  (is-constructor-of "GtkButton")
  (c-name "gtk_button_new_from_stock")
  (caller-owns-return #t)
  (return-type "GtkWidget*")
  (parameters
    '("const-gchar*" "stock_id")
  )
)

(define-method clicked
  (of-object "GtkButton")
  (c-name "gtk_button_clicked")
  (return-type "none")
)

(define-method set_relief
  (of-object "GtkButton")
  (c-name "gtk_button_set_relief")
  (return-type "none")
  (parameters
    '("GtkReliefStyle" "newstyle")
  )
)

(define-method get_relief
  (of-object "GtkButton")
  (c-name "gtk_button_get_relief")
  (return-type "GtkReliefStyle")
)

(define-method set_label
  (of-object "GtkButton")
  (c-name "gtk_button_set_label")
  (return-type "none")
  (parameters
    '("const-gchar*" "label")
  )
)

(define-method get_label
  (of-object "GtkButton")
  (c-name "gtk_button_get_label")
  (return-type "const-gchar*")
)

(define-method set_use_underline
  (of-object "GtkButton")
  (c-name "gtk_button_set_use_underline")
  (return-type "none")
  (parameters
    '("gboolean" "use_underline")
  )
)

(define-method get_use_underline
  (of-object "GtkButton")
  (c-name "gtk_button_get_use_underline")
  (return-type "gboolean")
)

(define-method set_use_stock
  (of-object "GtkButton")
  (c-name "gtk_button_set_use_stock")
  (return-type "none")
  (parameters
    '("gboolean" "use_stock")
  )
)

(define-method get_use_stock
  (of-object "GtkButton")
  (c-name "gtk_button_get_use_stock")
  (return-type "gboolean")
)

(define-method set_focus_on_click
  (of-object "GtkButton")
  (c-name "gtk_button_set_focus_on_click")
  (return-type "none")
  (parameters
    '("gboolean" "focus_on_click")
  )
)

(define-method get_focus_on_click
  (of-object "GtkButton")
  (c-name "gtk_button_get_focus_on_click")
  (return-type "gboolean")
)

(define-method set_alignment
  (of-object "GtkButton")
  (c-name "gtk_button_set_alignment")
  (return-type "none")
  (parameters
    '("gfloat" "xalign")
    '("gfloat" "yalign")
  )
)

(define-method get_alignment
  (of-object "GtkButton")
  (c-name "gtk_button_get_alignment")
  (return-type "none")
  (parameters
    '("gfloat*" "xalign")
    '("gfloat*" "yalign")
  )
)

(define-method set_image
  (of-object "GtkButton")
  (c-name "gtk_button_set_image")
  (return-type "none")
  (parameters
    '("GtkWidget*" "image" (null-ok))
  )
)

(define-method get_image
  (of-object "GtkButton")
  (c-name "gtk_button_get_image")
  (return-type "GtkWidget*")
)

(define-virtual clicked
  (of-object "GtkButton")
  (return-type "none")
)

(define-method set_image_position
  (of-object "GtkButton")
  (c-name "gtk_button_set_image_position")
  (return-type "none")
  (parameters
    '("GtkPositionType" "position")
  )
)

(define-method get_image_position
  (of-object "GtkButton")
  (c-name "gtk_button_get_image_position")
  (return-type "GtkPositionType")
)

