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
This commit is contained in:
Daniel Juyung Seo 2014-04-27 13:43:37 +09:00
parent 4df87d5959
commit 535fe6bd97
4 changed files with 64 additions and 0 deletions

View File

@ -297,6 +297,12 @@ multi_select_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
elm_gengrid_multi_select_set(data, elm_check_state_get(obj));
}
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)
{
@ -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);

View File

@ -4340,6 +4340,23 @@ _elm_gengrid_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_Gengrid_Data *
return sd->focused_item;
}
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)
{

View File

@ -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 {

View File

@ -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