Spice Display

Spice Display — a GTK display widget

Stability Level

Stable, unless otherwise indicated

Synopsis

#include <spice-client-gtk.h>

enum                SpiceDisplayKeyEvent;
SpiceDisplay *      spice_display_new                   (SpiceSession *session,
                                                         int channel_id);
SpiceDisplay *      spice_display_new_with_monitor      (SpiceSession *session,
                                                         gint channel_id,
                                                         gint monitor_id);
void                spice_display_mouse_ungrab          (SpiceDisplay *display);
void                spice_display_set_grab_keys         (SpiceDisplay *display,
                                                         SpiceGrabSequence *seq);
SpiceGrabSequence * spice_display_get_grab_keys         (SpiceDisplay *display);
void                spice_display_send_keys             (SpiceDisplay *display,
                                                         const guint *keyvals,
                                                         int nkeyvals,
                                                         SpiceDisplayKeyEvent kind);
GdkPixbuf *         spice_display_get_pixbuf            (SpiceDisplay *display);

                    SpiceGrabSequence;
SpiceGrabSequence * spice_grab_sequence_new             (guint nkeysyms,
                                                         guint *keysyms);
SpiceGrabSequence * spice_grab_sequence_new_from_string (const gchar *str);
SpiceGrabSequence * spice_grab_sequence_copy            (SpiceGrabSequence *sequence);
void                spice_grab_sequence_free            (SpiceGrabSequence *sequence);
gchar *             spice_grab_sequence_as_string       (SpiceGrabSequence *sequence);

Object Hierarchy

  GBoxed
   +----SpiceGrabSequence

Description

A GTK widget that displays a SPICE server. It sends keyboard/mouse events and can also share clipboard...

Arbitrary key events can be sent thanks to spice_display_send_keys().

The widget will optionally grab the keyboard and the mouse when focused if the properties "grab-keyboard" and "grab-mouse" are TRUE respectively. It can be ungrabbed with spice_display_mouse_ungrab(), and by setting a key combination with spice_display_set_grab_keys().

Finally, spice_display_get_pixbuf() will take a screenshot of the current display and return an GdkPixbuf (that you can then easily save to disk).

Details

enum SpiceDisplayKeyEvent

typedef enum {
	SPICE_DISPLAY_KEY_EVENT_PRESS = 1,
	SPICE_DISPLAY_KEY_EVENT_RELEASE = 2,
	SPICE_DISPLAY_KEY_EVENT_CLICK = 3,
} SpiceDisplayKeyEvent;

Constants for key events.

SPICE_DISPLAY_KEY_EVENT_PRESS

key press

SPICE_DISPLAY_KEY_EVENT_RELEASE

key release

SPICE_DISPLAY_KEY_EVENT_CLICK

key click (press and release)

spice_display_new ()

SpiceDisplay *      spice_display_new                   (SpiceSession *session,
                                                         int channel_id);

Creates a new SpiceDisplay widget.

session :

a SpiceSession

channel_id :

the display channel ID to associate with SpiceDisplay

Returns :

a new SpiceDisplay widget.

spice_display_new_with_monitor ()

SpiceDisplay *      spice_display_new_with_monitor      (SpiceSession *session,
                                                         gint channel_id,
                                                         gint monitor_id);

Creates a new SpiceDisplay widget associated with the monitor id.

session :

a SpiceSession

channel_id :

the display channel ID to associate with SpiceDisplay

monitor_id :

the monitor id within the display channel

Returns :

a new SpiceDisplay widget.

Since 0.13


spice_display_mouse_ungrab ()

void                spice_display_mouse_ungrab          (SpiceDisplay *display);

Ungrab the mouse.

display :

a SpiceDisplay

spice_display_set_grab_keys ()

void                spice_display_set_grab_keys         (SpiceDisplay *display,
                                                         SpiceGrabSequence *seq);

Set the key combination to grab/ungrab the keyboard. The default is "Control L + Alt L".

display :

the display widget

seq :

key sequence. [transfer none]

spice_display_get_grab_keys ()

SpiceGrabSequence * spice_display_get_grab_keys         (SpiceDisplay *display);

Finds the current grab key combination for the display.

display :

the display widget

Returns :

the current grab key combination. [transfer none]

spice_display_send_keys ()

void                spice_display_send_keys             (SpiceDisplay *display,
                                                         const guint *keyvals,
                                                         int nkeyvals,
                                                         SpiceDisplayKeyEvent kind);

Send keyval press/release events to the display.

display :

The SpiceDisplay

keyvals :

Keyval array. [array length=nkeyvals]

nkeyvals :

Length of keyvals

kind :

SpiceDisplayKeyEvent action

spice_display_get_pixbuf ()

GdkPixbuf *         spice_display_get_pixbuf            (SpiceDisplay *display);

Take a screenshot of the display.

display :

a SpiceDisplay

Returns :

a GdkPixbuf with the screenshot image buffer. [transfer full]

SpiceGrabSequence

typedef struct {
} SpiceGrabSequence;

An opaque type that represents a grab sequence.


spice_grab_sequence_new ()

SpiceGrabSequence * spice_grab_sequence_new             (guint nkeysyms,
                                                         guint *keysyms);

Creates a new grab sequence from a list of keysym values

nkeysyms :

length of keysyms

keysyms :

the keysym values. [array length=nkeysyms]

Returns :

a new grab sequence object. [transfer full]

spice_grab_sequence_new_from_string ()

SpiceGrabSequence * spice_grab_sequence_new_from_string (const gchar *str);

Creates a new SpiceGrabSequence from the string representation.

str :

a string of '+' separated key names (ex: "Control_L+Alt_L")

Returns :

a new SpiceGrabSequence.

spice_grab_sequence_copy ()

SpiceGrabSequence * spice_grab_sequence_copy            (SpiceGrabSequence *sequence);

Creates a copy of the sequence.

sequence :

sequence to copy

Returns :

a copy of sequence. [transfer full]

spice_grab_sequence_free ()

void                spice_grab_sequence_free            (SpiceGrabSequence *sequence);

Free sequence.

sequence :

a SpiceGrabSequence

spice_grab_sequence_as_string ()

gchar *             spice_grab_sequence_as_string       (SpiceGrabSequence *sequence);

Creates a string representing the sequence.

sequence :

a SpiceGrabSequence

Returns :

a newly allocated string representing the key sequence. [transfer full]