raster pushed a commit to branch master.

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

commit c336820fb032fc5efff93cf91e4ed0a6183b032a
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Mon Mar 24 17:59:50 2014 +0900

    Revert "adding focus direction for gengrid"
    
    This reverts commit 4fe82cc740eda0c6b50ee09aedcf173aac1e775d.
---
 .gitignore                                         |   2 -
 config/default/base.src                            |   2 +-
 config/mobile/base.src                             |   2 +-
 config/standard/base.src                           |   2 +-
 configure.ac                                       |   1 -
 src/bin/test.c                                     |   2 -
 src/bin/test_gengrid.c                             | 115 -----
 src/lib/elm_gengrid.c                              |  92 +---
 src/lib/elm_gengrid_common.h                       |  10 -
 src/lib/elm_widget_gengrid.h                       |  11 -
 src/modules/Makefile.am                            |   3 +-
 src/modules/gengrid_focus_hook/Makefile.am         |  38 --
 .../gengrid_focus_hook/gengrid_focus_hook.c        | 491 ---------------------
 13 files changed, 6 insertions(+), 765 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0944c10..84e5f7e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,5 +52,3 @@ tags
 *.gmo
 /config.cache-env
 /compile
-build.conf
-.gitignore
diff --git a/config/default/base.src b/config/default/base.src
index 2917363..c786049 100644
--- a/config/default/base.src
+++ b/config/default/base.src
@@ -39,7 +39,7 @@ group "Elm_Config" struct {
   value "finger_size" int: 40;
   value "fps" double: 60.0;
   value "theme" string: "default";
-  value "modules" string: 
"prefs>prefs_iface:access_output>access/api:datetime_input_ctxpopup>datetime/api:gengrid_focus_hook>gengrid_focus/api";
+  value "modules" string: 
"prefs>prefs_iface:access_output>access/api:datetime_input_ctxpopup>datetime/api";
   value "tooltip_delay" double: 1.0;
   value "cursor_engine_only" uchar: 1;
   value "focus_highlight_enable" uchar: 0;
diff --git a/config/mobile/base.src b/config/mobile/base.src
index de9111f..60a1521 100644
--- a/config/mobile/base.src
+++ b/config/mobile/base.src
@@ -39,7 +39,7 @@ group "Elm_Config" struct {
   value "finger_size" int: 40;
   value "fps" double: 60.0;
   value "theme" string: "default";
-  value "modules" string: 
"prefs>prefs_iface:access_output>access/api:datetime_input_ctxpopup>datetime/api:gengrid_focus_hook>gengrid_focus/api";
+  value "modules" string: 
"prefs>prefs_iface:access_output>access/api:datetime_input_ctxpopup>datetime/api";
   value "tooltip_delay" double: 1.0;
   value "cursor_engine_only" uchar: 1;
   value "focus_highlight_enable" uchar: 0;
diff --git a/config/standard/base.src b/config/standard/base.src
index 88bd1b4..838d958 100644
--- a/config/standard/base.src
+++ b/config/standard/base.src
@@ -39,7 +39,7 @@ group "Elm_Config" struct {
   value "finger_size" int: 10;
   value "fps" double: 60.0;
   value "theme" string: "default";
-  value "modules" string: 
"prefs>prefs_iface:access_output>access/api:datetime_input_ctxpopup>datetime/api:gengrid_focus_hook>gengrid_focus/api";
+  value "modules" string: 
"prefs>prefs_iface:access_output>access/api:datetime_input_ctxpopup>datetime/api";
   value "tooltip_delay" double: 1.0;
   value "cursor_engine_only" uchar: 1;
   value "focus_highlight_enable" uchar: 0;
diff --git a/configure.ac b/configure.ac
index c3149c1..fcae239 100644
--- a/configure.ac
+++ b/configure.ac
@@ -726,7 +726,6 @@ src/modules/Makefile
 src/modules/prefs/Makefile
 src/modules/access_output/Makefile
 src/modules/datetime_input_ctxpopup/Makefile
-src/modules/gengrid_focus_hook/Makefile
 src/modules/test_entry/Makefile
 src/modules/test_map/Makefile
 src/edje_externals/Makefile
diff --git a/src/bin/test.c b/src/bin/test.c
index 7e6c437..1dd840c 100644
--- a/src/bin/test.c
+++ b/src/bin/test.c
@@ -130,7 +130,6 @@ void test_gengrid(void *data, Evas_Object *obj, void 
*event_info);
 void test_gengrid2(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid3(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid_item_styles(void *data, Evas_Object *obj, void *event_info);
-void test_gengrid_focus_direction(void *data, Evas_Object *obj, void 
*event_info);
 void test_gengrid4(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid_speed(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid_focus(void *data, Evas_Object *obj, void *event_info);
@@ -666,7 +665,6 @@ add_tests:
    ADD_TEST(NULL, "Lists - Gengrid", "GenGrid Item Styles", 
test_gengrid_item_styles);
    ADD_TEST(NULL, "Lists - Gengrid", "Gengrid Update Speed", 
test_gengrid_speed);
    ADD_TEST(NULL, "Lists - Gengrid", "GenGrid Focus", test_gengrid_focus);
-   ADD_TEST(NULL, "Lists - Gengrid", "GenGrid Focus Direction", 
test_gengrid_focus_direction);
 
    //------------------------------//
    ADD_TEST(NULL, "General", "Scaling", test_scaling);
diff --git a/src/bin/test_gengrid.c b/src/bin/test_gengrid.c
index 8150ef4..b153767 100644
--- a/src/bin/test_gengrid.c
+++ b/src/bin/test_gengrid.c
@@ -252,23 +252,6 @@ grid_content_get(void *data, Evas_Object *obj, const char 
*part)
    return NULL;
 }
 
-Evas_Object *
-grid_content_buttons_get(void *data, Evas_Object *obj, const char *part)
-{
-   const Item_Data *id = data;
-   if (!strcmp(part, "elm.swallow.icon"))
-     {
-        Evas_Object *bt = elm_button_add(obj);
-        Evas_Object *ic = elm_icon_add(obj);
-        elm_image_file_set(ic, id->path, NULL);
-        elm_image_aspect_fixed_set(ic, EINA_FALSE);
-        elm_object_part_content_set(bt, "icon", ic);
-        evas_object_show(bt);
-        return bt;
-     }
-   return NULL;
-}
-
 Eina_Bool
 grid_state_get(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const 
char *part EINA_UNUSED)
 {
@@ -365,54 +348,6 @@ create_gengrid(Evas_Object *obj, int items)
    return grid;
 }
 
-static Evas_Object *
-create_gengrid_buttons(Evas_Object *obj, int items)
-{
-   Evas_Object *grid = NULL;
-   static Item_Data id[144];
-   int i, n;
-   char buf[PATH_MAX];
-
-   grid = elm_gengrid_add(obj);
-   elm_gengrid_item_size_set(grid,
-                             elm_config_scale_get() * 200,
-                             elm_config_scale_get() * 150);
-   elm_gengrid_reorder_mode_set(grid, EINA_TRUE);
-   evas_object_smart_callback_add(grid, "selected", grid_selected, NULL);
-   evas_object_smart_callback_add(grid, "clicked,double", grid_double_clicked, 
NULL);
-   evas_object_smart_callback_add(grid, "longpressed", grid_longpress, NULL);
-   evas_object_smart_callback_add(grid, "moved", grid_moved, NULL);
-   evas_object_smart_callback_add(grid, "drag,start,up", grid_drag_up, NULL);
-   evas_object_smart_callback_add(grid, "drag,start,right", grid_drag_right, 
NULL);
-   evas_object_smart_callback_add(grid, "drag,start,down", grid_drag_down, 
NULL);
-   evas_object_smart_callback_add(grid, "drag,start,left", grid_drag_left, 
NULL);
-   evas_object_smart_callback_add(grid, "drag,stop", grid_drag_stop, NULL);
-   evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-   gic = elm_gengrid_item_class_new();
-   gic->item_style = "default";
-   gic->func.text_get = grid_text_get;
-   gic->func.content_get = grid_content_buttons_get;
-   gic->func.state_get = grid_state_get;
-   gic->func.del = NULL;
-
-   n = 0;
-   for (i = 0; i < items; i++)
-     {
-        snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), 
img[n]);
-        n = (n + 1) % 9;
-        id[i].mode = i;
-        id[i].path = eina_stringshare_add(buf);
-        id[i].item = elm_gengrid_item_append(grid, gic, &(id[i]), grid_sel, 
NULL);
-        if (!(i % 5))
-          elm_gengrid_item_selected_set(id[i].item, EINA_TRUE);
-     }
-   elm_gengrid_item_class_free(gic);
-
-   return grid;
-}
-
 static void
 restore_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
@@ -1339,56 +1274,6 @@ test_gengrid4(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_
 }
 
 void
-test_gengrid_focus_direction(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
-{
-   Evas_Object *win, *bt, *bxx, *bx;
-
-
-   win = elm_win_util_standard_add("gengrid", "GenGrid");
-   elm_win_autodel_set(win, EINA_TRUE);
-   evas_object_resize(win, 600, 600);
-   evas_object_show(win);
-
-   elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
-   elm_win_focus_highlight_animate_set(win, EINA_TRUE);
-
-   bxx = elm_box_add(win);
-   evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   elm_win_resize_object_add(win, bxx);
-   evas_object_show(bxx);
-
-   bt = elm_button_add(win);
-   elm_object_text_set(bt, "Next API function");
-   elm_box_pack_end(bxx, bt);
-   evas_object_show(bt);
-
-   /* Create GenGrid */
-   Evas_Object *grid = create_gengrid_buttons(win, (12 * 12));
-   elm_box_pack_end(bxx, grid);
-   evas_object_show(grid);
-
-   elm_gengrid_focus_direction_allow_set(grid, EINA_TRUE);
-//   elm_object_focus_allow_set(grid, EINA_FALSE);
-
-   bx = elm_box_add(win);
-   elm_box_horizontal_set(bx, EINA_TRUE);
-   elm_box_pack_end(bxx, bx);
-   evas_object_show(bx);
-
-   bt = elm_button_add(win);
-   elm_object_text_set(bt, "Bring in");
-   evas_object_smart_callback_add(bt, "clicked", _btn_bring_in_clicked_cb, 
grid);
-   elm_box_pack_end(bx, bt);
-   evas_object_show(bt);
-
-   bt = elm_button_add(win);
-   elm_object_text_set(bt, "Show");
-   evas_object_smart_callback_add(bt, "clicked", _btn_show_clicked_cb, grid);
-   elm_box_pack_end(bx, bt);
-   evas_object_show(bt);
-}
-
-void
 test_gengrid_speed(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
 {
    Evas_Object *win, *fr, *bx;
diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 3359aba..a362aa9 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -87,27 +87,6 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
 };
 #undef ELM_PRIV_GENGRID_SIGNALS
 
-static Gengrid_Focus_Direction_Mod_Api *gengrid_focus_direction_mod = NULL;
-
-static Gengrid_Focus_Direction_Mod_Api *
-_gengrid_focus_direction_mod_init(void)
-{
-   Elm_Module *mod = NULL;
-
-   if (!(mod = _elm_module_find_as("gengrid_focus/api"))) return NULL;
-
-   mod->api = malloc(sizeof(Gengrid_Focus_Direction_Mod_Api));
-   if (!mod->api) return NULL;
-
-   ((Gengrid_Focus_Direction_Mod_Api *)(mod->api))->hook_ptr =
-     _elm_module_symbol_get(mod, "gen_focus_direction");
-
-   if (!((Gengrid_Focus_Direction_Mod_Api *)(mod->api))->hook_ptr)
-     return NULL;
-
-   return mod->api;
-}
-
 static void
 _item_show_region(void *data)
 {
@@ -571,34 +550,6 @@ _elm_gengrid_item_unrealize(Elm_Gen_Item *it,
    evas_event_thaw_eval(evas_object_evas_get(WIDGET(it)));
 }
 
-
-static void
-_elm_gengrid_item_focused_cb(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
-{
-   Elm_Gen_Item *it = data;
-   Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
-   if (sd->focus_direction && gengrid_focus_direction_mod)
-     {
-        Evas_Coord x = 0;
-        Evas_Coord y = 0;
-        Evas_Coord v_w = 0;
-        Evas_Coord v_h = 0;
-        Evas_Coord step_x = 0;
-        Evas_Coord step_y = 0;
-        Evas_Coord page_x = 0;
-        Evas_Coord page_y = 0;
-
-        eo_do(sd->obj,
-            elm_interface_scrollable_content_pos_get(&x, &y),
-            elm_interface_scrollable_step_size_get(&step_x, &step_y),
-            elm_interface_scrollable_page_size_get(&page_x, &page_y),
-            elm_interface_scrollable_content_viewport_size_get(&v_w, &v_h));
-
-        elm_gengrid_item_selected_set((Elm_Object_Item *)it, EINA_TRUE);
-        elm_gengrid_item_show((Elm_Object_Item *)it, 
ELM_GENGRID_ITEM_SCROLLTO_IN);
-     }
-}
-
 static void
 _item_mouse_up_cb(void *data,
                   Evas *evas EINA_UNUSED,
@@ -865,7 +816,6 @@ _item_realize(Elm_Gen_Item *it)
                   edje_object_part_swallow(VIEW(it), key, ic);
                   evas_object_show(ic);
                   elm_widget_sub_object_add(WIDGET(it), ic);
-                  evas_object_smart_callback_add(ic, "focused", 
_elm_gengrid_item_focused_cb, it);
                }
           }
      }
@@ -1964,8 +1914,6 @@ _elm_gengrid_smart_event(Eo *obj, void *_pd, va_list 
*list)
    if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
    if (!sd->items) return;
 
-   if (sd->focus_direction && gengrid_focus_direction_mod) return;
-
    eo_do(obj,
          elm_interface_scrollable_content_pos_get(&x, &y),
          elm_interface_scrollable_step_size_get(&step_x, &step_y),
@@ -2225,13 +2173,7 @@ _elm_gengrid_smart_on_focus(Eo *obj, void *_pd 
EINA_UNUSED, va_list *list)
    Elm_Object_Item *it = NULL;
    Eina_Bool is_sel = EINA_FALSE;
 
-   if (sd->focus_direction && gengrid_focus_direction_mod)
-     {
-        if (ret) *ret = EINA_TRUE;
-        return;
-     }
    eo_do_super(obj, MY_CLASS, elm_obj_widget_on_focus(&int_ret));
-   
    if (!int_ret) return;
 
    if (elm_widget_focus_get(obj) && (sd->selected) &&
@@ -2286,28 +2228,10 @@ _elm_gengrid_smart_focus_next_manager_is(Eo *obj 
EINA_UNUSED, void *_pd EINA_UNU
 }
 
 static void
-_elm_gengrid_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
+_elm_gengrid_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
 {
    Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Gengrid_Smart_Data *sd = _pd;
    *ret = EINA_FALSE;
-   if (sd->focus_direction && gengrid_focus_direction_mod)
-     *ret = EINA_TRUE;
-}
-
-static void
-_elm_gengrid_smart_focus_direction(Eo *obj, void *_pd, va_list *list)
-{
-   Elm_Gengrid_Smart_Data *sd = _pd;
-   if (sd->focus_direction && gengrid_focus_direction_mod)
-     {
-        gengrid_focus_direction_mod->hook_ptr(obj, _pd, list);
-     }
-   else
-     {
-        Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-        *ret = EINA_FALSE;
-     }
 }
 
 static void
@@ -2813,7 +2737,6 @@ _elm_gengrid_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
                              elm_widget_style_get(obj)))
      CRI("Failed to set layout!");
 
-   if (!gengrid_focus_direction_mod) gengrid_focus_direction_mod = 
_gengrid_focus_direction_mod_init();
    eo_do(obj, elm_interface_scrollable_objects_set(wd->resize_obj, 
priv->hit_rect));
 
    priv->old_h_bounce = bounce;
@@ -2821,7 +2744,6 @@ _elm_gengrid_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
 
    eo_do(obj, elm_interface_scrollable_bounce_allow_set(bounce, bounce));
 
-
    eo_do(obj,
          elm_interface_scrollable_animate_start_cb_set
          (_scroll_animate_start_cb),
@@ -2838,7 +2760,6 @@ _elm_gengrid_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
    priv->align_x = 0.5;
    priv->align_y = 0.5;
    priv->highlight = EINA_TRUE;
-   priv->focus_direction = EINA_FALSE;
 
    priv->pan_obj = eo_add(MY_PAN_CLASS, evas_object_evas_get(obj));
    pan_data = eo_data_scope_get(priv->pan_obj, MY_PAN_CLASS);
@@ -3326,15 +3247,6 @@ elm_gengrid_horizontal_set(Evas_Object *obj,
    eo_do(obj, elm_obj_gengrid_horizontal_set(horizontal));
 }
 
-EAPI void
-elm_gengrid_focus_direction_allow_set(Evas_Object *obj,
-                                      Eina_Bool flag)
-{
-  ELM_GENGRID_CHECK(obj);
-  ELM_GENGRID_DATA_GET(obj, sd);
-  sd->focus_direction = flag; 
-}
-
 static void
 _horizontal_set(Eo *obj, void *_pd, va_list *list)
 {
@@ -4224,6 +4136,7 @@ elm_gengrid_item_show(Elm_Object_Item *item,
 
    ELM_GENGRID_ITEM_CHECK_OR_RETURN(it);
    sd = GG_IT(it)->wsd;
+
    if ((it->generation < sd->generation)) return;
 
    sd->show_region = EINA_TRUE;
@@ -4571,7 +4484,6 @@ _class_constructor(Eo_Class *klass)
         
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), 
_elm_gengrid_smart_focus_direction_manager_is),
         
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_HIGHLIGHT_GEOMETRY_GET),
 _elm_gengrid_focus_highlight_geometry_get),
         EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUSED_ITEM_GET), 
_elm_gengrid_focused_item_get),
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION), 
_elm_gengrid_smart_focus_direction),
 
         EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), 
