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

## Synopsis

    enum                GimpControllerEventType;
    struct              GimpControllerEventAny;
    struct              GimpControllerEventTrigger;
    struct              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"                     gchar*                : Read / Write / Construct
      "state"                    gchar*                : 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;

Event types for GimpController.

`GIMP_CONTROLLER_EVENT_TRIGGER` | the event is a simple trigger
`GIMP_CONTROLLER_EVENT_VALUE` | the event carries a double value

### struct GimpControllerEventAny

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

### struct GimpControllerEventTrigger

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

### struct GimpControllerEventValue

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

### 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);

### gimp_controller_get_n_events ()

    gint                gimp_controller_get_n_events        (GimpController *controller);

### gimp_controller_get_event_name ()

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

### gimp_controller_get_event_blurb ()

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

### gimp_controller_event ()

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

## Property Details

### The `"name"` property

      "name"                     gchar*                : Read / Write / Construct

Default value: "Unnamed Controller"

### The `"state"` property

      "state"                    gchar*                : 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.
`user_data` : | user data set when the signal handler was connected.