;; -*- scheme -*-
;; These functions are only available on the Maemo platform (patched Gtk+).
;; So they are surrounded by #ifdefs in the gtkmm source code.

(define-flags GtkInputMode
  (in-module "Hildon")
  (c-name "HildonGtkInputMode")
  (gtype-id "HILDON_TYPE_GTK_INPUT_MODE")
  (values
    '("alpha" "HILDON_GTK_INPUT_MODE_ALPHA")
    '("numeric" "HILDON_GTK_INPUT_MODE_NUMERIC")
    '("special" "HILDON_GTK_INPUT_MODE_SPECIAL")
    '("hexa" "HILDON_GTK_INPUT_MODE_HEXA")
    '("tele" "HILDON_GTK_INPUT_MODE_TELE")
    '("full" "HILDON_GTK_INPUT_MODE_FULL")
    '("multiline" "HILDON_GTK_INPUT_MODE_MULTILINE")
    '("invisible" "HILDON_GTK_INPUT_MODE_INVISIBLE")
    '("autocap" "HILDON_GTK_INPUT_MODE_AUTOCAP")
    '("dictionary" "HILDON_GTK_INPUT_MODE_DICTIONARY")
  )
)

(define-enum Mode
  (in-module "Hildon")
  (c-name "HildonMode")
  (gtype-id "HILDON_TYPE_MODE")
  (values
    '("diablo" "HILDON_DIABLO")
    '("fremantle" "HILDON_FREMANTLE")
  )
)

(define-enum UIMode
  (in-module "Hildon")
  (c-name "HildonUIMode")
  (gtype-id "HILDON_TYPE_UI_MODE")
  (values
    '("normal" "HILDON_UI_MODE_NORMAL")
    '("edit" "HILDON_UI_MODE_EDIT")
  )
)

(define-flags SizeType
  (in-module "Hildon")
  (c-name "HildonSizeType")
  (gtype-id "HILDON_TYPE_SIZE_TYPE")
  (values
    '("auto-width" "HILDON_SIZE_AUTO_WIDTH")
    '("halfscreen-width" "HILDON_SIZE_HALFSCREEN_WIDTH")
    '("fullscreen-width" "HILDON_SIZE_FULLSCREEN_WIDTH")
    '("auto-height" "HILDON_SIZE_AUTO_HEIGHT")
    '("finger-height" "HILDON_SIZE_FINGER_HEIGHT")
    '("thumb-height" "HILDON_SIZE_THUMB_HEIGHT")
    '("auto" "HILDON_SIZE_AUTO")
  )
)

(define-function hildon_gtk_entry_set_input_mode
  (c-name "hildon_gtk_entry_set_input_mode")
  (return-type "none")
  (parameters
    '("GtkEntry*" "entry")
    '("HildonGtkInputMode" "input_mode")
  )
)

(define-function hildon_gtk_entry_get_input_mode
  (c-name "hildon_gtk_entry_get_input_mode")
  (return-type "HildonGtkInputMode")
  (parameters
    '("GtkEntry*" "entry")
  )
)

(define-function hildon_gtk_entry_set_progress_adjustment
  (c-name "hildon_gtk_entry_set_progress_adjustment")
  (return-type "none")
  (parameters
    '("GtkEntry*" "entry")
    '("GtkAdjustment*" "adjustment")
  )
)

(define-function hildon_gtk_file_chooser_install_properties
  (c-name "hildon_gtk_file_chooser_install_properties")
  (return-type "none")
  (parameters
    '("GObjectClass*" "klass")
  )
)

(define-function hildon_icon_view_get_row_header_func
  (c-name "hildon_icon_view_get_row_header_func")
  (return-type "HildonIconViewRowHeaderFunc")
  (parameters
    '("GtkIconView*" "icon_view")
  )
)

(define-function hildon_icon_view_set_row_header_func
  (c-name "hildon_icon_view_set_row_header_func")
  (return-type "none")
  (parameters
    '("GtkIconView*" "icon_view")
    '("HildonIconViewRowHeaderFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "destroy")
  )
)

