Evas: Move Object_Pointer_Mode to Efl.Event

This commit is contained in:
Jean-Philippe Andre 2016-06-17 11:32:25 +09:00
parent f2fafb8044
commit a50a0f5d76
4 changed files with 44 additions and 42 deletions

View File

@ -15,7 +15,7 @@ enum Efl.Pointer.Action
in, [[Mouse or pointer entered the object.]]
out, [[Mouse or pointer exited the object.]]
wheel, [[Mouse wheel scroll, horizontally or vertically.]]
axis, [[Joystick event.]]
axis, [[Axis event (pen, stick, ...).]]
}
enum Efl.Pointer.Flags
@ -41,3 +41,27 @@ enum Efl.Event.Flags
purposes and maybe some indications visually, but not
actually perform anything.]]
}
enum Efl.Event.Object_Pointer_Mode {
[[How the mouse pointer should be handled by EFL.
In the mode $autograb, when a mouse button is pressed down over an
object and held down, with the mouse pointer being moved outside of it,
the pointer still behaves as being bound to that object, albeit out
of its drawing region. When the button is released, the event will
be fed to the object, that may check if the final position is over it
or not and do something about it.
In the mode $nograb, the pointer will always be bound to the object
right below it.
]]
auto_grab, [[Default, X11-like.]]
no_grab, [[Pointer always bound to the object right below it.]]
no_grab_no_repeat_updown [[Useful on object with "repeat events" enabled,
where mouse/touch up and down events WON'T be
repeated to objects and these objects wont be
auto-grabbed.
@since 1.2
]]
}

View File

@ -371,6 +371,12 @@ typedef Efl_Text_Bidirectional_Type Evas_BiDi_Direction;
#define EVAS_BIDI_DIRECTION_RTL EFL_TEXT_BIDIRECTIONAL_TYPE_RTL
#define EVAS_BIDI_DIRECTION_INHERIT EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT
typedef Efl_Event_Object_Pointer_Mode Evas_Object_Pointer_Mode;
#define EVAS_OBJECT_POINTER_MODE_AUTOGRAB EFL_EVENT_OBJECT_POINTER_MODE_AUTO_GRAB
#define EVAS_OBJECT_POINTER_MODE_NOGRAB EFL_EVENT_OBJECT_POINTER_MODE_NO_GRAB
#define EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN EFL_EVENT_OBJECT_POINTER_MODE_NO_GRAB_NO_REPEAT_UPDOWN
struct _Evas_Engine_Info /** Generic engine information. Generic info is useless */
{
int magic; /**< Magic number */

View File

@ -22,28 +22,24 @@ abstract Evas.Object (Eo.Base, Evas.Common_Interface, Efl.Gfx, Efl.Gfx.Stack,
}
}
@property pointer_mode {
set {
[[Set pointer behavior.
[[Low-level pointer behaviour.
This function has direct effect on event callbacks related to
mouse.
This function has a direct effect on event callbacks related to
pointers (mouse, ...).
If $setting is EVAS_OBJECT_POINTER_MODE_AUTOGRAB, then when
mouse is down at this object, events will be restricted to
it as source, mouse moves, for example, will be emitted even
if outside this object area.
If the value is @Efl.Event.Object_Pointer_Mode.auto_grab (default),
then when mouse is pressed down over this object, events will be
restricted to it as source, mouse moves, for example, will be
emitted even when the pointer goes outside this objects
geometry.
If $setting is EVAS_OBJECT_POINTER_MODE_NOGRAB, then events
will be emitted just when inside this object area.
If the value is @Efl.Event.Object_Pointer_Mode.no_grab, then events
will be emitted just when inside this object area.
The default value is EVAS_OBJECT_POINTER_MODE_AUTOGRAB.
]]
}
get {
[[Determine how pointer will behave.]]
}
The default value is @Efl.Event.Object_Pointer_Mode.auto_grab.
]]
values {
pointer_mode: Evas.Object_Pointer_Mode; [[Desired behavior.]]
pointer_mode: Efl.Event.Object_Pointer_Mode;
}
}
@property render_op {

View File

@ -4,30 +4,6 @@ struct @extern Evas.Video_Surface; /* FIXME: The structure is full of the unsupp
type Evas.Modifier_Mask: ullong; [[An Evas modifier mask type]]
type Evas.Coord: int; [[A type for coordinates]]
enum Evas.Object_Pointer_Mode {
[[How the mouse pointer should be handled by Evas.
In the mode #EVAS_OBJECT_POINTER_MODE_AUTOGRAB, when a mouse button
is pressed down over an object and held, with the mouse pointer
being moved outside of it, the pointer still behaves as being bound
to that object, albeit out of its drawing region. When the button
is released, the event will be fed to the object, that may check if
the final position is over it or not and do something about it.
In the mode #EVAS_OBJECT_POINTER_MODE_NOGRAB, the pointer will
always be bound to the object right below it.
]]
autograb, [[default, X11-like]]
nograb, [[pointer always bound to the object right below it]]
nograb_no_repeat_updown [[useful on object with "repeat events" enabled,
where mouse/touch up and down events WONT be
repeated to objects and these objects wont be
auto-grabbed.
@since 1.2
]]
}
enum Evas.Display_Mode {
none = 0, [[Default mode]]
compress = 1, [[Use this mode when you want to give compress display mode