### Function

# Gtkaccelerator_parse_with_keycode

#### Declaration [src]

    gboolean
    gtk_accelerator_parse_with_keycode (
      const char* accelerator,
      GdkDisplay* display,
      guint* accelerator_key,
      guint** accelerator_codes,
      GdkModifierType* accelerator_mods
    )

#### Description [src]

Parses a string representing an accelerator.

This is similar to `gtk_accelerator_parse()` but handles keycodes as well. This is only useful for system-level components, applications should use `gtk_accelerator_parse()` instead.

If `accelerator_codes` is given and the result stored in it is non-`NULL`, the result must be freed with g_free().

If a keycode is present in the accelerator and no `accelerator_codes` is given, the parse will fail.

If the parse fails, `accelerator_key`, `accelerator_mods` and `accelerator_codes` will be set to 0 (zero).

#### Parameters

`accelerator`

  Type: `const char*`

  String representing an accelerator.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`display`

  Type: `GdkDisplay`

  The `GdkDisplay` to look up `accelerator_codes` in.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`accelerator_key`

  Type: `guint*`

  Return location for accelerator keyval.

  The argument will be set by the function.
  The argument can be `NULL`.

`accelerator_codes`

  Type: An array of `guint*`

  return location for accelerator keycodes.

  The argument will be set by the function.
  The argument can be `NULL`.
  The array must be `NULL`-terminated.
  The caller of the function takes ownership of the data, and is responsible for freeing it.

`accelerator_mods`

  Type: `GdkModifierType`

  Return location for accelerator modifier mask.

  The argument will be set by the function.
  The argument can be `NULL`.
  The caller of the function takes ownership of the data, and is responsible for freeing it.

#### Return value

Type: `gboolean`

`TRUE` if parsing succeeded.