From c169cd5547a9f90f2c9607f1fd9b0a77eac46043 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 12 May 2014 06:39:49 +1000 Subject: widgetAdd now does the box / grid decision, and some oter things moved into it. --- src/GuiLua/GuiLua.c | 16 +++------------- src/extantz/files.c | 3 +-- src/libraries/winFang.c | 31 ++++++++++++++++++------------- src/libraries/winFang.h | 2 +- src/purkle/purkle.c | 4 ++-- 5 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/GuiLua/GuiLua.c b/src/GuiLua/GuiLua.c index bfba073..06bc516 100644 --- a/src/GuiLua/GuiLua.c +++ b/src/GuiLua/GuiLua.c @@ -185,20 +185,10 @@ static int widget(lua_State *L) { Widget *wid; - // This two lines is likely the only one that will be different for the different sorts of widgets. - wid = widgetAdd(win, ELM_OBJ_BUTTON_CLASS, win->win, title); - wid->data = L; - eo_do(wid->obj, - evas_obj_visibility_set(EINA_TRUE), - eo_key_data_set("Widget", wid, NULL) - ); - - if (x < 0) - elm_layout_box_append(win->win, WF_BOX, wid->obj); - else - elm_grid_pack(win->grid, wid->obj, x, y, w, h); - winFangCalcMinSize(win); + // These two lines are likely the only ones that will be different for the different sorts of widgets. + wid = widgetAdd(win, ELM_OBJ_BUTTON_CLASS, title, x, y, w, h); evas_object_smart_callback_add(wid->obj, "clicked", _on_click, wid); + wid->data = L; lua_pushlightuserdata(L, (void *) wid); return 1; diff --git a/src/extantz/files.c b/src/extantz/files.c index 036cd4f..9678e3e 100644 --- a/src/extantz/files.c +++ b/src/extantz/files.c @@ -148,7 +148,7 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa me = winFangAdd(ourGlobals->mainWindow, ourGlobals->win_w - 380, ourGlobals->win_w - 530, 300, 500, "file selector", "files", ourGlobals->world); - wid = widgetAdd(me, ELM_OBJ_FILESELECTOR_CLASS, me->win, NULL); + wid = widgetAdd(me, ELM_OBJ_FILESELECTOR_CLASS, NULL, -1, -1, -1, -1); fs = wid->obj; wid->data = ourGlobals; wid->on_del = _on_fs_del; @@ -158,7 +158,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa elm_interface_fileselector_expandable_set(EINA_TRUE), elm_interface_fileselector_folder_only_set(EINA_FALSE) ); - elm_layout_box_append(me->win, WF_BOX, fs); elm_fileselector_path_set(fs, path); elm_fileselector_is_save_set(fs, save); diff --git a/src/libraries/winFang.c b/src/libraries/winFang.c index c1f448d..4eb4a7b 100644 --- a/src/libraries/winFang.c +++ b/src/libraries/winFang.c @@ -347,7 +347,7 @@ void winFangDel(winFang *win) evas_object_del(win->win); } -Widget *widgetAdd(winFang *win, const Eo_Class *klass, Evas_Object *parent, char *title) +Widget *widgetAdd(winFang *win, const Eo_Class *klass, char *title, int x, int y, int w, int h) { Widget *result; @@ -355,19 +355,24 @@ Widget *widgetAdd(winFang *win, const Eo_Class *klass, Evas_Object *parent, char strcpy(result->magic, "Widget"); eina_clist_add_head(&win->widgets, &result->node); - if (parent) + result->obj = eo_add(klass, win->win, + evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), + evas_obj_size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL), + evas_obj_visibility_set(EINA_TRUE), + eo_key_data_set("Widget", result, NULL) + ); + + if (x < 0) + elm_layout_box_append(win->win, WF_BOX, result->obj); + else + elm_grid_pack(win->grid, result->obj, x, y, w, h); + winFangCalcMinSize(win); + + if (title) { - result->obj = eo_add(klass, parent, - evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), - evas_obj_size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL), - evas_obj_visibility_set(EINA_TRUE) - ); - if (title) - { - result->label = strdup(title); - elm_object_text_set(result->obj, result->label); - evas_object_name_set(result->obj, title); - } + result->label = strdup(title); + elm_object_text_set(result->obj, result->label); + evas_object_name_set(result->obj, title); } return result; diff --git a/src/libraries/winFang.h b/src/libraries/winFang.h index c8b355b..1bdef20 100644 --- a/src/libraries/winFang.h +++ b/src/libraries/winFang.h @@ -67,6 +67,6 @@ void winFangShow(winFang *win); void winFangCalcMinSize(winFang *win); void winFangDel(winFang *win); -Widget *widgetAdd(winFang *win, const Eo_Class *klass, Evas_Object *parent, char *title); +Widget *widgetAdd(winFang *win, const Eo_Class *klass, char *title, int x, int y, int w, int h); #endif diff --git a/src/purkle/purkle.c b/src/purkle/purkle.c index 8c72afd..7bd47e7 100644 --- a/src/purkle/purkle.c +++ b/src/purkle/purkle.c @@ -32,13 +32,13 @@ static winFang *purkleAdd(winFang *parent, int w, int h, EPhysics_World *world) elm_layout_box_append(me->win, WF_BOX, en); eo_unref(en); - wid = widgetAdd(me, ELM_OBJ_ENTRY_CLASS, me->win, ""); + wid = widgetAdd(me, ELM_OBJ_ENTRY_CLASS, "", -1, -1, -1, -1); wid->on_del = _on_entry_del; eo_do(wid->obj, elm_obj_entry_scrollable_set(EINA_TRUE), elm_obj_entry_editable_set(EINA_TRUE) ); - elm_layout_box_append(me->win, WF_BOX, wid->obj); + winFangCalcMinSize(me); return me; -- cgit v1.1