mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 04:22:05 +00:00
event: Add setters for ClutterEvent members
Creating a synthetic event requires direct access to the ClutterEvent union members; this access does not map in bindings to high-level languages, especially run-time bindings using GObject-Introspection. It's also midly annoying from C, as it unnecessarily exposes the guts of ClutterEvent - something we might want to fix in the future. http://bugzilla.clutter-project.org/show_bug.cgi?id=2575
This commit is contained in:
parent
26ec3efbff
commit
d3a7b7502e
@ -18,10 +18,6 @@ gpointer _clutter_event_get_platform_data (const ClutterEvent *eve
|
|||||||
|
|
||||||
void _clutter_event_push (const ClutterEvent *event,
|
void _clutter_event_push (const ClutterEvent *event,
|
||||||
gboolean do_copy);
|
gboolean do_copy);
|
||||||
void _clutter_event_set_device (ClutterEvent *event,
|
|
||||||
ClutterInputDevice *device);
|
|
||||||
void _clutter_event_set_source_device (ClutterEvent *event,
|
|
||||||
ClutterInputDevice *device);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@ -87,6 +87,15 @@ _clutter_event_get_platform_data (const ClutterEvent *event)
|
|||||||
return ((ClutterEventPrivate *) event)->platform_data;
|
return ((ClutterEventPrivate *) event)->platform_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*< private >
|
||||||
|
* _clutter_event_set_platform_data:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @data: a pointer to platform-specific data
|
||||||
|
*
|
||||||
|
* Sets the pointer to platform-specific data inside an event
|
||||||
|
*
|
||||||
|
* Since: 1.4
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
_clutter_event_set_platform_data (ClutterEvent *event,
|
_clutter_event_set_platform_data (ClutterEvent *event,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -131,6 +140,24 @@ clutter_event_get_time (const ClutterEvent *event)
|
|||||||
return event->any.time;
|
return event->any.time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_time:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @time_: the time of the event
|
||||||
|
*
|
||||||
|
* Sets the time of the event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_time (ClutterEvent *event,
|
||||||
|
guint32 time_)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
|
||||||
|
event->any.time = time_;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_state:
|
* clutter_event_get_state:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
@ -169,6 +196,46 @@ clutter_event_get_state (const ClutterEvent *event)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_state:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @state: the modifier state to set
|
||||||
|
*
|
||||||
|
* Sets the modifier state of the event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_state (ClutterEvent *event,
|
||||||
|
ClutterModifierType state)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
|
||||||
|
switch (event->type)
|
||||||
|
{
|
||||||
|
case CLUTTER_KEY_PRESS:
|
||||||
|
case CLUTTER_KEY_RELEASE:
|
||||||
|
event->key.modifier_state = state;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_BUTTON_PRESS:
|
||||||
|
case CLUTTER_BUTTON_RELEASE:
|
||||||
|
event->button.modifier_state = state;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_MOTION:
|
||||||
|
event->motion.modifier_state = state;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_SCROLL:
|
||||||
|
event->scroll.modifier_state = state;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_coords:
|
* clutter_event_get_coords:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
@ -231,6 +298,58 @@ clutter_event_get_coords (const ClutterEvent *event,
|
|||||||
*y = event_y;
|
*y = event_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_coords:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @x: the X coordinate of the event
|
||||||
|
* @y: the Y coordinate of the event
|
||||||
|
*
|
||||||
|
* Sets the coordinates of the @event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_coords (ClutterEvent *event,
|
||||||
|
gfloat x,
|
||||||
|
gfloat y)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
|
||||||
|
switch (event->type)
|
||||||
|
{
|
||||||
|
case CLUTTER_NOTHING:
|
||||||
|
case CLUTTER_KEY_PRESS:
|
||||||
|
case CLUTTER_KEY_RELEASE:
|
||||||
|
case CLUTTER_STAGE_STATE:
|
||||||
|
case CLUTTER_DESTROY_NOTIFY:
|
||||||
|
case CLUTTER_CLIENT_MESSAGE:
|
||||||
|
case CLUTTER_DELETE:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_ENTER:
|
||||||
|
case CLUTTER_LEAVE:
|
||||||
|
event->crossing.x = x;
|
||||||
|
event->crossing.y = y;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_BUTTON_PRESS:
|
||||||
|
case CLUTTER_BUTTON_RELEASE:
|
||||||
|
event->button.x = x;
|
||||||
|
event->button.y = y;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_MOTION:
|
||||||
|
event->motion.x = x;
|
||||||
|
event->motion.y = y;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLUTTER_SCROLL:
|
||||||
|
event->scroll.x = x;
|
||||||
|
event->scroll.y = y;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_source:
|
* clutter_event_get_source:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
@ -250,6 +369,25 @@ clutter_event_get_source (const ClutterEvent *event)
|
|||||||
return event->any.source;
|
return event->any.source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_source:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @actor: (allow-none): a #ClutterActor, or %NULL
|
||||||
|
*
|
||||||
|
* Sets the source #ClutterActor of @event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_source (ClutterEvent *event,
|
||||||
|
ClutterActor *actor)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (actor == NULL || CLUTTER_IS_ACTOR (actor));
|
||||||
|
|
||||||
|
event->any.source = actor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_stage:
|
* clutter_event_get_stage:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
@ -269,6 +407,28 @@ clutter_event_get_stage (const ClutterEvent *event)
|
|||||||
return event->any.stage;
|
return event->any.stage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_stage:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @stage: (allow-none): a #ClutterStage, or %NULL
|
||||||
|
*
|
||||||
|
* Sets the source #ClutterStage of the event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_stage (ClutterEvent *event,
|
||||||
|
ClutterStage *stage)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (stage == NULL || CLUTTER_IS_STAGE (stage));
|
||||||
|
|
||||||
|
if (event->any.stage == stage)
|
||||||
|
return;
|
||||||
|
|
||||||
|
event->any.stage = stage;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_flags:
|
* clutter_event_get_flags:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
@ -287,6 +447,28 @@ clutter_event_get_flags (const ClutterEvent *event)
|
|||||||
return event->any.flags;
|
return event->any.flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_flags:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @flags: a binary OR of #ClutterEventFlags values
|
||||||
|
*
|
||||||
|
* Sets the #ClutterEventFlags of @event
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_flags (ClutterEvent *event,
|
||||||
|
ClutterEventFlags flags)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
|
||||||
|
if (event->any.flags == flags)
|
||||||
|
return;
|
||||||
|
|
||||||
|
event->any.flags = flags;
|
||||||
|
event->any.flags |= CLUTTER_EVENT_FLAG_SYNTHETIC;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_related:
|
* clutter_event_get_related:
|
||||||
* @event: a #ClutterEvent of type %CLUTTER_ENTER or of
|
* @event: a #ClutterEvent of type %CLUTTER_ENTER or of
|
||||||
@ -308,6 +490,30 @@ clutter_event_get_related (const ClutterEvent *event)
|
|||||||
return event->crossing.related;
|
return event->crossing.related;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_related
|
||||||
|
* @event: a #ClutterEvent of type %CLUTTER_ENTER or %CLUTTER_LEAVE
|
||||||
|
* @actor: (allow-none): a #ClutterActor or %NULL
|
||||||
|
*
|
||||||
|
* Sets the related actor of a crossing event
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_related (ClutterEvent *event,
|
||||||
|
ClutterActor *actor)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (event->type == CLUTTER_ENTER ||
|
||||||
|
event->type == CLUTTER_LEAVE);
|
||||||
|
g_return_if_fail (actor == NULL || CLUTTER_IS_ACTOR (actor));
|
||||||
|
|
||||||
|
if (event->crossing.related == actor)
|
||||||
|
return;
|
||||||
|
|
||||||
|
event->crossing.related = actor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_scroll_direction:
|
* clutter_event_get_scroll_direction:
|
||||||
* @event: a #ClutterEvent of type %CLUTTER_SCROLL
|
* @event: a #ClutterEvent of type %CLUTTER_SCROLL
|
||||||
@ -327,6 +533,25 @@ clutter_event_get_scroll_direction (const ClutterEvent *event)
|
|||||||
return event->scroll.direction;
|
return event->scroll.direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_scroll_direction:
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
* @direction: the scrolling direction
|
||||||
|
*
|
||||||
|
* Sets the direction of the scrolling of @event
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_scroll_direction (ClutterEvent *event,
|
||||||
|
ClutterScrollDirection direction)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (event->type == CLUTTER_SCROLL);
|
||||||
|
|
||||||
|
event->scroll.direction = direction;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_button:
|
* clutter_event_get_button:
|
||||||
* @event: a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or
|
* @event: a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or
|
||||||
@ -348,6 +573,27 @@ clutter_event_get_button (const ClutterEvent *event)
|
|||||||
return event->button.button;
|
return event->button.button;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_button:
|
||||||
|
* @event: a #ClutterEvent or type %CLUTTER_BUTTON_PRESS or
|
||||||
|
* of type %CLUTTER_BUTTON_RELEASE
|
||||||
|
* @button: the button number
|
||||||
|
*
|
||||||
|
* Sets the button number of @event
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_button (ClutterEvent *event,
|
||||||
|
guint32 button)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (event->type == CLUTTER_BUTTON_PRESS ||
|
||||||
|
event->type == CLUTTER_BUTTON_RELEASE);
|
||||||
|
|
||||||
|
event->button.button = button;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_click_count:
|
* clutter_event_get_click_count:
|
||||||
* @event: a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or
|
* @event: a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or
|
||||||
@ -392,6 +638,27 @@ clutter_event_get_key_symbol (const ClutterEvent *event)
|
|||||||
return event->key.keyval;
|
return event->key.keyval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_key_symbol:
|
||||||
|
* @event: a #ClutterEvent of type %CLUTTER_KEY_PRESS
|
||||||
|
* or %CLUTTER_KEY_RELEASE
|
||||||
|
* @key_sym: the key symbol representing the key
|
||||||
|
*
|
||||||
|
* Sets the key symbol of @event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_key_symbol (ClutterEvent *event,
|
||||||
|
guint key_sym)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (event->type == CLUTTER_KEY_PRESS ||
|
||||||
|
event->type == CLUTTER_KEY_RELEASE);
|
||||||
|
|
||||||
|
event->key.keyval = key_sym;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_key_code:
|
* clutter_event_get_key_code:
|
||||||
* @event: a #ClutterEvent of type %CLUTTER_KEY_PRESS or
|
* @event: a #ClutterEvent of type %CLUTTER_KEY_PRESS or
|
||||||
@ -413,9 +680,31 @@ clutter_event_get_key_code (const ClutterEvent *event)
|
|||||||
return event->key.hardware_keycode;
|
return event->key.hardware_keycode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_key_code:
|
||||||
|
* @event: a #ClutterEvent of type %CLUTTER_KEY_PRESS
|
||||||
|
* or %CLUTTER_KEY_RELEASE
|
||||||
|
* @key_code: the keycode representing the key
|
||||||
|
*
|
||||||
|
* Sets the keycode of the @event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_key_code (ClutterEvent *event,
|
||||||
|
guint16 key_code)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (event->type == CLUTTER_KEY_PRESS ||
|
||||||
|
event->type == CLUTTER_KEY_RELEASE);
|
||||||
|
|
||||||
|
event->key.hardware_keycode = key_code;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_event_get_key_unicode:
|
* clutter_event_get_key_unicode:
|
||||||
* @event: A #ClutterKeyEvent
|
* @event: a #ClutterEvent of type %CLUTTER_KEY_PRESS
|
||||||
|
* or %CLUTTER_KEY_RELEASE
|
||||||
*
|
*
|
||||||
* Retrieves the unicode value for the key that caused @keyev.
|
* Retrieves the unicode value for the key that caused @keyev.
|
||||||
*
|
*
|
||||||
@ -434,6 +723,27 @@ clutter_event_get_key_unicode (const ClutterEvent *event)
|
|||||||
return clutter_keysym_to_unicode (event->key.keyval);
|
return clutter_keysym_to_unicode (event->key.keyval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_event_set_key_unicode:
|
||||||
|
* @event: a #ClutterEvent of type %CLUTTER_KEY_PRESS
|
||||||
|
* or %CLUTTER_KEY_RELEASE
|
||||||
|
* @key_unicode: the Unicode value representing the key
|
||||||
|
*
|
||||||
|
* Sets the Unicode value of @event.
|
||||||
|
*
|
||||||
|
* Since: 1.8
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_event_set_key_unicode (ClutterEvent *event,
|
||||||
|
guint32 key_unicode)
|
||||||
|
{
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (event->type == CLUTTER_KEY_PRESS ||
|
||||||
|
event->type == CLUTTER_KEY_RELEASE);
|
||||||
|
|
||||||
|
event->key.unicode_value = key_unicode;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_keysym_to_unicode:
|
* clutter_keysym_to_unicode:
|
||||||
* @keyval: a key symbol
|
* @keyval: a key symbol
|
||||||
@ -532,7 +842,7 @@ clutter_event_get_device_type (const ClutterEvent *event)
|
|||||||
/**
|
/**
|
||||||
* clutter_event_set_device:
|
* clutter_event_set_device:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
* @device: a #ClutterInputDevice
|
* @device: (allow-none): a #ClutterInputDevice, or %NULL
|
||||||
*
|
*
|
||||||
* Sets the device for @event.
|
* Sets the device for @event.
|
||||||
*
|
*
|
||||||
@ -652,7 +962,7 @@ clutter_event_get_device (const ClutterEvent *event)
|
|||||||
*
|
*
|
||||||
* Creates a new #ClutterEvent of the specified type.
|
* Creates a new #ClutterEvent of the specified type.
|
||||||
*
|
*
|
||||||
* Return value: A newly allocated #ClutterEvent.
|
* Return value: (transfer full): A newly allocated #ClutterEvent.
|
||||||
*/
|
*/
|
||||||
ClutterEvent *
|
ClutterEvent *
|
||||||
clutter_event_new (ClutterEventType type)
|
clutter_event_new (ClutterEventType type)
|
||||||
@ -679,7 +989,7 @@ clutter_event_new (ClutterEventType type)
|
|||||||
*
|
*
|
||||||
* Copies @event.
|
* Copies @event.
|
||||||
*
|
*
|
||||||
* Return value: A newly allocated #ClutterEvent
|
* Return value: (transfer full): A newly allocated #ClutterEvent
|
||||||
*/
|
*/
|
||||||
ClutterEvent *
|
ClutterEvent *
|
||||||
clutter_event_copy (const ClutterEvent *event)
|
clutter_event_copy (const ClutterEvent *event)
|
||||||
@ -853,8 +1163,6 @@ _clutter_event_push (const ClutterEvent *event,
|
|||||||
ClutterEvent *copy;
|
ClutterEvent *copy;
|
||||||
|
|
||||||
copy = clutter_event_copy (event);
|
copy = clutter_event_copy (event);
|
||||||
copy->any.flags |= CLUTTER_EVENT_FLAG_SYNTHETIC;
|
|
||||||
|
|
||||||
event = copy;
|
event = copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -979,58 +1287,26 @@ clutter_event_get_source_device (const ClutterEvent *event)
|
|||||||
return clutter_event_get_device (event);
|
return clutter_event_get_device (event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
/**
|
||||||
_clutter_event_set_device (ClutterEvent *event,
|
|
||||||
ClutterInputDevice *device)
|
|
||||||
{
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case CLUTTER_NOTHING:
|
|
||||||
case CLUTTER_STAGE_STATE:
|
|
||||||
case CLUTTER_DESTROY_NOTIFY:
|
|
||||||
case CLUTTER_CLIENT_MESSAGE:
|
|
||||||
case CLUTTER_DELETE:
|
|
||||||
case CLUTTER_ENTER:
|
|
||||||
case CLUTTER_LEAVE:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CLUTTER_BUTTON_PRESS:
|
|
||||||
case CLUTTER_BUTTON_RELEASE:
|
|
||||||
event->button.device = device;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CLUTTER_MOTION:
|
|
||||||
event->motion.device = device;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CLUTTER_SCROLL:
|
|
||||||
event->scroll.device = device;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CLUTTER_KEY_PRESS:
|
|
||||||
case CLUTTER_KEY_RELEASE:
|
|
||||||
event->key.device = device;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*< private >
|
|
||||||
* clutter_event_set_source_device:
|
* clutter_event_set_source_device:
|
||||||
* @event: a #ClutterEvent
|
* @event: a #ClutterEvent
|
||||||
* @device: a #ClutterInputDevice
|
* @device: (allow-none): a #ClutterInputDevice
|
||||||
*
|
*
|
||||||
* Sets the source #ClutterInputDevice for @event.
|
* Sets the source #ClutterInputDevice for @event.
|
||||||
*
|
*
|
||||||
* The #ClutterEvent must have been created using clutter_event_new().
|
* The #ClutterEvent must have been created using clutter_event_new().
|
||||||
*
|
*
|
||||||
* Since: 1.6
|
* Since: 1.8
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
_clutter_event_set_source_device (ClutterEvent *event,
|
clutter_event_set_source_device (ClutterEvent *event,
|
||||||
ClutterInputDevice *device)
|
ClutterInputDevice *device)
|
||||||
{
|
{
|
||||||
ClutterEventPrivate *real_event;
|
ClutterEventPrivate *real_event;
|
||||||
|
|
||||||
|
g_return_if_fail (event != NULL);
|
||||||
|
g_return_if_fail (device == NULL || CLUTTER_IS_INPUT_DEVICE (device));
|
||||||
|
|
||||||
if (!is_event_allocated (event))
|
if (!is_event_allocated (event))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ G_BEGIN_DECLS
|
|||||||
*
|
*
|
||||||
* Since: 0.6
|
* Since: 0.6
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum { /*< flags prefix=CLUTTER_EVENT >*/
|
||||||
CLUTTER_EVENT_NONE = 0,
|
CLUTTER_EVENT_NONE = 0,
|
||||||
CLUTTER_EVENT_FLAG_SYNTHETIC = 1 << 0
|
CLUTTER_EVENT_FLAG_SYNTHETIC = 1 << 0
|
||||||
} ClutterEventFlags;
|
} ClutterEventFlags;
|
||||||
@ -88,8 +88,7 @@ typedef enum {
|
|||||||
*
|
*
|
||||||
* Since: 0.4
|
* Since: 0.4
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum { /*< prefix=CLUTTER >*/
|
||||||
{
|
|
||||||
CLUTTER_NOTHING = 0,
|
CLUTTER_NOTHING = 0,
|
||||||
CLUTTER_KEY_PRESS,
|
CLUTTER_KEY_PRESS,
|
||||||
CLUTTER_KEY_RELEASE,
|
CLUTTER_KEY_RELEASE,
|
||||||
@ -116,8 +115,7 @@ typedef enum
|
|||||||
*
|
*
|
||||||
* Since: 0.4
|
* Since: 0.4
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum { /*< prefix=CLUTTER_SCROLL >*/
|
||||||
{
|
|
||||||
CLUTTER_SCROLL_UP,
|
CLUTTER_SCROLL_UP,
|
||||||
CLUTTER_SCROLL_DOWN,
|
CLUTTER_SCROLL_DOWN,
|
||||||
CLUTTER_SCROLL_LEFT,
|
CLUTTER_SCROLL_LEFT,
|
||||||
@ -134,8 +132,7 @@ typedef enum
|
|||||||
*
|
*
|
||||||
* Since: 0.4
|
* Since: 0.4
|
||||||
*/
|
*/
|
||||||
typedef enum
|
typedef enum {
|
||||||
{
|
|
||||||
CLUTTER_STAGE_STATE_FULLSCREEN = (1<<1),
|
CLUTTER_STAGE_STATE_FULLSCREEN = (1<<1),
|
||||||
CLUTTER_STAGE_STATE_OFFSCREEN = (1<<2),
|
CLUTTER_STAGE_STATE_OFFSCREEN = (1<<2),
|
||||||
CLUTTER_STAGE_STATE_ACTIVATED = (1<<3)
|
CLUTTER_STAGE_STATE_ACTIVATED = (1<<3)
|
||||||
@ -397,39 +394,67 @@ ClutterEvent * clutter_event_copy (const ClutterEvent
|
|||||||
void clutter_event_free (ClutterEvent *event);
|
void clutter_event_free (ClutterEvent *event);
|
||||||
|
|
||||||
ClutterEventType clutter_event_type (const ClutterEvent *event);
|
ClutterEventType clutter_event_type (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_flags (ClutterEvent *event,
|
||||||
|
ClutterEventFlags flags);
|
||||||
ClutterEventFlags clutter_event_get_flags (const ClutterEvent *event);
|
ClutterEventFlags clutter_event_get_flags (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_time (ClutterEvent *event,
|
||||||
|
guint32 time_);
|
||||||
guint32 clutter_event_get_time (const ClutterEvent *event);
|
guint32 clutter_event_get_time (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_state (ClutterEvent *event,
|
||||||
|
ClutterModifierType state);
|
||||||
ClutterModifierType clutter_event_get_state (const ClutterEvent *event);
|
ClutterModifierType clutter_event_get_state (const ClutterEvent *event);
|
||||||
gint clutter_event_get_device_id (const ClutterEvent *event);
|
void clutter_event_set_device (ClutterEvent *event,
|
||||||
ClutterInputDeviceType clutter_event_get_device_type (const ClutterEvent *event);
|
ClutterInputDevice *device);
|
||||||
ClutterInputDevice * clutter_event_get_device (const ClutterEvent *event);
|
ClutterInputDevice * clutter_event_get_device (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_source_device (ClutterEvent *event,
|
||||||
|
ClutterInputDevice *device);
|
||||||
|
|
||||||
ClutterInputDevice * clutter_event_get_source_device (const ClutterEvent *event);
|
ClutterInputDevice * clutter_event_get_source_device (const ClutterEvent *event);
|
||||||
ClutterActor * clutter_event_get_source (const ClutterEvent *event);
|
ClutterActor * clutter_event_get_source (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_stage (ClutterEvent *event,
|
||||||
|
ClutterStage *stage);
|
||||||
ClutterStage * clutter_event_get_stage (const ClutterEvent *event);
|
ClutterStage * clutter_event_get_stage (const ClutterEvent *event);
|
||||||
|
|
||||||
|
gint clutter_event_get_device_id (const ClutterEvent *event);
|
||||||
|
ClutterInputDeviceType clutter_event_get_device_type (const ClutterEvent *event);
|
||||||
|
|
||||||
|
void clutter_event_set_coords (ClutterEvent *event,
|
||||||
|
gfloat x,
|
||||||
|
gfloat y);
|
||||||
void clutter_event_get_coords (const ClutterEvent *event,
|
void clutter_event_get_coords (const ClutterEvent *event,
|
||||||
gfloat *x,
|
gfloat *x,
|
||||||
gfloat *y);
|
gfloat *y);
|
||||||
|
|
||||||
gdouble * clutter_event_get_axes (const ClutterEvent *event,
|
gdouble * clutter_event_get_axes (const ClutterEvent *event,
|
||||||
guint *n_axes);
|
guint *n_axes);
|
||||||
|
|
||||||
|
void clutter_event_set_key_symbol (ClutterEvent *event,
|
||||||
|
guint key_sym);
|
||||||
guint clutter_event_get_key_symbol (const ClutterEvent *event);
|
guint clutter_event_get_key_symbol (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_key_code (ClutterEvent *event,
|
||||||
|
guint16 key_code);
|
||||||
guint16 clutter_event_get_key_code (const ClutterEvent *event);
|
guint16 clutter_event_get_key_code (const ClutterEvent *event);
|
||||||
|
void clutter_event_set_key_unicode (ClutterEvent *event,
|
||||||
|
guint32 key_unicode);
|
||||||
guint32 clutter_event_get_key_unicode (const ClutterEvent *event);
|
guint32 clutter_event_get_key_unicode (const ClutterEvent *event);
|
||||||
|
|
||||||
|
void clutter_event_set_button (ClutterEvent *event,
|
||||||
|
guint32 button);
|
||||||
guint32 clutter_event_get_button (const ClutterEvent *event);
|
guint32 clutter_event_get_button (const ClutterEvent *event);
|
||||||
guint clutter_event_get_click_count (const ClutterEvent *event);
|
guint clutter_event_get_click_count (const ClutterEvent *event);
|
||||||
|
|
||||||
|
void clutter_event_set_related (ClutterEvent *event,
|
||||||
|
ClutterActor *actor);
|
||||||
ClutterActor * clutter_event_get_related (const ClutterEvent *event);
|
ClutterActor * clutter_event_get_related (const ClutterEvent *event);
|
||||||
|
|
||||||
|
void clutter_event_set_scroll_direction (ClutterEvent *event,
|
||||||
|
ClutterScrollDirection direction);
|
||||||
ClutterScrollDirection clutter_event_get_scroll_direction (const ClutterEvent *event);
|
ClutterScrollDirection clutter_event_get_scroll_direction (const ClutterEvent *event);
|
||||||
|
|
||||||
void clutter_event_set_device (ClutterEvent *event,
|
|
||||||
ClutterInputDevice *device);
|
|
||||||
|
|
||||||
guint32 clutter_keysym_to_unicode (guint keyval);
|
guint32 clutter_keysym_to_unicode (guint keyval);
|
||||||
|
|
||||||
guint32 clutter_get_current_event_time (void);
|
guint32 clutter_get_current_event_time (void);
|
||||||
|
|
||||||
G_CONST_RETURN ClutterEvent *clutter_get_current_event (void);
|
G_CONST_RETURN ClutterEvent *clutter_get_current_event (void);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
@ -657,11 +657,11 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
|
|
||||||
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->sourceid));
|
GINT_TO_POINTER (xev->sourceid));
|
||||||
_clutter_event_set_source_device (event, source_device);
|
clutter_event_set_source_device (event, source_device);
|
||||||
|
|
||||||
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->deviceid));
|
GINT_TO_POINTER (xev->deviceid));
|
||||||
_clutter_event_set_device (event, device);
|
clutter_event_set_device (event, device);
|
||||||
|
|
||||||
/* XXX keep this in sync with the evdev device manager */
|
/* XXX keep this in sync with the evdev device manager */
|
||||||
n = print_keysym (event->key.keyval, buffer, sizeof (buffer));
|
n = print_keysym (event->key.keyval, buffer, sizeof (buffer));
|
||||||
@ -729,11 +729,11 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
|
|
||||||
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->sourceid));
|
GINT_TO_POINTER (xev->sourceid));
|
||||||
_clutter_event_set_source_device (event, source_device);
|
clutter_event_set_source_device (event, source_device);
|
||||||
|
|
||||||
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->deviceid));
|
GINT_TO_POINTER (xev->deviceid));
|
||||||
_clutter_event_set_device (event, device);
|
clutter_event_set_device (event, device);
|
||||||
|
|
||||||
event->scroll.axes = translate_axes (event->scroll.device,
|
event->scroll.axes = translate_axes (event->scroll.device,
|
||||||
event->scroll.x,
|
event->scroll.x,
|
||||||
@ -760,11 +760,11 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
|
|
||||||
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->sourceid));
|
GINT_TO_POINTER (xev->sourceid));
|
||||||
_clutter_event_set_source_device (event, source_device);
|
clutter_event_set_source_device (event, source_device);
|
||||||
|
|
||||||
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->deviceid));
|
GINT_TO_POINTER (xev->deviceid));
|
||||||
_clutter_event_set_device (event, device);
|
clutter_event_set_device (event, device);
|
||||||
|
|
||||||
event->button.axes = translate_axes (event->button.device,
|
event->button.axes = translate_axes (event->button.device,
|
||||||
event->button.x,
|
event->button.x,
|
||||||
@ -813,11 +813,11 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
|
|
||||||
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
source_device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->sourceid));
|
GINT_TO_POINTER (xev->sourceid));
|
||||||
_clutter_event_set_source_device (event, source_device);
|
clutter_event_set_source_device (event, source_device);
|
||||||
|
|
||||||
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
device = g_hash_table_lookup (manager_xi2->devices_by_id,
|
||||||
GINT_TO_POINTER (xev->deviceid));
|
GINT_TO_POINTER (xev->deviceid));
|
||||||
_clutter_event_set_device (event, device);
|
clutter_event_set_device (event, device);
|
||||||
|
|
||||||
event->motion.axes = translate_axes (event->motion.device,
|
event->motion.axes = translate_axes (event->motion.device,
|
||||||
event->motion.x,
|
event->motion.x,
|
||||||
@ -890,7 +890,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
|||||||
}
|
}
|
||||||
|
|
||||||
clutter_event_set_device (event, device);
|
clutter_event_set_device (event, device);
|
||||||
_clutter_event_set_source_device (event, source_device);
|
clutter_event_set_source_device (event, source_device);
|
||||||
|
|
||||||
retval = CLUTTER_TRANSLATE_QUEUE;
|
retval = CLUTTER_TRANSLATE_QUEUE;
|
||||||
}
|
}
|
||||||
|
@ -1023,11 +1023,17 @@ clutter_event_free
|
|||||||
clutter_event_type
|
clutter_event_type
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
|
clutter_event_set_coords
|
||||||
clutter_event_get_coords
|
clutter_event_get_coords
|
||||||
|
clutter_event_set_state
|
||||||
clutter_event_get_state
|
clutter_event_get_state
|
||||||
|
clutter_event_set_time
|
||||||
clutter_event_get_time
|
clutter_event_get_time
|
||||||
|
clutter_event_set_source
|
||||||
clutter_event_get_source
|
clutter_event_get_source
|
||||||
|
clutter_event_set_stage
|
||||||
clutter_event_get_stage
|
clutter_event_get_stage
|
||||||
|
clutter_event_set_flags
|
||||||
clutter_event_get_flags
|
clutter_event_get_flags
|
||||||
clutter_event_get_axes
|
clutter_event_get_axes
|
||||||
|
|
||||||
@ -1038,27 +1044,34 @@ clutter_event_put
|
|||||||
clutter_events_pending
|
clutter_events_pending
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
|
clutter_event_set_button
|
||||||
clutter_event_get_button
|
clutter_event_get_button
|
||||||
clutter_event_get_click_count
|
clutter_event_get_click_count
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
|
clutter_event_set_key_symbol
|
||||||
clutter_event_get_key_symbol
|
clutter_event_get_key_symbol
|
||||||
|
clutter_event_set_key_code
|
||||||
clutter_event_get_key_code
|
clutter_event_get_key_code
|
||||||
|
clutter_event_set_key_unicode
|
||||||
clutter_event_get_key_unicode
|
clutter_event_get_key_unicode
|
||||||
clutter_keysym_to_unicode
|
clutter_keysym_to_unicode
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
|
clutter_event_set_related
|
||||||
clutter_event_get_related
|
clutter_event_get_related
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
|
clutter_event_set_scroll_direction
|
||||||
clutter_event_get_scroll_direction
|
clutter_event_get_scroll_direction
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
clutter_event_set_device
|
clutter_event_set_device
|
||||||
clutter_event_get_device
|
clutter_event_get_device
|
||||||
|
clutter_event_set_source_device
|
||||||
|
clutter_event_get_source_device
|
||||||
clutter_event_get_device_id
|
clutter_event_get_device_id
|
||||||
clutter_event_get_device_type
|
clutter_event_get_device_type
|
||||||
clutter_event_get_source_device
|
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
clutter_get_current_event_time
|
clutter_get_current_event_time
|
||||||
|
@ -300,40 +300,43 @@ text_password_char (void)
|
|||||||
clutter_actor_destroy (CLUTTER_ACTOR (text));
|
clutter_actor_destroy (CLUTTER_ACTOR (text));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static ClutterEvent *
|
||||||
init_event (ClutterKeyEvent *event)
|
init_event (void)
|
||||||
{
|
{
|
||||||
event->type = CLUTTER_KEY_PRESS;
|
ClutterEvent *retval = clutter_event_new (CLUTTER_KEY_PRESS);
|
||||||
event->time = 0; /* not needed */
|
|
||||||
event->flags = CLUTTER_EVENT_FLAG_SYNTHETIC;
|
clutter_event_set_time (retval, CLUTTER_CURRENT_TIME);
|
||||||
event->stage = NULL; /* not needed */
|
clutter_event_set_flags (retval, CLUTTER_EVENT_FLAG_SYNTHETIC);
|
||||||
event->source = NULL; /* not needed */
|
|
||||||
event->modifier_state = 0;
|
return retval;
|
||||||
event->hardware_keycode = 0; /* not needed */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
send_keyval (ClutterText *text, int keyval)
|
send_keyval (ClutterText *text, int keyval)
|
||||||
{
|
{
|
||||||
ClutterKeyEvent event;
|
ClutterEvent *event = init_event ();
|
||||||
|
|
||||||
init_event (&event);
|
/* Unicode should be ignored for cursor keys etc. */
|
||||||
event.keyval = keyval;
|
clutter_event_set_key_unicode (event, 0);
|
||||||
event.unicode_value = 0; /* should be ignored for cursor keys etc. */
|
clutter_event_set_key_symbol (event, keyval);
|
||||||
|
|
||||||
clutter_actor_event (CLUTTER_ACTOR (text), (ClutterEvent *) &event, FALSE);
|
clutter_actor_event (CLUTTER_ACTOR (text), event, FALSE);
|
||||||
|
|
||||||
|
clutter_event_free (event);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
send_unichar (ClutterText *text, gunichar unichar)
|
send_unichar (ClutterText *text, gunichar unichar)
|
||||||
{
|
{
|
||||||
ClutterKeyEvent event;
|
ClutterEvent *event = init_event ();
|
||||||
|
|
||||||
init_event (&event);
|
/* Key symbol should be ignored for printable characters */
|
||||||
event.keyval = 0; /* should be ignored for printable characters */
|
clutter_event_set_key_symbol (event, 0);
|
||||||
event.unicode_value = unichar;
|
clutter_event_set_key_unicode (event, unichar);
|
||||||
|
|
||||||
clutter_actor_event (CLUTTER_ACTOR (text), (ClutterEvent *) &event, FALSE);
|
clutter_actor_event (CLUTTER_ACTOR (text), event, FALSE);
|
||||||
|
|
||||||
|
clutter_event_free (event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user