From 6e7b1ad395d543bc7218d5d030dda8303d97c49e Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Thu, 21 Jan 2016 20:04:33 +1000 Subject: Rejig the structure of windows a lot. --- src/GuiLua/GuiLua.c | 2 +- src/extantz/extantz.c | 77 +++++++++++++---------------- src/extantz/files.c | 12 +---- src/extantz/woMan.c | 4 +- src/libraries/winFang.c | 69 ++++++++++++++++++++------ src/libraries/winFang.edc | 121 +++++++++++++++++++++++++--------------------- src/libraries/winFang.h | 8 +-- src/purkle/purkle.c | 2 +- 8 files changed, 165 insertions(+), 130 deletions(-) diff --git a/src/GuiLua/GuiLua.c b/src/GuiLua/GuiLua.c index cb8d070..06180f7 100644 --- a/src/GuiLua/GuiLua.c +++ b/src/GuiLua/GuiLua.c @@ -300,7 +300,7 @@ static int window(lua_State *L) world = gl->world; } - win = winFangAdd(parent, 5, 26, w, h, title, name, world); + win = winFangAdd(parent, 5, 52, w, h, title, name, world); win->module = strdup(module); if (gl) { diff --git a/src/extantz/extantz.c b/src/extantz/extantz.c index bb67e62..7fc2d81 100644 --- a/src/extantz/extantz.c +++ b/src/extantz/extantz.c @@ -467,8 +467,6 @@ static winFang *_makeMainMenu(globals *ourGlobals) it = elm_toolbar_item_append(tb, NoIcon, NULL, NULL, NULL); elm_toolbar_item_separator_set(it, EINA_TRUE); it = elm_toolbar_item_append(tb, NoIcon, "date time:o'clock", NULL, NULL); - elm_layout_box_prepend(me->layout, WF_BOX, tb); - return me; } @@ -588,7 +586,6 @@ static Eina_Bool _makeSkang(void *data) EAPI_MAIN int elm_main(int argc, char **argv) { GLData *gld = NULL; - char buf[PATH_MAX * 2]; // Eina_Bool gotWebKit = elm_need_web(); // Initialise ewebkit if it exists, or return EINA_FALSE if it don't. logDom = HamrTime(argv[0], elm_main, logDom); @@ -658,16 +655,19 @@ EAPI_MAIN int elm_main(int argc, char **argv) ELM_WIN_BASIC ELM_LAYOUT_CLASS WF_LAYOUT winFang.edc - IMAGE background - semi transparent dark purple image. -? SWALLOW underlay - SWALLOW title - Details change if it's internal. - BOX box - Details change if it's internal. -? SWALLOW content -? ELM_GRID_CLASS WF_SWALLOW - -? ELM_BG_CLASS Sky background image. + SWALLOW WF_BACKGROUND + SWALLOW WF_UNDERLAY + SWALLOW WF_TITLE + Only visible if it's internal. + SWALLOW WF_TOOLBAR + Only visible if it's got a menu. + SWALLOW WF_BOX + Vertical box. + SWALLOW WF_GRID + ELM_BG_CLASS Evas_3D specific background, attached directly to window, not swallowed. + ELM_BOX_CLASS Swallowed by WF_BOX + isMain signal sent to layout. + ELM_GRID_CLASS Swallowed by WF_GRID Extra stuff added here by init_evas_gl() if we are doing gears or Irrlicht. ? Elm glview Irrlicht / gears target GLView. @@ -684,8 +684,10 @@ EAPI_MAIN int elm_main(int argc, char **argv) require skang by default require skang ? require purkle + Eventually uses WF_GRID for widget layout, though could in future use WF_BOX for some of them. files.c winFang A normally hidden window with a file requestor, and other Elm widgets. +? elm_layout_box_append(me->win, WF_BOX, vbox); scenriAdd() 3D scene and node stuff ELM_IMAGE_CLASS Evas_3D render target. @@ -701,6 +703,8 @@ EAPI_MAIN int elm_main(int argc, char **argv) winFang World manager internal window, with it's own menu and toolbar stuff. Uses the same menu code as the main menus below. But with added pager stuff. + elm_layout_box_append(me->win, WF_BOX, nf); Elm naviframe for the tab pages. + elm_layout_box_append(me->win, WF_BOX, bt); Elm Login button. love main menus makeMainMenu() @@ -710,8 +714,9 @@ EAPI_MAIN int elm_main(int argc, char **argv) elm_toolbar_item_append() elm_menu_item_add() makeMainMenuFinish() -? elm_layout_box_append(win->win, WF_BOX, tb); - + elm_object_part_content_set(win->layout, WF_TOOLBAR, tb); + isToolbar signal sent to layout. + elm_toolbar_item_append() Internal windows are - @@ -721,39 +726,25 @@ EAPI_MAIN int elm_main(int argc, char **argv) ELM_LAYOUT_CLASS WF_LAYOUT This layout becomes our window object. winFang.edc - IMAGE background - semi transparent dark purple image. - SWALLOW underlay - SWALLOW title - Details change if it's internal. - BOX box - Details change if it's internal. - SWALLOW content - "isInternal" signal sent. + ELM_BG_CLASS Internal window background, swallowed by WF_BACKGROUND. + Semi transparent dark purple image. + ELM_BOX_CLASS Swallowed by WF_BOX EVAS_RECTANGLE_CLASS Invisible click catcher, for moving windows. - WF_UNDERLAY + Swallowed by WF_UNDERLAY EVAS_IMAGE_CLASS Corner "handles" x 4. ELM_LABEL_CLASS Window title. - ELM_GRID_CLASS WF_SWALLOW - - */ + Swallowed by WF_TITLE + ELM_GRID_CLASS Swallowed by WF_GRID + widgetAdd Will either append it to WF_BOX, or pack it into WF_GRID using supplied coords and size. + Used by skang for creating widgets. + Used by purkle for it's main widgets (in C), in WF_BOX. +? Used by files for WT_FILES, but not the rest, this ends up inside WF_BOX, though it has it's own vbox. +?? This vbox is an ELM_BOX_CLASS, er but - +??? elm_obj_box_horizontal_set(EINA_TRUE) + TODO - what happens when we mix BOX and GRID widgets? Perhaps GRID should live inside BOX? - // Create the background image -#if 1 - snprintf(buf, sizeof(buf), "%s/sky_03.jpg", prefix_data_get()); - ourGlobals.mainWindow->bg = eo_add(ELM_BG_CLASS, ourGlobals.mainWindow->win, - evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), - efl_file_set(buf, NULL), - efl_gfx_visible_set(EINA_TRUE) - ); - elm_win_resize_object_add(ourGlobals.mainWindow->win, ourGlobals.mainWindow->bg); -#else - snprintf(buf, sizeof(buf), "%s/sky_03.jpg", prefix_data_get()); - eo_do(ourGlobals.mainWindow->bg, - efl_file_set(buf, NULL), - efl_gfx_color_set(255, 255, 255, 255) - ); -#endif + */ init_evas_gl(&ourGlobals); diff --git a/src/extantz/files.c b/src/extantz/files.c index a2d26df..c27cd9c 100644 --- a/src/extantz/files.c +++ b/src/extantz/files.c @@ -197,7 +197,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa ); elm_object_text_set(hoversel, "sorting"); elm_box_pack_end(vbox, hoversel); -// eo_unref(hoversel); hoversel = eo_add(ELM_HOVERSEL_CLASS, vbox, elm_obj_hoversel_hover_parent_set(me->win), @@ -212,7 +211,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa elm_box_pack_end(vbox, hoversel); // Make sure it starts off as small, works around "hitting grid mode before hitting size not showing anything" bug. _small_icon_clicked(fs, hoversel, NULL); -// eo_unref(hoversel); bt = eo_add(ELM_CHECK_CLASS, vbox, @@ -222,7 +220,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa elm_object_text_set(bt, "hidden"); evas_object_smart_callback_add(bt, "changed", _hidden_clicked, fs); elm_box_pack_end(vbox, bt); -// eo_unref(bt); rdg = rd = eo_add(ELM_RADIO_CLASS, vbox, elm_obj_radio_state_value_set(ELM_FILESELECTOR_GRID), @@ -233,7 +230,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa evas_object_smart_callback_add(rd, "changed", _mode_changed_cb, fs); // Make it start in grid mode. It defaults to list mode, so this swaps it over. _mode_changed_cb(fs, rd, NULL); -// eo_unref(rd); rd = eo_add(ELM_RADIO_CLASS, vbox, elm_obj_radio_state_value_set(ELM_FILESELECTOR_LIST), @@ -243,9 +239,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa elm_object_text_set(rd, "list"); elm_box_pack_end(vbox, rd); evas_object_smart_callback_add(rd, "changed", _mode_changed_cb, fs); -// eo_unref(rd); - // No need to unref this, it's taken care of already. - //eo_unref(rdg); bt = eo_add(ELM_BUTTON_CLASS, me->win, efl_gfx_visible_set(EINA_TRUE) @@ -253,7 +246,6 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa elm_object_text_set(bt, "OK"); evas_object_smart_callback_add(bt, "clicked", _OK_clicked, me); elm_box_pack_end(vbox, bt); -// eo_unref(bt); bt = eo_add(ELM_BUTTON_CLASS, me->win, efl_gfx_visible_set(EINA_TRUE) @@ -261,11 +253,9 @@ winFang *filesAdd(globals *ourGlobals, char *path, Eina_Bool multi, Eina_Bool sa elm_object_text_set(bt, "CANCEL"); evas_object_smart_callback_add(bt, "clicked", _CANCEL_clicked, me); elm_box_pack_end(vbox, bt); -// eo_unref(bt); - elm_layout_box_append(me->win, WF_BOX, vbox); + elm_box_pack_end(me->box, vbox); evas_object_show(vbox); -// eo_unref(vbox); winFangCalcMinSize(me); winFangHide(me); diff --git a/src/extantz/woMan.c b/src/extantz/woMan.c index c867241..7ff1c28 100644 --- a/src/extantz/woMan.c +++ b/src/extantz/woMan.c @@ -254,7 +254,7 @@ winFang *woMan_add(globals *ourGlobals) // TODO - This strdup leaks, but this is just temporary test code anyway, it will go away. tab = _content_image_new(me->win, strdup(buf)); tab_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, tab, NULL); elm_naviframe_item_title_enabled_set(tab_it, EINA_FALSE, EINA_TRUE); elm_toolbar_item_append(tb, NoIcon, "Landmarks", _promote, tab_it); tab = gridList; tab_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, tab, NULL); elm_naviframe_item_title_enabled_set(tab_it, EINA_FALSE, EINA_TRUE); elm_toolbar_item_append(tb, NoIcon, "Grids", _promote, tab_it); - elm_layout_box_append(me->win, WF_BOX, nf); + elm_box_pack_end(me->box, nf); bt = eo_add(ELM_BUTTON_CLASS, me->win, // evas_obj_text_set("Login"), @@ -264,7 +264,7 @@ winFang *woMan_add(globals *ourGlobals) ); elm_object_text_set(bt, "Login"); // No eo interface for this that I can find. // evas_object_smart_callback_add(bt, "clicked", NULL, NULL); - elm_layout_box_append(me->win, WF_BOX, bt); + elm_box_pack_end(me->box, bt); winFangCalcMinSize(me); diff --git a/src/libraries/winFang.c b/src/libraries/winFang.c index 7c18919..718e710 100644 --- a/src/libraries/winFang.c +++ b/src/libraries/winFang.c @@ -202,6 +202,7 @@ winFang *winFangAdd(winFang *parent, int x, int y, int w, int h, char *title, ch } else { + // This is our main window, so create it. result->win = elm_win_add(NULL, name, ELM_WIN_BASIC); evas_object_smart_callback_add(result->win, "delete,request", _on_done, NULL); evas_object_resize(result->win, result->w, result->h); @@ -213,6 +214,7 @@ winFang *winFangAdd(winFang *parent, int x, int y, int w, int h, char *title, ch x = 0; y = 0; } + // Create the layout, and add the Edje to it. snprintf(buf, sizeof(buf), "%s/winFang.edj", prefix_data_get()); result->layout = eo_add(ELM_LAYOUT_CLASS, obj, efl_gfx_size_set(w, h), @@ -223,8 +225,30 @@ winFang *winFangAdd(winFang *parent, int x, int y, int w, int h, char *title, ch ); result->e = evas_object_evas_get(result->layout); -// result->bg = edje_object_part_object_get(elm_layout_edje_get(result->layout), WF_BACKGROUND); + // Sort out the background. + if (result->parent) + snprintf(buf, sizeof(buf), "%s/sky_04.jpg", prefix_data_get()); + else + snprintf(buf, sizeof(buf), "%s/sky_03.jpg", prefix_data_get()); + result->bg = eo_add(ELM_BG_CLASS, obj, + evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), + efl_file_set(buf, NULL), + efl_gfx_visible_set(EINA_TRUE) + ); + elm_win_resize_object_add(result->win, result->bg); + + if (result->parent) + { +// // RGBA, so this is purple, and semi transparent. +// color: 50 0 100 100; // pre multiplied R = (r * a) / 255 +// color: 126 0 255 100; // r = (R * 255) / a + eo_do(result->bg, efl_gfx_color_set(50, 0, 100, 100)); + // This is how fragile things are, internal windows wont show background unless swallowed into the layout, + // but Evas_3D is fussy about it's background image, and wont work with a layout swallowed one. + elm_object_part_content_set(result->layout, WF_BACKGROUND, result->bg); + } + // Evil hacks for no icons, until toolbars get fixed. if (0 == NoIcon[0]) snprintf(NoIcon, sizeof(NoIcon), "%s/spacer.png", prefix_data_get()); /* This aint doing shit. B-( @@ -234,10 +258,18 @@ winFang *winFangAdd(winFang *parent, int x, int y, int w, int h, char *title, ch elm_image_file_set(obj, NoIcon, NULL); */ + // Create our box, the default for where content goes. + result->box = eo_add(ELM_BOX_CLASS, result->layout, + elm_obj_box_homogeneous_set(EINA_FALSE), + elm_obj_box_horizontal_set(EINA_FALSE), + evas_obj_size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL), + evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND) + ); + elm_object_part_content_set(result->layout, WF_BOX, result->box); + if (result->parent) { result->win = result->layout; - elm_layout_signal_emit(result->layout, "isInternal", "isInternal"); // Something to catch clicks on the background, for moving the window. // Coz Elm is uncooperative with this sort of thing, so we need to stick in a rectangle. @@ -250,7 +282,6 @@ winFang *winFangAdd(winFang *parent, int x, int y, int w, int h, char *title, ch ); elm_object_part_content_set(result->layout, WF_UNDERLAY, obj); evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, _onBgClick, result); -// eo_unref(obj); // Create corner handles. snprintf(buf, sizeof(buf), "%s/pt.png", prefix_data_get()); @@ -269,29 +300,37 @@ winFang *winFangAdd(winFang *parent, int x, int y, int w, int h, char *title, ch efl_gfx_visible_set(EINA_TRUE) ); evas_object_event_callback_add(result->hand[i], EVAS_CALLBACK_MOUSE_MOVE, _onHandleMove, result); -// eo_unref(result->hand[i]); } + // Create our window title. result->title = eo_add(ELM_LABEL_CLASS, result->layout, evas_obj_size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL), - evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), + evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, 0.0), efl_gfx_visible_set(EINA_TRUE) ); elm_object_style_set(result->title, "marker"); elm_object_text_set(result->title, title); elm_object_part_content_set(result->layout, WF_TITLE, result->title); -// eo_unref(result->title); + } + else + { + // Hide the window title. + elm_layout_signal_emit(result->layout, "isMain", "isMain"); } + // Create our grid, where things go if you supply coords. result->grid = eo_add(ELM_GRID_CLASS, result->layout, evas_obj_size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL), evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND), - evas_obj_name_set(WF_SWALLOW), - // TODO - Actually, this should be minus the size of the title stuff. + evas_obj_name_set(WF_GRID), elm_obj_grid_size_set(result->w, result->h), efl_gfx_visible_set(EINA_TRUE) ); - elm_object_part_content_set(result->layout, WF_SWALLOW, result->grid); + + // This could live inside the box, but then we have to keep track of the size of it's contents. + // For now we simply track the position and size of the box. +// elm_layout_box_append(result->layout, WF_BOX, result->grid); + elm_object_part_content_set(result->layout, WF_GRID, result->grid); elm_layout_sizing_eval(result->layout); @@ -332,7 +371,7 @@ void winFangCalcMinSize(winFang *win) if (w > win->mw) win->mw = w; if (h > win->mh) win->mh = h; // SWALLOW just returns 0. - evas_object_size_hint_min_get(edje_object_part_object_get(edje, WF_SWALLOW), &w, &h); + evas_object_size_hint_min_get(edje_object_part_object_get(edje, WF_GRID), &w, &h); if (w > win->mw) win->mw = w; if (h > win->mh) win->mh = h; if (win->title) @@ -342,6 +381,7 @@ void winFangCalcMinSize(winFang *win) if (w > win->mw) win->mw = w; win->mh += h; } + // TODO - should peek and poke at the Edje sizes as well. } void winFangDel(winFang *win) @@ -441,9 +481,9 @@ Widget *widgetAdd(winFang *win, char *type , char *title, int x, int y, int w, i } if (x < 0) - elm_layout_box_append(win->layout, WF_BOX, result->obj); + elm_box_pack_end(win->box, result->obj); // WF_BOX else - elm_grid_pack(win->grid, result->obj, x, y, w, h); + elm_grid_pack(win->grid, result->obj, x, y, w, h); // WF_GRID if (title) { @@ -529,7 +569,7 @@ elm_cnp.h seems to be the only docs, not actually linked to the rest of Elm docs Evas_Object *makeMainMenu(winFang *win) { // A toolbar thingy. - return eo_add(ELM_TOOLBAR_CLASS, win->win, + return eo_add(ELM_TOOLBAR_CLASS, win->layout, evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, 0.0), evas_obj_size_hint_align_set(EVAS_HINT_FILL, EVAS_HINT_FILL), elm_obj_toolbar_shrink_mode_set(ELM_TOOLBAR_SHRINK_MENU), @@ -577,7 +617,8 @@ Evas_Object *menuAdd(winFang *win, Evas_Object *tb, char *label) void makeMainMenuFinish(winFang *win, Evas_Object *tb) { // The toolbar needs to be packed into the box AFTER the menus are added. - elm_layout_box_append(win->win, WF_BOX, tb); + elm_object_part_content_set(win->layout, WF_TOOLBAR, tb); + elm_layout_signal_emit(win->layout, "isToolbar", "isToolbar"); evas_object_show(tb); // Bump the menu above the windows. diff --git a/src/libraries/winFang.edc b/src/libraries/winFang.edc index 6942aef..2b409ef 100644 --- a/src/libraries/winFang.edc +++ b/src/libraries/winFang.edc @@ -19,20 +19,13 @@ collections { part { name: "winFang/background"; - type: IMAGE; - // Ignore mouse events. - mouse_events: 0; - // Each part has one or more descriptions, or states. - // They all have to have at least this default state. + type: SWALLOW; + mouse_events: 1; + description { state: "default" 0.0; - // RGBA, so this is purple, and semi transparent. -// color: 50 0 100 100; // pre multiplied R = (r * a) / 255 - color: 126 0 255 100; // r = (R * 255) / a - aspect_preference: HORIZONTAL; - image{normal: "sky_04.jpg";} } - } + } // winFang/background part { name: "winFang/underlay"; @@ -41,16 +34,6 @@ collections description { state: "default" 0.0; - rel1 - { - relative: 0.0 0.0; - to: "winFang/background"; - } - rel2 - { - relative: 1.0 1.0; - to: "winFang/background"; - } } } // winFang/underlay @@ -61,14 +44,7 @@ collections description { state: "default" 0.0; - fixed: 0 1; - visible: 0; - } - - description - { state: "internal" 0.0; - inherit: "default" 0; - visible: 1; + fixed: 1 0; rel1 { relative: 0.0 0.0; @@ -77,59 +53,87 @@ collections rel2 { relative: 1.0 0.0; + offset: 0 20; + to: "winFang/background"; + } + } + description + { state: "main" 0.0; + inherit: "default"; + visible: 0; + rel2 + { + relative: 1.0 0.0; + offset: 0 0; to: "winFang/background"; - offset: 0 15; } } } part - { name: "winFang/box"; - type: BOX; + { name: "winFang/toolbar"; + type: SWALLOW; mouse_events: 1; description - { - state: "default" 0.0; - fixed: 0 0; - box{layout: "vertical";} + { state: "default" 0.0; + fixed: 1 0; + visible: 0; rel1 { - relative: 0.0 0.0; - to: "winFang/background"; + relative: 0.0 1.0; + to: "winFang/title"; } rel2 { relative: 1.0 1.0; - to: "winFang/background"; + offset: 0 0; + to: "winFang/title"; + } + } + description + { state: "toolbar" 0.0; + inherit: "default"; + visible: 1; + rel2 + { + relative: 1.0 1.0; + offset: 0 50; + to: "winFang/title"; } } + } + + part + { name: "winFang/box"; + type: SWALLOW; + mouse_events: 1; description - { state: "internal" 0.0; - inherit: "default" 0; + { + state: "default" 0.0; + fixed: 0 1; rel1 { - relative: 0.0 0.0; - to: "winFang/title"; - offset: 0 15; + relative: 0.0 1.0; + to: "winFang/toolbar"; } rel2 { - relative: 1.0 1.0; + relative: 1.0 1.0; to: "winFang/background"; } } } // winFang/box part - { name: "winFang/content"; + { name: "winFang/grid"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; - fixed: 0 0; + fixed: 0 1; rel1 { relative: 0.0 0.0; @@ -141,20 +145,27 @@ collections to: "winFang/box"; } } - } // winFang/content + } // winFang/grid programs { program - { name: "isInternal"; - signal: "isInternal"; - source: "isInternal"; - action: STATE_SET "internal" 0.0; + { name: "isToolbar"; + signal: "isToolbar"; + source: "isToolbar"; + action: STATE_SET "toolbar" 0.0; + target: "winFang/toolbar"; + } + + program + { name: "isMain"; + signal: "isMain"; + source: "isMain"; + action: STATE_SET "main" 0.0; target: "winFang/title"; - target: "winFang/box"; - } + } } - } } } + diff --git a/src/libraries/winFang.h b/src/libraries/winFang.h index 1885ca1..4a83bc6 100644 --- a/src/libraries/winFang.h +++ b/src/libraries/winFang.h @@ -6,12 +6,13 @@ #include -#define WF_BACKGROUND "winFang/background" #define WF_LAYOUT "winFang/layout" +#define WF_BACKGROUND "winFang/background" #define WF_UNDERLAY "winFang/underlay" #define WF_TITLE "winFang/title" +#define WF_TOOLBAR "winFang/toolbar" #define WF_BOX "winFang/box" -#define WF_SWALLOW "winFang/content" +#define WF_GRID "winFang/grid" // Evil hack around ELM's problem with lack of toolbar item icons. char NoIcon[PATH_MAX]; @@ -44,9 +45,10 @@ typedef struct _winFang Evas *e; struct _winFang *parent; Evas_Object *win; + Evas_Object *bg; Evas_Object *layout; Evas_Object *title; - Evas_Object *bg; + Evas_Object *box; Evas_Object *grid; EPhysics_Body *body; Eina_Clist widgets; diff --git a/src/purkle/purkle.c b/src/purkle/purkle.c index 97253cf..378879f 100644 --- a/src/purkle/purkle.c +++ b/src/purkle/purkle.c @@ -12,7 +12,7 @@ static winFang *purkleAdd(winFang *parent, int w, int h, EPhysics_World *world) { winFang *me; - me = winFangAdd(parent, 300, 26, w, h, "chatter box", "purkle", world); + me = winFangAdd(parent, 300, 52, w, h, "chatter box", "purkle", world); history = widgetAdd(me, WT_TEXTBOX, "", -1, -1, -1, -1); entry = widgetAdd(me, WT_ENTRY, "", -1, -1, -1, -1); -- cgit v1.1