_elm_gengrid_smart_sizing_eval),
 
diff --git a/src/lib/elm_gengrid_common.h b/src/lib/elm_gengrid_common.h
index eedc076..be77038 100644
--- a/src/lib/elm_gengrid_common.h
+++ b/src/lib/elm_gengrid_common.h
@@ -565,13 +565,3 @@ EAPI void                          
elm_gengrid_item_select_mode_set(Elm_Object_I
  */
 EAPI Elm_Object_Select_Mode        elm_gengrid_item_select_mode_get(const 
Elm_Object_Item *it);
 
-
-/**
- * Set if gengrid should manage focus direction.
- *
- * @param obj The gengrid object
- * @param flag The state which should be set.
- *
- * @ingroup Gengrid
- */
-EAPI void elm_gengrid_focus_direction_allow_set(Evas_Object *obj, Eina_Bool 
flag);
diff --git a/src/lib/elm_widget_gengrid.h b/src/lib/elm_widget_gengrid.h
index 9be4ab7..f551f84 100644
--- a/src/lib/elm_widget_gengrid.h
+++ b/src/lib/elm_widget_gengrid.h
@@ -15,15 +15,6 @@
  * other widgets which are a gengrid with some more logic on top.
  */
 
-
-typedef struct _Gengrid_Focus_Direction_Mod_Api 
Gengrid_Focus_Direction_Mod_Api;
-
-struct _Gengrid_Focus_Direction_Mod_Api
-{
-  eo_op_func_type hook_ptr;
-};
-
-
 /**
  * Base widget smart data extended with gengrid instance data.
  */
@@ -119,8 +110,6 @@ struct _Elm_Gengrid_Smart_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 */
-   /* a flag for focus direction. by default it is false */
-   Eina_Bool                             focus_direction : 1;
 };
 
 struct Elm_Gen_Item_Type
diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am
index 7b96970..00fbcc0 100644
--- a/src/modules/Makefile.am
+++ b/src/modules/Makefile.am
@@ -6,5 +6,4 @@ prefs \
 test_entry \
 test_map \
 access_output \
-datetime_input_ctxpopup \
-gengrid_focus_hook
+datetime_input_ctxpopup
diff --git a/src/modules/gengrid_focus_hook/Makefile.am 
b/src/modules/gengrid_focus_hook/Makefile.am
deleted file mode 100644
index 54d5b48..0000000
--- a/src/modules/gengrid_focus_hook/Makefile.am
+++ /dev/null
@@ -1,38 +0,0 @@
-
-MAINTAINERCLEANFILES = Makefile.in
-
-AM_CPPFLAGS = \
--DELM_INTERNAL_API_ARGESFSDFEFC=1 \
--I. \
--I$(top_builddir) \
--I$(top_srcdir) \
--I$(top_srcdir)/src/lib \
--I$(top_builddir)/src/lib \
--DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
--DPACKAGE_LIB_DIR=\"$(libdir)\" \
-@ELEMENTARY_CFLAGS@ \
-@ELEMENTARY_X_CFLAGS@ \
-@ELEMENTARY_FB_CFLAGS@ \
-@ELEMENTARY_SDL_CFLAGS@ \
-@ELEMENTARY_WIN32_CFLAGS@ \
-@ELEMENTARY_WINCE_CFLAGS@ \
-@ELEMENTARY_ELOCATION_CFLAGS@ \
-@ELEMENTARY_EWEATHER_CFLAGS@ \
-@ELEMENTARY_WEB_CFLAGS@ \
-@ELEMENTARY_EMAP_CFLAGS@ \
-@ELEMENTARY_WAYLAND_CFLAGS@ \
-@ELEMENTARY_EMAP_CFLAGS@ \
-@EVIL_CFLAGS@
-
-if ELEMENTARY_WINDOWS_BUILD
-AM_CPPFLAGS += -DELEMENTARY_BUILD
-endif
-
-pkgdir = $(libdir)/elementary/modules/gengrid_focus_hook/$(MODULE_ARCH)
-pkg_LTLIBRARIES = module.la
-
-module_la_SOURCES = gengrid_focus_hook.c
-
-module_la_LIBADD = @ELEMENTARY_LIBS@ $(top_builddir)/src/lib/libelementary.la
-module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module 
-avoid-version
-module_la_LIBTOOLFLAGS = --tag=disable-static
diff --git a/src/modules/gengrid_focus_hook/gengrid_focus_hook.c 
b/src/modules/gengrid_focus_hook/gengrid_focus_hook.c
deleted file mode 100644
index 3c1d692..0000000
--- a/src/modules/gengrid_focus_hook/gengrid_focus_hook.c
+++ /dev/null
@@ -1,491 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "elementary_config.h"
-#endif
-#include <Elementary.h>
-#include <Elementary_Cursor.h>
-#include "elm_priv.h"
-#include "elm_widget_gengrid.h"
-
-#include <limits.h>
-
-#define GG_IT(_it) (_it->item)
-
-#define EINA_INLIST_REVERSE_FOREACH_INSIDE(list, it)                         \
-   for (it = NULL, it = (list ? _EINA_INLIST_CONTAINER(it, list) : NULL); it; \
-        it = (EINA_INLIST_GET(it)->prev                                       \
-                  ? _EINA_INLIST_CONTAINER(it, EINA_INLIST_GET(it)->prev)     \
-                  : NULL))
-
-#define EINA_LIST_REVERSE_FOREACH_INSIDE(list, l, data) \
-   for (l = list, data = eina_list_data_get(l); l;       \
-        l = eina_list_prev(l), data = eina_list_data_get(l))
-
-#define WEIGHT_MAX ((double)INT_MAX / (double)1000000)
-
-/**
- * Find the first parent of object.
- * Parent must be type of elm_gengrid.
- *
- * @param base
- *
- * @return
- */
-static const Evas_Object *
-_find_gengrid_parent_item(const Evas_Object *base)
-{
-   const Evas_Object *res = NULL;
-   if (base)
-     {
-        const Evas_Object *parent = NULL;
-        parent = elm_widget_parent_get(base);
-        
-        while (parent)
-          {
-             if (evas_object_smart_type_check(parent, "elm_gengrid"))
-               {
-                  res = parent;
-                  break;
-               }
-             parent = elm_widget_parent_get(parent);
-          }
-     }
-   return res;
-}
-
-static Eina_Bool
-_can_focus(const Evas_Object *obj)
-{
-   if (obj && elm_object_focus_allow_get(obj) && elm_widget_can_focus_get(obj))
-     return EINA_TRUE;
-   return EINA_FALSE;
-}
-
-static Eina_List *
-_get_contents(const Evas_Object *obj)
-{
-   Eina_List *res = NULL;
-   if (!obj) return NULL;
-   
-   if (evas_object_smart_type_check(obj, "elm_layout"))
-     {
-        Evas_Object *edje = elm_layout_edje_get(obj);
-        
-        if (edje)
-          {
-             const Eina_List *l = NULL;
-             const char *key;
-             const Eina_List *contents =
-               elm_widget_stringlist_get(edje_object_data_get(edje, 
"contents"));
-             
-             EINA_LIST_FOREACH(contents, l, key)
-               {
-                  if (key)
-                    {
-                       const Evas_Object *child = 
-                         edje_object_part_swallow_get(edje, key);
-                       if (child)
-                         {
-                            Eina_List *l1 = NULL;
-                            res = eina_list_append(res, child);
-                            
-                            l1 = _get_contents(child);
-                            if (l1) res = eina_list_merge(res, l1);
-                         }
-                    }
-               }
-          }
-     }
-   return res;
-}
-
-static Eina_List *
-_gengrid_item_contents_get(const Elm_Gen_Item *it)
-{
-   Eina_List *res = NULL;
-   Eina_List *l = NULL;
-   Evas_Object *child = NULL;
-   EINA_LIST_FOREACH(it->content_objs, l, child)
-     {
-        if (child)
-          {
-             Eina_List *l1 = NULL;
-             res = eina_list_append(res, child);
-             
-             l1 = _get_contents(child);
-             if (l1) res = eina_list_merge(res, l1);
-          }
-     }
-  return res;
-}
-
-static const Evas_Object *
-_find_focusable_object(const Elm_Gen_Item *it,
-                       const Evas_Object *base,
-                       Elm_Focus_Direction dir)
-{
-   const Evas_Object *obj = NULL;
-   Eina_List *l = NULL;
-   Eina_List *contents = NULL;
-   
-   if (!it) return NULL;
-   
-   contents = _gengrid_item_contents_get(it);
-   if (contents)
-     {
-        if (base)
-          {
-             l = eina_list_data_find_list(contents, base);
-             obj = base;
-          }
-        
-        if ((dir == ELM_FOCUS_LEFT) || (dir == ELM_FOCUS_UP))
-          {
-             if (l) l = eina_list_prev(l);
-             else l = eina_list_last(contents);
-             
-             while (l)
-               {
-                  obj = eina_list_data_get(l);
-                  if (_can_focus(obj)) break;
-                  obj = NULL;
-                  l = eina_list_prev(l);
-               }
-          }
-        else if ((dir == ELM_FOCUS_RIGHT) || (dir == ELM_FOCUS_DOWN))
-          {
-             if (l) l = eina_list_next(l);
-             else l = contents;
-             while (l)
-               {
-                  obj = eina_list_data_get(l);
-                  if (_can_focus(obj)) break;
-                  obj = NULL;
-                  l = eina_list_next(l);
-               }
-          }
-        eina_list_free(contents);
-     }
-   return obj;
-}
-
-
-
-static Eina_Bool
-_check_item_contains(Elm_Gen_Item *it, const Evas_Object *base)
-{
-   Eina_Bool res = EINA_FALSE;
-   Eina_List *contents = NULL;
-   contents = _gengrid_item_contents_get(it);
-   
-   if (contents)
-     {
-        const Eina_List *l = NULL;
-        Evas_Object *content = NULL;
-        
-        // loop contents (Evas_Object) of item
-        EINA_LIST_FOREACH(contents, l, content)
-          {
-             if (content == base)
-               {
-                  res = EINA_TRUE;
-                  break;
-               }
-          }
-        eina_list_free(contents);
-     }
-   return res;
-}
-
-static Elm_Gen_Item *
-_find_item_for_base(const Evas_Object *obj,
-                    const Evas_Object *base)
-{
-   ELM_GENGRID_CHECK(obj) EINA_FALSE;
-   ELM_GENGRID_DATA_GET(obj, sd);
-   Elm_Gen_Item *res = NULL;
-   Elm_Gen_Item *it = (Elm_Gen_Item *)(sd->last_selected_item);
-
-   if (it && (_check_item_contains(it, base))) res = it;
-   else
-     {  // try find in all
-        EINA_INLIST_FOREACH(sd->items, it)
-          {
-             if (it && _check_item_contains(it, base))
-               {
-                  res = it;
-                  break;
-               }
-          }
-     }
-   return res;
-}
-
-static Eina_Bool
-_gengrid_self_focus_item_get(const Evas_Object *obj, const Evas_Object *base,
-                             // list of Elm_Gen_Items
-                             const Eina_List *items,
-                             void *(*list_data_get)(const Eina_List *l) 
EINA_UNUSED,
-                             double degree, Evas_Object **direction,
-                             double *weight)
-{
-   Evas_Coord ox, oy;
-   Evas_Coord vw, vh;
-   const Evas_Object *res_obj = NULL;
-   Elm_Focus_Direction dir = ELM_FOCUS_UP;
-   unsigned int items_count = 0;
-   unsigned int columns = 0, items_visible = 0;
-   unsigned int items_row = 0, items_col = 0, rows = 0;
-   int new_position = 0;
-   int cx = 0;
-   int cy = 0;
-   int focused_pos = 0;
-   Elm_Gen_Item *it = NULL;
-   Elm_Gen_Item *it_res = NULL;
-   Eina_List *list = NULL;
-   Eina_List *l = NULL;
-   Elm_Gen_Item *focused_item = NULL;
-   ELM_GENGRID_CHECK(obj) EINA_FALSE;
-   ELM_GENGRID_DATA_GET(obj, sd);
-   
-   if ((!direction) || (!weight) || (!base) || (!items)) return EINA_FALSE;
-
-   evas_object_geometry_get(sd->pan_obj, &ox, &oy, &vw, &vh);
-   
-   focused_item = _find_item_for_base(obj, base);
-   if (!focused_item) return EINA_FALSE;
-   
-   if (degree == 0) dir = ELM_FOCUS_UP;
-   else if (degree == 90) dir = ELM_FOCUS_RIGHT;
-   else if (degree == 180) dir = ELM_FOCUS_DOWN;
-   else if (degree == 270) dir = ELM_FOCUS_LEFT;
-   else return EINA_FALSE;
-   
-   res_obj = _find_focusable_object(focused_item, base, dir);
-   if (res_obj && (res_obj != base))
-     {
-        *direction = (Evas_Object *)res_obj;
-        *weight = WEIGHT_MAX;
-        return EINA_TRUE;
-     }
-   
-   focused_pos = focused_item->position - 1;
-   
-   items_count = sd->item_count - 
-     eina_list_count(sd->group_items) + sd->items_lost;
-   if (sd->horizontal)
-     {
-        if (sd->item_height > 0) items_visible = vh / sd->item_height;
-        if (items_visible < 1) items_visible = 1;
-        
-        columns = items_count / items_visible;
-        if (items_count % items_visible) columns++;
-        
-        items_row = items_visible;
-        if (items_row > sd->item_count) items_row = sd->item_count;
-        
-        cx = focused_pos / items_row;
-        cy = focused_pos % items_row;
-     }
-   else
-     {
-        if (sd->item_width > 0) items_visible = vw / sd->item_width;
-        if (items_visible < 1) items_visible = 1;
-        
-        rows = items_count / items_visible;
-        if (items_count % items_visible) rows++;
-        
-        items_col = items_visible;
-        if (items_col > sd->item_count) items_col = sd->item_count;
-        
-        cy = focused_pos / items_col;
-        cx = focused_pos % items_col;
-     }
-   
-   
-   if (dir == ELM_FOCUS_UP) cy--;
-   else if (dir == ELM_FOCUS_RIGHT) cx++;
-   else if (dir == ELM_FOCUS_DOWN) cy++;
-   else if (dir == ELM_FOCUS_LEFT) cx--;
-   
-   if (cx < 0 || cy < 0) return EINA_FALSE;
-   
-   if (sd->horizontal)
-     {
-        if ((cy > (int)(items_row - 1)) ||
-            (cx > (int)(columns - 1))) return EINA_FALSE;
-        new_position = items_row * cx + cy;
-     }
-   else
-     {
-        if ((cx > (int)(items_col - 1)) ||
-            (cy > (int)(rows - 1))) return EINA_FALSE;
-        new_position = cx + items_col * cy;
-     }
-   
-   if (new_position > (int)(items_count - 1)) return EINA_FALSE;
-   
-   focused_pos++;
-   new_position++;
-   
-   list = eina_list_data_find_list(items, focused_item);
-   
-   if (!list) return EINA_FALSE;
-   
-   if (new_position > focused_pos)
-     {
-        /// New position should be after focused
-        EINA_LIST_FOREACH(list, l, it)
-          {
-             if (it->position == new_position)
-               {
-                  it_res = it;
-                  break;
-               }
-          }
-     }
-   else if (new_position < focused_pos)
-     {
-        /// New position should be before focused
-        EINA_LIST_REVERSE_FOREACH_INSIDE(list, l, it)
-          {
-             if (it->position == new_position)
-               {
-                  it_res = it;
-                  break;
-               }
-          }
-     }
-   else return EINA_FALSE;
-   
-   if (it_res)
-     {
-        res_obj = _find_focusable_object(it_res, base, dir);
-        *direction = (Evas_Object *)res_obj;
-        *weight = WEIGHT_MAX;
-        return EINA_TRUE;
-     }
-   return EINA_FALSE;
-}
-
-static Eina_Bool
-_gengrid_focus_list_direction_get(const Evas_Object *obj,
-                                  const Evas_Object *base,
-                                  // list of Elm_Gen_Items
-                                  const Eina_List *items,
-                                  void *(*list_data_get)(const Eina_List *l),
-                                  double degree, Evas_Object **direction,
-                                  double *weight)
-{
-   const Eina_List *l = NULL;
-   Evas_Object *current_best = NULL;
-   ELM_GENGRID_CHECK(obj) EINA_FALSE;
-   
-   if ((!direction) || (!weight) || (!base) || (!items)) return EINA_FALSE;
-   
-   l = items;
-   current_best = *direction;
-   
-   // loop items Elm_Gen_Item
-   for (; l; l = eina_list_next(l))
-     {
-        Eina_List *contents = NULL;
-        Elm_Gen_Item *it = list_data_get(l);
-        contents = _gengrid_item_contents_get(it);
-        if (contents)
-          {
-             const Eina_List *l2 = NULL;
-             Evas_Object *content = NULL;
-             
-             // loop contents (Evas_Object) of item
-             EINA_LIST_FOREACH(contents, l2, content)
-               {
-                  // if better element than set new sd->focused and 
sd->selected
-                  elm_widget_focus_direction_get(content, base, degree,
-                                                 direction, weight);
-               }
-             eina_list_free(contents);
-          }
-     }
-   if (current_best != *direction) return EINA_TRUE;
-   return EINA_FALSE;
-}
-
-EAPI void
-gen_focus_direction(Eo *obj, void *_pd, va_list *list)
-{
-   Eina_List *items = NULL;
-   const Evas_Object *parent = NULL;
-   void *(*list_data_get)(const Eina_List * list);
-   Eina_List *(*list_free)(Eina_List * list);
-   Elm_Gengrid_Smart_Data *sd = _pd;
-   Eina_Bool (*list_direction_get)(const Evas_Object * obj, const Evas_Object 
* base,
-                                   const Eina_List * items, void * 
(*list_data_get)(const Eina_List * l),
-                                   double degree, Evas_Object * *direction, 
double * weight);
-   
-   Evas_Object *base = va_arg(*list, Evas_Object *);
-   double degree = va_arg(*list, double);
-   Evas_Object **direction = va_arg(*list, Evas_Object **);
-   double *weight = va_arg(*list, double *);
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   
-   if (!sd)
-     {
-        *ret = EINA_FALSE;
-        return;
-     }
-   
-   *ret = EINA_FALSE;
-   list_data_get = NULL;
-   list_direction_get = NULL;
-   list_free = NULL;
-   parent = _find_gengrid_parent_item(base);
-   
-   /// If focused is subobject of this gengrid then we selected next
-   /// in direction
-   if (obj == parent)
-     {
-        items = elm_gengrid_realized_items_get(obj);
-        list_data_get = NULL;
-        list_direction_get = _gengrid_self_focus_item_get;
-        list_free = eina_list_free;
-     }
-   
-   if (!items)
-     {
-        items = (Eina_List *)(elm_object_focus_custom_chain_get(obj));
-        list_data_get = eina_list_data_get;
-        list_direction_get = elm_widget_focus_list_direction_get;
-        list_free = NULL;
-     }
-   
-   if (!items)
-     {
-        items = elm_gengrid_realized_items_get(obj);
-        list_data_get = eina_list_data_get;
-        list_direction_get = _gengrid_focus_list_direction_get;
-        list_free = eina_list_free;
-     }
-   
-   if (!items)
-     {
-        *ret = EINA_FALSE;
-        return;
-     }
-   
-   *ret = list_direction_get(obj, base, items, list_data_get, degree,
-                             direction, weight);
-   if (list_free) list_free(items);
-}
-
-// module api funcs needed
-EAPI int
-elm_modapi_init(void *m EINA_UNUSED)
-{
-   return 1; // succeed always
-}
-
-EAPI int
-elm_modapi_shutdown(void *m EINA_UNUSED)
-{
-   return 1; // succeed always
-}

-- 


Reply via email to