1. remove excess swallows - now edje handles that itself
authorCarsten Haitzler <raster@rasterman.com>
Thu, 8 Oct 2009 05:26:58 +0000 (05:26 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Thu, 8 Oct 2009 05:26:58 +0000 (05:26 +0000)
2. beforfe show.. calc first so initial windowis the right size!

SVN revision: 42953

15 files changed:
src/lib/elm_bubble.c
src/lib/elm_button.c
src/lib/elm_check.c
src/lib/elm_frame.c
src/lib/elm_hover.c
src/lib/elm_index.c
src/lib/elm_layout.c
src/lib/elm_notify.c
src/lib/elm_pager.c
src/lib/elm_progressbar.c
src/lib/elm_radio.c
src/lib/elm_slider.c
src/lib/elm_spinner.c
src/lib/elm_toggle.c
src/lib/elm_win.c

index 781f06b..b720759 100644 (file)
@@ -59,10 +59,6 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   if (wd->content)
-     edje_object_part_swallow(wd->bbl, "elm.swallow.content", wd->content);
-   if (wd->icon)
-     edje_object_part_swallow(wd->bbl, "elm.swallow.icon", wd->icon);
    _sizing_eval(data);
 }
 
index 36e4fc2..ac34f24 100644 (file)
@@ -85,7 +85,6 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
    Widget_Data *wd = elm_widget_data_get(data);
    if (!wd) return;
    if (obj != wd->icon) return;
-   edje_object_part_swallow(wd->btn, "elm.swallow.content", obj);
    _sizing_eval(data);
 }
 
index c0ba760..39341a2 100644 (file)
@@ -98,7 +98,6 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
    if (obj != wd->icon) return;
-   edje_object_part_swallow(wd->chk, "elm.swallow.content", obj);
    Evas_Coord mw, mh;
    evas_object_size_hint_min_get(obj, &mw, &mh);
    _sizing_eval(data);
index 55201e4..2bdd4bc 100644 (file)
@@ -57,8 +57,6 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-
-   edje_object_part_swallow(wd->frm, "elm.swallow.content", obj);
    _sizing_eval(data);
 }
 
index f87cd95..9792328 100644 (file)
@@ -23,7 +23,6 @@ static void _del_hook(Evas_Object *obj);
 static void _theme_hook(Evas_Object *obj);
 static void _sizing_eval(Evas_Object *obj);
 static void _reval_content(Evas_Object *obj);
-static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
 static void _sub_del(void *data, Evas_Object *obj, void *event_info);
 static void _hov_show_do(Evas_Object *obj);
 static void _hov_move(void *data, Evas *e, Evas_Object *obj, void *event_info);
@@ -87,9 +86,7 @@ _sizing_eval(Evas_Object *obj)
    evas_object_move(wd->cov, x, y);
    evas_object_resize(wd->cov, w, h);
    evas_object_size_hint_min_set(wd->offset, x2 - x, y2 - y);
-   edje_object_part_swallow(wd->cov, "elm.swallow.offset", wd->offset);
    evas_object_size_hint_min_set(wd->size, w2, h2);
-   edje_object_part_swallow(wd->cov, "elm.swallow.size", wd->size);
 }
 
 static void
@@ -104,23 +101,6 @@ _reval_content(Evas_Object *obj)
 }
 
 static void
-_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   const Eina_List *l;
-   const Subinfo *si;
-
-   EINA_LIST_FOREACH(wd->subs, l, si)
-     {
-       if (si->obj == obj)
-         {
-            edje_object_part_swallow(wd->cov, si->swallow, si->obj);
-            break;
-         }
-     }
-}
-
-static void
 _sub_del(void *data, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -132,9 +112,6 @@ _sub_del(void *data, Evas_Object *obj, void *event_info)
      {
        if (si->obj == sub)
          {
-            evas_object_event_callback_del(sub, 
-                                            EVAS_CALLBACK_CHANGED_SIZE_HINTS, 
-                                            _changed_size_hints);
             wd->subs = eina_list_remove_list(wd->subs, l);
             eina_stringshare_del(si->swallow);
             free(si);
@@ -390,9 +367,6 @@ elm_hover_content_set(Evas_Object *obj, const char *swallow, Evas_Object *conten
      {
        elm_widget_sub_object_add(obj, content);
        edje_object_part_swallow(wd->cov, buf, content);
-       evas_object_event_callback_add(content, 
-                                       EVAS_CALLBACK_CHANGED_SIZE_HINTS,
-                                      _changed_size_hints, obj);
        si = ELM_NEW(Subinfo);
        si->swallow = eina_stringshare_add(buf);
        si->obj = content;
index e8fe4e9..cd6ab6c 100644 (file)
@@ -194,7 +194,6 @@ _index_box_auto_fill(Evas_Object *obj, Evas_Object *box, int level)
    Item *it, **itfit = NULL;
    Evas_Coord mw, mh, w, h;
    int i = 0;
-   char buf[1024];
 
    if (wd->level_active[level]) return;
    evas_object_geometry_get(box, NULL, NULL, &w, &h);
@@ -235,10 +234,7 @@ _index_box_auto_fill(Evas_Object *obj, Evas_Object *box, int level)
                }
           }
      }
-   snprintf(buf, sizeof(buf), "elm.swallow.index.%i", level);
-//   evas_object_size_hint_min_get(box, &mw, &mh);
-//   evas_object_size_hint_min_set(box, mw, 0);
-   edje_object_part_swallow(wd->base, buf, box);
+   evas_object_smart_calculate(box);
    wd->level_active[level] = 1;
 }
 
@@ -248,7 +244,6 @@ _index_box_clear(Evas_Object *obj, Evas_Object *box, int level)
    Widget_Data *wd = elm_widget_data_get(obj);
    Eina_List *l;
    Item *it;
-   char buf[1024];
 
    if (!wd->level_active[level]) return;
    EINA_LIST_FOREACH(wd->items, l, it)
@@ -258,8 +253,6 @@ _index_box_clear(Evas_Object *obj, Evas_Object *box, int level)
         evas_object_del(it->base);
         it->base = 0;
      }
