## GimpController GimpController — Pluggable GIMP input controller modules. |

## Synopsis

    enum                GimpControllerEventType;
                        GimpControllerEventAny;
                        GimpControllerEventTrigger;
                        GimpControllerEventValue;
    union               GimpControllerEvent;
                        GimpController;
    GimpController*     gimp_controller_new                 (GType controller_type);
    gint                gimp_controller_get_n_events        (GimpController *controller);
    const gchar*        gimp_controller_get_event_name      (GimpController *controller,
                                                             gint event_id);
    const gchar*        gimp_controller_get_event_blurb     (GimpController *controller,
                                                             gint event_id);
    gboolean            gimp_controller_event               (GimpController *controller,
                                                             const GimpControllerEvent *event);

## Object Hierarchy

      GObject
       +----GimpController

## Implemented Interfaces

GimpController implements GimpConfigInterface.

## Properties

      "name"                     gchararray            : Read / Write / Construct
      "state"                    gchararray            : Read / Write / Construct

## Signals

      "event"                                          : Run Last

## Description

An abstract interface for implementing arbitrary input controllers.

## Details

### enum GimpControllerEventType

    typedef enum
    {
      GIMP_CONTROLLER_EVENT_TRIGGER,
      GIMP_CONTROLLER_EVENT_VALUE
    } GimpControllerEventType;

### GimpControllerEventAny

    typedef struct {
      GimpControllerEventType  type;
      GimpController          *source;
      gint                     event_id;
    } GimpControllerEventAny;

### GimpControllerEventTrigger

    typedef struct {
      GimpControllerEventType  type;
      GimpController          *source;
      gint                     event_id;
    } GimpControllerEventTrigger;

### GimpControllerEventValue

    typedef struct {
      GimpControllerEventType  type;
      GimpController          *source;
      gint                     event_id;
      GValue                   value;
    } GimpControllerEventValue;

### union GimpControllerEvent

    union GimpControllerEvent
    {
      GimpControllerEventType    type;
      GimpControllerEventAny     any;
      GimpControllerEventTrigger trigger;
      GimpControllerEventValue   value;
    };

### GimpController

    typedef struct _GimpController GimpController;

### gimp_controller_new ()

    GimpController*     gimp_controller_new                 (GType controller_type);

`controller_type` : |
Returns : |

### gimp_controller_get_n_events ()

    gint                gimp_controller_get_n_events        (GimpController *controller);

`controller` : |
Returns : |

### gimp_controller_get_event_name ()

    const gchar*        gimp_controller_get_event_name      (GimpController *controller,
                                                             gint event_id);

`controller` : |
`event_id` : |
Returns : |

### gimp_controller_get_event_blurb ()

    const gchar*        gimp_controller_get_event_blurb     (GimpController *controller,
                                                             gint event_id);

`controller` : |
`event_id` : |
Returns : |

### gimp_controller_event ()

    gboolean            gimp_controller_event               (GimpController *controller,
                                                             const GimpControllerEvent *event);

`controller` : |
`event` : |
Returns : |

## Property Details

### The `"name"` property

      "name"                     gchararray            : Read / Write / Construct

Default value: "Unnamed Controller"

### The `"state"` property

      "state"                    gchararray            : Read / Write / Construct

Default value: "Unknown"

## Signal Details

### The `"event"` signal

    gboolean            user_function                      (GimpController *gimpcontroller,
                                                            gpointer        arg1,
                                                            gpointer        user_data)           : Run Last

`gimpcontroller` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.
Returns : |