## XklEngine

XklEngine

## Synopsis

                        XklEnginePrivate;
    enum                XklEngineStateChange;
    enum                XklEngineFeatures;
                        XklState;
                        XklEngine;
    GType               xkl_engine_features_get_type        (void);
    GType               xkl_engine_listen_modes_get_type    (void);
    GType               xkl_engine_state_change_get_type    (void);

## Object Hierarchy

      GObject
       +----XklEngine

## Properties

      "backendName"              gchar*                : Read
      "default-group"            guint                 : Read
      "display"                  gpointer              : Read / Write / Construct Only
      "features"                 XklEngineFeatures     : Read
      "indicators-handling"      gboolean              : Read
      "max-num-groups"           guint                 : Read
      "num-groups"               guint                 : Read
      "secondary-groups-mask"    guint                 : Read

## Signals

      "X-config-changed"                               : Run Last
      "X-new-device"                                   : Run Last
      "X-state-changed"                                : Run Last
      "new-toplevel-window"                            : Run Last

## Description

## Details

### XklEnginePrivate

    typedef struct _XklEnginePrivate XklEnginePrivate;

### enum XklEngineStateChange

    typedef enum {
    		GROUP_CHANGED,
    		INDICATORS_CHANGED
    } XklEngineStateChange;

The type of the keyboard state change

`GROUP_CHANGED` | Group was changed
`INDICATORS_CHANGED` | Indicators were changed

### enum XklEngineFeatures

    typedef enum {
     /*< flags >*/
    		XKLF_CAN_TOGGLE_INDICATORS = 1 << 0,
    		XKLF_CAN_OUTPUT_CONFIG_AS_ASCII = 1 << 1,
    		XKLF_CAN_OUTPUT_CONFIG_AS_BINARY = 1 << 2,
    		XKLF_MULTIPLE_LAYOUTS_SUPPORTED = 1 << 3,
    		XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT = 1 << 4,
    		XKLF_DEVICE_DISCOVERY = 1 << 5
    } XklEngineFeatures;

A set of flags used to indicate the capabilities of the active backend

`XKLF_CAN_TOGGLE_INDICATORS` | Backend allows to toggls indicators on/off
`XKLF_CAN_OUTPUT_CONFIG_AS_ASCII` | Backend allows writing ASCII representation of the configuration
`XKLF_CAN_OUTPUT_CONFIG_AS_BINARY` | Backend allows writing binary representation of the configuration
`XKLF_MULTIPLE_LAYOUTS_SUPPORTED` | Backend supports multiple layouts
`XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT` | Backend requires manual configuration, some daemon should do xkl_start_listen(engine,XKLL_MANAGE_LAYOUTS);
`XKLF_DEVICE_DISCOVERY` | Backend supports device discovery, can notify

### XklState

    typedef struct _XklState XklState;

### XklEngine

    typedef struct _XklEngine XklEngine;

### xkl_engine_features_get_type ()

    GType               xkl_engine_features_get_type        (void);

### xkl_engine_listen_modes_get_type ()

    GType               xkl_engine_listen_modes_get_type    (void);

### xkl_engine_state_change_get_type ()

    GType               xkl_engine_state_change_get_type    (void);

## Property Details

### The `"backendName"` property

      "backendName"              gchar*                : Read

Backend name.

Default value: NULL

### The `"default-group"` property

      "default-group"            guint                 : Read

Default group.

Allowed values: <= 256

Default value: 0

### The `"display"` property

      "display"                  gpointer              : Read / Write / Construct Only

X Display pointer.

### The `"features"` property

      "features"                 XklEngineFeatures     : Read

Backend features.

### The `"indicators-handling"` property

      "indicators-handling"      gboolean              : Read

Whether engine should handle indicators.

Default value: FALSE

### The `"max-num-groups"` property

      "max-num-groups"           guint                 : Read

Max number of groups.

Allowed values: <= 256

Default value: 0

### The `"num-groups"` property

      "num-groups"               guint                 : Read

Current number of groups.

Allowed values: <= 256

Default value: 0

### The `"secondary-groups-mask"` property

      "secondary-groups-mask"    guint                 : Read

Secondary groups mask.

Allowed values: <= 256

Default value: 0

## Signal Details

### The `"X-config-changed"` signal

    void                user_function                      (XklEngine *xklengine,
                                                            gpointer   user_data)      : Run Last

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

### The `"X-new-device"` signal

    void                user_function                      (XklEngine *xklengine,
                                                            gpointer   user_data)      : Run Last

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

### The `"X-state-changed"` signal

    void                user_function                      (XklEngine           *xklengine,
                                                            XklEngineStateChange arg1,
                                                            gint                 arg2,
                                                            gboolean             arg3,
                                                            gpointer             user_data)      : Run Last

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

### The `"new-toplevel-window"` signal

    gint                user_function                      (XklEngine *xklengine,
                                                            glong      arg1,
                                                            glong      arg2,
                                                            gpointer   user_data)      : Run Last

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