;; -*- scheme -*-
; object definitions ...
(define-object Application
  (in-module "Gtkosx")
  (parent "GObject")
  (c-name "GtkosxApplication")
  (gtype-id "GTKOSX_TYPE_APPLICATION")
)

;; Enumerations and flags ...

(define-enum ApplicationAttentionType
  (in-module "Gtkosx")
  (c-name "GtkosxApplicationAttentionType")
  (gtype-id "GTKOSX_TYPE_APPLICATION_ATTENTION_TYPE")
  (values
    '("critical-request" "CRITICAL_REQUEST")
    '("info-request" "INFO_REQUEST")
  )
)


;; From gtkosxapplication.h

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

(define-function gtkosx_application_get
  (c-name "gtkosx_application_get")
  (return-type "GtkosxApplication*")
)

(define-method ready
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_ready")
  (return-type "none")
)

(define-method set_use_quartz_accelerators
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_use_quartz_accelerators")
  (return-type "none")
  (parameters
    '("gboolean" "use_quartz_accelerators")
  )
)

(define-method use_quartz_accelerators
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_use_quartz_accelerators")
  (return-type "gboolean")
)

(define-method set_menu_bar
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_menu_bar")
  (return-type "none")
  (parameters
    '("GtkMenuShell*" "menu_shell")
  )
)

(define-method sync_menubar
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_sync_menubar")
  (return-type "none")
)

(define-method insert_app_menu_item
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_insert_app_menu_item")
  (return-type "none")
  (parameters
    '("GtkWidget*" "menu_item")
    '("gint" "index")
  )
)

(define-method set_window_menu
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_window_menu")
  (return-type "none")
  (parameters
    '("GtkMenuItem*" "menu_item")
  )
)

(define-method set_help_menu
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_help_menu")
  (return-type "none")
  (parameters
    '("GtkMenuItem*" "menu_item")
  )
)

(define-method set_dock_menu
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_dock_menu")
  (return-type "none")
  (parameters
    '("GtkMenuShell*" "menu_shell")
  )
)

(define-method set_dock_icon_pixbuf
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_dock_icon_pixbuf")
  (return-type "none")
  (parameters
    '("GdkPixbuf*" "pixbuf")
  )
)

(define-method set_dock_icon_resource
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_set_dock_icon_resource")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "type")
    '("const-gchar*" "subdir")
  )
)

(define-method attention_request
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_attention_request")
  (return-type "gint")
  (parameters
    '("GtkosxApplicationAttentionType" "type")
  )
)

(define-method cancel_attention_request
  (of-object "GtkosxApplication")
  (c-name "gtkosx_application_cancel_attention_request")
  (return-type "none")
  (parameters
    '("gint" "id")
  )
)

(define-function gtkosx_application_get_bundle_path
  (c-name "gtkosx_application_get_bundle_path")
  (return-type "gchar*")
)

(define-function gtkosx_application_get_resource_path
  (c-name "gtkosx_application_get_resource_path")
  (return-type "gchar*")
)

(define-function gtkosx_application_get_executable_path
  (c-name "gtkosx_application_get_executable_path")
  (return-type "gchar*")
)

(define-function gtkosx_application_get_bundle_id
  (c-name "gtkosx_application_get_bundle_id")
  (return-type "gchar*")
)

(define-function gtkosx_application_get_bundle_info
  (c-name "gtkosx_application_get_bundle_info")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)