-   snprintf(buf, sizeof(buf), "elm.swallow.index.%i", level);
-   edje_object_part_swallow(wd->base, buf, box);
    wd->level_active[level] = 0;
 }
 
index b7ac5d5..c920a46 100644 (file)
@@ -70,18 +70,7 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   const Eina_List *l;
-   const Subinfo *si;
-
-   EINA_LIST_FOREACH(wd->subs, l, si)
-     {
-       if (si->obj == obj)
-         {
-            edje_object_part_swallow(wd->lay, si->swallow, obj);
-            _sizing_eval(data);
-            break;
-         }
-     }
+   _sizing_eval(data);
 }
 
 static void
index 5490e09..af4c969 100644 (file)
@@ -66,8 +66,6 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-
-   edje_object_part_swallow(wd->notify, "elm.swallow.content", obj);
    _sizing_eval(data);
 }
 
index 11e19b7..d264d78 100644 (file)
@@ -80,7 +80,6 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Item *it = data;
-   edje_object_part_swallow(it->base, "elm.swallow.content", it->content);
    edje_object_size_min_calc(it->base, &it->minw, &it->minh);
    _sizing_eval(it->obj);
 }
index af3426a..c164d8c 100644 (file)
@@ -119,7 +119,6 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
    if (obj != wd->icon) return;
-   edje_object_part_swallow(wd->progressbar, "elm.swallow.content", obj);
    _sizing_eval(data);
 }
 
index 8587f48..1e17129 100644 (file)
@@ -125,9 +125,6 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
    if (obj != wd->icon) return;
-   edje_object_part_swallow(wd->chk, "elm.swallow.content", obj);
-   Evas_Coord mw, mh;
-   evas_object_size_hint_min_get(obj, &mw, &mh);
    _sizing_eval(data);
 }
 
index a3af2d0..32b3ab1 100644 (file)
@@ -124,7 +124,6 @@ _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
    if (obj != wd->icon) return;
-   edje_object_part_swallow(wd->slider, "elm.swallow.content", obj);
    _sizing_eval(data);
 }
 
index 8705b38..2a01557 100644 (file)
@@ -67,6 +67,8 @@ static void
 _theme_hook(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
+   _elm_theme_set(wd->spinner, "spinner", "base", elm_widget_style_get(obj));
+   edje_object_part_swallow(wd->spinner, "elm.swallow.entry", wd->ent);
    _write_label(obj);
    edje_object_message_signal_process(wd->spinner);
    edje_object_scale_set(wd->spinner, elm_widget_scale_get(obj) * _elm_config->scale);
index 874c2e5..ea0fae4 100644 (file)
@@ -84,11 +84,7 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   Evas_Coord mw, mh;
-
    if (obj != wd->icon) return;
-   edje_object_part_swallow(wd->tgl, "elm.swallow.content", obj);
-   evas_object_size_hint_min_get(obj, &mw, &mh);
    _sizing_eval(data);
 }
 
index 2460302..b5eb389 100644 (file)
@@ -22,6 +22,7 @@ struct _Elm_Win
 };
 
 static void _elm_win_obj_callback_del(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _elm_win_obj_callback_show(void *data, Evas *e, Evas_Object *obj, void *event_info);
 static void _elm_win_resize(Ecore_Evas *ee);
 static void _elm_win_delete_request(Ecore_Evas *ee);
 static void _elm_win_resize_job(void *data);
@@ -108,6 +109,15 @@ _elm_win_obj_callback_del(void *data, Evas *e, Evas_Object *obj, void *event_inf
 }
 
 static void
+_elm_win_obj_callback_show(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+   // this is called to make sure all smart containers have calculated their
+   // sizes BEFORE we show the window to make sure it initially appears at
+   // our desired size (ie min size is known first)
+   evas_call_smarts_calculate(e);
+}
+
+static void
 _elm_win_delete_request(Ecore_Evas *ee)
 {
    Evas_Object *obj = ecore_evas_object_associate_get(ee);
@@ -356,6 +366,8 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
    evas_object_layer_set(win->win_obj, 50);
    evas_object_pass_events_set(win->win_obj, 1);
 
+   evas_object_event_callback_add(win->win_obj, EVAS_CALLBACK_SHOW,
+                                 _elm_win_obj_callback_show, win);
    ecore_evas_object_associate(win->ee, win->win_obj,
                               ECORE_EVAS_OBJECT_ASSOCIATE_BASE |
                               ECORE_EVAS_OBJECT_ASSOCIATE_STACK |
@@ -700,7 +712,6 @@ static void
 _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Widget_Data *wd = elm_widget_data_get(data);
-   edje_object_part_swallow(wd->frm, "elm.swallow.content", obj);
    _sizing_eval(data);
 }