seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=83bf7ed5fbb0693e22030500f46146e737bf35fb

commit 83bf7ed5fbb0693e22030500f46146e737bf35fb
Author: Daniel Juyung Seo <[email protected]>
Date:   Sun Apr 27 13:43:37 2014 +0900

    gengrid: Added elm_gengrid_wheel_disabled_set/get() APIs.
    
    Summary:
    The basic idea is from Abhinandan Aryadipta and I implemented this in
    upstream.
    Special thanks to JackDanielZ for eolian madness.
    
    @feature
    
    Reviewers: JackDanielZ
    
    Differential Revision: https://phab.enlightenment.org/D803
---
 src/bin/test_gengrid.c       | 15 +++++++++++++++
 src/lib/elm_gengrid.c        | 17 +++++++++++++++++
 src/lib/elm_gengrid.eo       | 31 +++++++++++++++++++++++++++++++
 src/lib/elm_widget_gengrid.h |  1 +
 4 files changed, 64 insertions(+)

diff --git a/src/bin/test_gengrid.c b/src/bin/test_gengrid.c
index 1f02d32..3beb6dc 100644
--- a/src/bin/test_gengrid.c
+++ b/src/bin/test_gengrid.c
@@ -298,6 +298,12 @@ multi_select_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
 }
 
 static void
+wheel_disable_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+   elm_gengrid_wheel_disabled_set(data, elm_check_state_get(obj));
+}
+
+static void
 clear_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
    api_data *api = data;
@@ -541,6 +547,15 @@ test_gengrid(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_i
    elm_box_pack_end(bx, ck);
    evas_object_show(ck);
 
+   ck = elm_check_add(win);
+   evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(ck, "Wheel Disable");
+   evas_object_smart_callback_add(ck, "changed", wheel_disable_cb,
+                                  api->grid);
+   elm_box_pack_end(bx, ck);
+   evas_object_show(ck);
+
    /* Gengrid Options 2 */
    bx = elm_box_add(win);
    elm_box_horizontal_set(bx, EINA_TRUE);
diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 1d0e1b6..12d1a2e 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -4341,6 +4341,23 @@ _elm_gengrid_elm_widget_focused_item_get(Eo *obj 
EINA_UNUSED, Elm_Gengrid_Data *
 }
 
 EOLIAN static void
+_elm_gengrid_wheel_disabled_set(Eo *obj, Elm_Gengrid_Data *sd, Eina_Bool 
disabled)
+{
+   disabled = !!disabled;
+   if (sd->wheel_disabled != disabled)
+     eo_do(obj,
+           elm_interface_scrollable_wheel_disabled_set(disabled));
+
+   sd->wheel_disabled = disabled;
+}
+
+EOLIAN static Eina_Bool
+_elm_gengrid_wheel_disabled_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd)
+{
+   return sd->wheel_disabled;
+}
+
+EOLIAN static void
 _elm_gengrid_class_constructor(Eo_Class *klass)
 {
    if (_elm_config->access_mode)
diff --git a/src/lib/elm_gengrid.eo b/src/lib/elm_gengrid.eo
index fe0380c..65ceb6b 100644
--- a/src/lib/elm_gengrid.eo
+++ b/src/lib/elm_gengrid.eo
@@ -429,6 +429,37 @@ class Elm_Gengrid (Elm_Layout, Elm_Interface_Scrollable, 
Evas_Clickable_Interfac
             return Elm_Object_Item *;
          }
       }
+      wheel_disabled {
+         set {
+            /*@
+            Enable or disable mouse wheel to be used to scroll the gengrid.
+
+            Mouse wheel can be used for the user to scroll up and down the 
gengrid.
+
+            It's enabled by default.
+
+            @see elm_gengrid_wheel_disabled_get()
+
+            @ingroup Gengrid */
+         }
+         get {
+            /*@
+            Get a value whether mouse wheel is enabled or not.
+
+            @return @c EINA_TRUE means gengrid wheel is disabled. @c 
EINA_FALSE indicates
+            it is enabled.
+
+            Mouse wheel can be used for the user to scroll up and down the 
gengrid.
+
+            @see elm_gengrid_wheel_disabled_set()
+
+            @ingroup Gengrid */
+         }
+         values {
+            Eina_Bool disabled; /*@ Use @c EINA_TRUE to disable mouse wheel or 
@c EINA_FALSE
+            to enable it. */
+         }
+      }
    }
    methods {
       item_insert_before {
diff --git a/src/lib/elm_widget_gengrid.h b/src/lib/elm_widget_gengrid.h
index 01af248..df67408 100644
--- a/src/lib/elm_widget_gengrid.h
+++ b/src/lib/elm_widget_gengrid.h
@@ -119,6 +119,7 @@ struct _Elm_Gengrid_Data
    Eina_Bool                             show_region : 1;
    Eina_Bool                             bring_in : 1;
    Eina_Bool                             mouse_down : 1; /**< a flag that 
mouse is down on the list at the moment. this flag is set to true on mouse and 
reset to false on mouse up */
+   Eina_Bool                             wheel_disabled : 1; /**< a flag that 
shows mouse wheel is disabled or not. */
 };
 
 struct Elm_Gen_Item_Type

-- 


Reply via email to