X11 Specific Support

X11 Specific Support — X11 specific API

Synopsis

void                clutter_x11_set_display             (Display *xdpy);
void                clutter_x11_disable_event_retrieval (void);
ClutterStage*       clutter_x11_get_stage_from_window   (Window win);
ClutterX11FilterReturn clutter_x11_handle_event         (XEvent *xevent);
Display*            clutter_x11_get_default_display     (void);
int                 clutter_x11_get_default_screen      (void);
Window              clutter_x11_get_root_window         (void);
XVisualInfo*        clutter_x11_get_stage_visual        (ClutterStage *stage);
Window              clutter_x11_get_stage_window        (ClutterStage *stage);
gboolean            clutter_x11_set_stage_foreign       (ClutterStage *stage,
                                                         Window xwindow);
void                clutter_x11_trap_x_errors           (void);
gint                clutter_x11_untrap_x_errors         (void);

ClutterX11FilterReturn (*ClutterX11FilterFunc)          (XEvent *xev,
                                                         ClutterEvent *cev,
                                                         gpointer data);
enum                ClutterX11FilterReturn;
void                clutter_x11_add_filter              (ClutterX11FilterFunc func,
                                                         gpointer data);
void                clutter_x11_remove_filter           (ClutterX11FilterFunc func,
                                                         gpointer data);

enum                ClutterX11InputDeviceType;
                    ClutterX11XInputDevice;
enum                ClutterX11XInputEventTypes;
ClutterX11InputDeviceType clutter_x11_get_input_device_type
                                                        (ClutterX11XInputDevice *device);
GSList*             clutter_x11_get_input_devices       (void);
gboolean            clutter_x11_has_xinput              (void);

Description

The X11 backend for Clutter provides some specific API, allowing integration with the Xlibs API for embedding and manipulating the stage window, or for trapping X errors.

The ClutterX11 API is available since Clutter 0.6

Details

clutter_x11_set_display ()

void                clutter_x11_set_display             (Display *xdpy);

Sets the display connection clutter should use; must be called before clutter_init().

xdpy :

pointer to a X display connection.

Since 0.8


clutter_x11_disable_event_retrieval ()

void                clutter_x11_disable_event_retrieval (void);

Disables retrieval of X events in the main loop. Use to create event-less canvas or in conjunction with clutter_x11_handle_event.

This function can only be called before calling clutter_init().

Since 0.8


clutter_x11_get_stage_from_window ()

ClutterStage*       clutter_x11_get_stage_from_window   (Window win);

Gets the stage for a particular X window.

win :

an X Window ID

Returns :

The stage or NULL if a stage does not exist for the window.

Since 0.8


clutter_x11_handle_event ()

ClutterX11FilterReturn clutter_x11_handle_event         (XEvent *xevent);

This function processes a single X event; it can be used to hook into external X event retrieval (for example that done by GDK).

xevent :

pointer to XEvent structure

Returns :

ClutterX11FilterReturn indicating what the caller should do with the original event.

Since 0.8


clutter_x11_get_default_display ()

Display*            clutter_x11_get_default_display     (void);

Retrieves the pointer to the default display.

Returns :

the default display

Since 0.6


clutter_x11_get_default_screen ()

int                 clutter_x11_get_default_screen      (void);

Gets the number of the default X Screen object.

Returns :

the number of the default screen

Since 0.6


clutter_x11_get_root_window ()

Window              clutter_x11_get_root_window         (void);

Retrieves the root window.

Returns :

the id of the root window

Since 0.6


clutter_x11_get_stage_visual ()

XVisualInfo*        clutter_x11_get_stage_visual        (ClutterStage *stage);

Returns the stage XVisualInfo

stage :

a ClutterStage

Returns :

The XVisualInfo for the stage.

Since 0.4


clutter_x11_get_stage_window ()

Window              clutter_x11_get_stage_window        (ClutterStage *stage);

Gets the stages X Window.

stage :

a ClutterStage

Returns :

An XID for the stage window.

Since 0.4


clutter_x11_set_stage_foreign ()

gboolean            clutter_x11_set_stage_foreign       (ClutterStage *stage,
                                                         Window xwindow);

Target the ClutterStage to use an existing external X Window

stage :

a ClutterStage

xwindow :

an existing X Window id

Returns :

TRUE if foreign window is valid

Since 0.4


clutter_x11_trap_x_errors ()

void                clutter_x11_trap_x_errors           (void);

Traps every X error until clutter_x11_untrap_x_errors() is called.

Since 0.6


clutter_x11_untrap_x_errors ()

gint                clutter_x11_untrap_x_errors         (void);

Removes the X error trap and returns the current status.

Returns :

the trapped error code, or 0 for success

Since 0.4


ClutterX11FilterFunc ()

ClutterX11FilterReturn (*ClutterX11FilterFunc)          (XEvent *xev,
                                                         ClutterEvent *cev,
                                                         gpointer data);

Filter function for X11 native events.

xev :

Native X11 event structure

cev :

Clutter event structure

data :

user data passed to the filter function

Returns :

the result of the filtering

Since 0.6


enum ClutterX11FilterReturn

typedef enum {
  CLUTTER_X11_FILTER_CONTINUE,
  CLUTTER_X11_FILTER_TRANSLATE,
  CLUTTER_X11_FILTER_REMOVE
} ClutterX11FilterReturn;

Return values for the ClutterX11FilterFunc function.

CLUTTER_X11_FILTER_CONTINUE

The event was not handled, continues the processing

CLUTTER_X11_FILTER_TRANSLATE

Native event translated into a Clutter event, stops the processing

CLUTTER_X11_FILTER_REMOVE

Remove the event, stops the processing

Since 0.6


clutter_x11_add_filter ()

void                clutter_x11_add_filter              (ClutterX11FilterFunc func,
                                                         gpointer data);

Adds an event filter function.

func :

a filter function

data :

user data to be passed to the filter function, or NULL

Since 0.6


clutter_x11_remove_filter ()

void                clutter_x11_remove_filter           (ClutterX11FilterFunc func,
                                                         gpointer data);

Removes the given filter function.

func :

a filter function

data :

user data to be passed to the filter function, or NULL

Since 0.6


enum ClutterX11InputDeviceType

typedef enum {
  CLUTTER_X11_XINPUT_POINTER_DEVICE,
  CLUTTER_X11_XINPUT_KEYBOARD_DEVICE,
  CLUTTER_X11_XINPUT_EXTENSION_DEVICE
} ClutterX11InputDeviceType;


ClutterX11XInputDevice

typedef struct _ClutterX11XInputDevice ClutterX11XInputDevice;


enum ClutterX11XInputEventTypes

typedef enum {
  CLUTTER_X11_XINPUT_KEY_PRESS_EVENT = 0,
  CLUTTER_X11_XINPUT_KEY_RELEASE_EVENT,
  CLUTTER_X11_XINPUT_BUTTON_PRESS_EVENT,
  CLUTTER_X11_XINPUT_BUTTON_RELEASE_EVENT,
  CLUTTER_X11_XINPUT_MOTION_NOTIFY_EVENT,
  CLUTTER_X11_XINPUT_LAST_EVENT
} ClutterX11XInputEventTypes;


clutter_x11_get_input_device_type ()

ClutterX11InputDeviceType clutter_x11_get_input_device_type
                                                        (ClutterX11XInputDevice *device);

device :

Returns :


clutter_x11_get_input_devices ()

GSList*             clutter_x11_get_input_devices       (void);

Returns :


clutter_x11_has_xinput ()

gboolean            clutter_x11_has_xinput              (void);

Returns :