From 80463f0e2ed6a951ab5449b987d18bb47daf23e8 Mon Sep 17 00:00:00 2001 From: Amitesh Singh Date: Wed, 6 Dec 2017 14:34:51 +0900 Subject: [PATCH] interface: add Efl.Canvas.Pointer intf for pointer related functions. and remove pointer_inside function from Efl.Canvas{} --- src/Makefile_Efl.am | 1 + src/lib/efl/CMakeLists.txt | 1 + src/lib/efl/Efl.h | 1 + src/lib/efl/interfaces/efl_canvas.eo | 25 --------------- src/lib/efl/interfaces/efl_canvas_pointer.eo | 32 ++++++++++++++++++++ src/lib/efl/interfaces/efl_interfaces_main.c | 1 + src/lib/elementary/efl_ui_win.c | 2 +- src/lib/elementary/efl_ui_win.eo | 4 +-- src/lib/evas/canvas/evas_canvas.eo | 4 +-- src/lib/evas/canvas/evas_main.c | 6 ++-- 10 files changed, 44 insertions(+), 33 deletions(-) create mode 100644 src/lib/efl/interfaces/efl_canvas_pointer.eo diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index 0584602894..d623743d77 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -14,6 +14,7 @@ efl_eolian_legacy_files = \ efl_eolian_files = \ lib/efl/interfaces/efl_canvas.eo \ + lib/efl/interfaces/efl_canvas_pointer.eo \ lib/efl/interfaces/efl_config.eo \ lib/efl/interfaces/efl_control.eo \ lib/efl/interfaces/efl_dup.eo \ diff --git a/src/lib/efl/CMakeLists.txt b/src/lib/efl/CMakeLists.txt index 6637bedfc4..e6efc3b680 100644 --- a/src/lib/efl/CMakeLists.txt +++ b/src/lib/efl/CMakeLists.txt @@ -5,6 +5,7 @@ set(LIBRARIES eo eina) set(PUBLIC_EO_FILES interfaces/efl_animator.eo interfaces/efl_canvas.eo + interfaces/efl_canvas_pointer.eo interfaces/efl_config.eo interfaces/efl_container.eo interfaces/efl_content.eo diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h index fa66d95044..e80e5de9d9 100644 --- a/src/lib/efl/Efl.h +++ b/src/lib/efl/Efl.h @@ -134,6 +134,7 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command; /* Canvas & UI */ #include "interfaces/efl_canvas.eo.h" +#include "interfaces/efl_canvas_pointer.eo.h" #include "interfaces/efl_ui_view.eo.h" #include "interfaces/efl_ui_model_connect.eo.h" #include "interfaces/efl_ui_factory.eo.h" diff --git a/src/lib/efl/interfaces/efl_canvas.eo b/src/lib/efl/interfaces/efl_canvas.eo index 98da146f5f..98d70a3851 100644 --- a/src/lib/efl/interfaces/efl_canvas.eo +++ b/src/lib/efl/interfaces/efl_canvas.eo @@ -193,31 +193,6 @@ interface Efl.Canvas () pos: Eina.Position2D; [[The pointer position in pixels.]] } } - @property pointer_inside { - get { - [[Returns whether the mouse pointer is logically inside the - canvas. - - When this function is called it will return a value of either - $false or $true, depending on whether a pointer,in or pointer,out - event has been called previously. - - A return value of $true indicates the mouse is logically - inside the canvas, and $false implies it is logically - outside the canvas. - - A canvas begins with the mouse being assumed outside ($false). - ]] - } - keys { - seat: Efl.Input.Device @optional; [[The seat to consider, if $null - then the default seat will be used.]] - } - values { - inside: bool; [[$true if the mouse pointer is inside the canvas, - $false otherwise]] - } - } /* FIXME: maybe not necessary if gesture supports this */ pointer_iterate @const { [[Returns an iterator over the current known pointer positions. diff --git a/src/lib/efl/interfaces/efl_canvas_pointer.eo b/src/lib/efl/interfaces/efl_canvas_pointer.eo new file mode 100644 index 0000000000..57111a7896 --- /dev/null +++ b/src/lib/efl/interfaces/efl_canvas_pointer.eo @@ -0,0 +1,32 @@ +import efl_input_device; + +interface Efl.Canvas.Pointer () +{ + methods { + @property pointer_inside { + get { + [[Returns whether the mouse pointer is logically inside the + canvas. + + When this function is called it will return a value of either + $false or $true, depending on whether a pointer,in or pointer,out + event has been called previously. + + A return value of $true indicates the mouse is logically + inside the canvas, and $false implies it is logically + outside the canvas. + + A canvas begins with the mouse being assumed outside ($false). + ]] + } + keys { + seat: Efl.Input.Device @optional; [[The seat to consider, if $null + then the default seat will be used.]] + } + values { + inside: bool; [[$true if the mouse pointer is inside the canvas, + $false otherwise]] + } + } + } +} diff --git a/src/lib/efl/interfaces/efl_interfaces_main.c b/src/lib/efl/interfaces/efl_interfaces_main.c index 29a021e9c5..930e55ee35 100644 --- a/src/lib/efl/interfaces/efl_interfaces_main.c +++ b/src/lib/efl/interfaces/efl_interfaces_main.c @@ -39,6 +39,7 @@ #include "interfaces/efl_gfx_size_hint.eo.c" #include "interfaces/efl_canvas.eo.c" +#include "interfaces/efl_canvas_pointer.eo.c" #include "interfaces/efl_vpath.eo.c" diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index f608b75ffd..b238f66297 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -2383,7 +2383,7 @@ _efl_ui_win_efl_canvas_pointer_position_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data } EOLIAN static Eina_Bool -_efl_ui_win_efl_canvas_pointer_inside_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, Eo *dev) +_efl_ui_win_efl_canvas_pointer_pointer_inside_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, Eo *dev) { return efl_canvas_pointer_inside_get(sd->evas, dev); } diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index 989a3ca16f..766913bf34 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -157,7 +157,7 @@ enum Efl.Ui.Win.Move_Resize_Mode right = (1 << 4) [[Start resizing window to the right]] } -class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Efl.Access.Window, +class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Efl.Canvas.Pointer, Efl.Access.Window, Efl.Access.Component, Efl.Access.Widget.Action, Efl.Content, Efl.Input.State, Efl.Input.Interface, Efl.Screen, Efl.Gfx.Size.Hint, Efl.Text, Efl.Config.Global, Efl.Part, @@ -825,7 +825,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Efl.Access.Window, Efl.Gfx.Size.Hint.hint_max { set; } Efl.Text.text { get; set; } Efl.Canvas.pointer_position { get; } - Efl.Canvas.pointer_inside { get; } + Efl.Canvas.Pointer.pointer_inside { get; } Efl.Canvas.pointer_iterate; Efl.Canvas.image_max_size { get; } Efl.Canvas.smart_objects_calculate; diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo index 6da7eef058..72292a86c8 100644 --- a/src/lib/evas/canvas/evas_canvas.eo +++ b/src/lib/evas/canvas/evas_canvas.eo @@ -1,7 +1,7 @@ import efl_input_types; class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface, - Efl.Loop_User) + Efl.Loop_User, Efl.Canvas.Pointer) { [[Evas canvas class]] legacy_prefix: evas; @@ -1129,7 +1129,7 @@ class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface, Efl.Object.provider_find; Efl.Loop_User.loop { get; } //Efl.Canvas.seats; - Efl.Canvas.pointer_inside { get; } + Efl.Canvas.Pointer.pointer_inside { get; } Efl.Canvas.device { get; } Efl.Canvas.seat { get; } } diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index 60d2b7b4a1..28c0da1829 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -634,9 +634,9 @@ _evas_canvas_pointer_button_down_mask_by_device_get(Eo *eo_e EINA_UNUSED, } EOLIAN static Eina_Bool -_evas_canvas_efl_canvas_pointer_inside_get(Eo *eo_e EINA_UNUSED, - Evas_Public_Data *e, - Eo *dev) +_evas_canvas_efl_canvas_pointer_pointer_inside_get(Eo *eo_e EINA_UNUSED, + Evas_Public_Data *e, + Efl_Input_Device *dev) { Evas_Pointer_Data *pdata = _evas_pointer_data_by_device_get(e, dev); if (!pdata) return EINA_FALSE;