(define-object Keymap
  (in-module "Gdk")
  (parent "GObject")
  (c-name "GdkKeymap")
  (gtype-id "GDK_TYPE_KEYMAP")
)

(define-method lookup_key
  (of-object "GdkKeymap")
  (c-name "gdk_keymap_lookup_key")
  (return-type "guint")
  (parameters
    '("const-GdkKeymapKey*" "key")
  )
)

(define-method translate_keyboard_state
  (of-object "GdkKeymap")
  (c-name "gdk_keymap_translate_keyboard_state")
  (return-type "gboolean")
  (parameters
    '("guint" "hardware_keycode")
    '("GdkModifierType" "state")
    '("gint" "group")
    '("guint*" "keyval")
    '("gint*" "effective_group")
    '("gint*" "level")
    '("GdkModifierType*" "consumed_modifiers")
  )
)

(define-method get_entries_for_keyval
  (of-object "GdkKeymap")
  (c-name "gdk_keymap_get_entries_for_keyval")
  (return-type "gboolean")
  (parameters
    '("guint" "keyval")
    '("GdkKeymapKey**" "keys")
    '("gint*" "n_keys")
  )
)

(define-method get_entries_for_keycode
  (of-object "GdkKeymap")
  (c-name "gdk_keymap_get_entries_for_keycode")
  (return-type "gboolean")
  (parameters
    '("guint" "hardware_keycode")
    '("GdkKeymapKey**" "keys")
    '("guint**" "keyvals")
    '("gint*" "n_entries")
  )
)

(define-method get_direction
  (of-object "GdkKeymap")
  (c-name "gdk_keymap_get_direction")
  (return-type "PangoDirection")
)

(define-virtual direction_changed
  (of-object "GdkKeymap")
  (return-type "none")
)

(define-virtual keys_changed
  (of-object "GdkKeymap")
  (return-type "none")
)