(define-function hildon_icon_view_get_hildon_ui_mode
  (c-name "hildon_icon_view_get_hildon_ui_mode")
  (return-type "HildonUIMode")
  (parameters
    '("GtkIconView*" "icon_view")
  )
)

(define-function hildon_icon_view_set_hildon_ui_mode
  (c-name "hildon_icon_view_set_hildon_ui_mode")
  (return-type "none")
  (parameters
    '("GtkIconView*" "icon_view")
    '("HildonUIMode" "mode")
  )
)

(define-function hildon_gtk_im_context_filter_event
  (c-name "hildon_gtk_im_context_filter_event")
  (return-type "gboolean")
  (parameters
    '("GtkIMContext*" "context")
    '("GdkEvent*" "event")
  )
)

(define-function hildon_gtk_im_context_show
  (c-name "hildon_gtk_im_context_show")
  (return-type "none")
  (parameters
    '("GtkIMContext*" "context")
  )
)

(define-function hildon_gtk_im_context_hide
  (c-name "hildon_gtk_im_context_hide")
  (return-type "none")
  (parameters
    '("GtkIMContext*" "context")
  )
)

(define-function hildon_gtk_im_context_has_selection
  (c-name "hildon_gtk_im_context_has_selection")
  (return-type "gboolean")
  (parameters
    '("GtkIMContext*" "context")
  )
)

(define-function hildon_gtk_im_context_copy
  (c-name "hildon_gtk_im_context_copy")
  (return-type "none")
  (parameters
    '("GtkIMContext*" "context")
  )
)

(define-function hildon_gtk_im_context_cut
  (c-name "hildon_gtk_im_context_cut")
  (return-type "none")
  (parameters
    '("GtkIMContext*" "context")
  )
)

(define-function hildon_gtk_im_context_paste
  (c-name "hildon_gtk_im_context_paste")
  (return-type "none")
  (parameters
    '("GtkIMContext*" "context")
  )
)

(define-function hildon_gtk_text_view_set_input_mode
  (c-name "hildon_gtk_text_view_set_input_mode")
  (return-type "none")
  (parameters
    '("GtkTextView*" "text_view")
    '("HildonGtkInputMode" "mode")
  )
)

(define-function hildon_gtk_text_view_get_input_mode
  (c-name "hildon_gtk_text_view_get_input_mode")
  (return-type "HildonGtkInputMode")
  (parameters
    '("GtkTextView*" "text_view")
  )
)

(define-function hildon_tree_view_get_row_header_func
  (c-name "hildon_tree_view_get_row_header_func")
  (return-type "HildonTreeViewRowHeaderFunc")
  (parameters
    '("GtkTreeView*" "tree_view")
  )
)

(define-function hildon_tree_view_set_row_header_func
  (c-name "hildon_tree_view_set_row_header_func")
  (return-type "none")
  (parameters
    '("GtkTreeView*" "tree_view")
    '("HildonTreeViewRowHeaderFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "destroy")
  )
)

(define-function hildon_tree_view_get_hildon_ui_mode
  (c-name "hildon_tree_view_get_hildon_ui_mode")
  (return-type "HildonUIMode")
  (parameters
    '("GtkTreeView*" "tree_view")
  )
)

(define-function hildon_tree_view_set_hildon_ui_mode
  (c-name "hildon_tree_view_set_hildon_ui_mode")
  (return-type "none")
  (parameters
    '("GtkTreeView*" "tree_view")
    '("HildonUIMode" "mode")
  )
)

(define-function hildon_gtk_input_mode_get_type
  (c-name "hildon_gtk_input_mode_get_type")
  (return-type "GType")
)

(define-function hildon_mode_get_type
  (c-name "hildon_mode_get_type")
  (return-type "GType")
)

(define-function hildon_ui_mode_get_type
  (c-name "hildon_ui_mode_get_type")
  (return-type "GType")
)

(define-function hildon_size_type_get_type
  (c-name "hildon_size_type_get_type")
  (return-type "GType")
)

(define-function hildon_gtk_widget_set_theme_size
  (c-name "hildon_gtk_widget_set_theme_size")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
    '("HildonSizeType" "size")
  )
)
