toolbar needs to be able to adjust better to layout
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 10 May 2013 07:53:34 +0000 (16:53 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 10 May 2013 07:53:34 +0000 (16:53 +0900)
as part of 1.8 review... elm toolbar really should add some signals so
theme can adjust better.

src/lib/elm_toolbar.c

index 8b5c6ba..6841f9e 100644 (file)
@@ -984,6 +984,10 @@ _item_theme_hook(Evas_Object *obj,
              edje_object_part_text_escaped_set(view, "elm.text", it->label);
              edje_object_signal_emit(view, "elm,state,text,visible", "elm");
           }
+        if (sd->vertical)
+          edje_object_signal_emit(view, "elm,orient,vertical", "elm");
+        else
+          edje_object_signal_emit(view, "elm,orient,horizontal", "elm");
      }
    else
      {
@@ -993,15 +997,17 @@ _item_theme_hook(Evas_Object *obj,
                (obj, view, "toolbar", "separator", style);
              if (sd->vertical)
                {
+                  edje_object_signal_emit(view, "elm,orient,vertical", "elm");
                   evas_object_size_hint_weight_set
-                    (view, EVAS_HINT_EXPAND, -1.0);
+                    (view, EVAS_HINT_EXPAND, 0.0);
                   evas_object_size_hint_align_set
                     (view, EVAS_HINT_FILL, EVAS_HINT_FILL);
                }
              else
                {
+                  edje_object_signal_emit(view, "elm,orient,horizontal", "elm");
                   evas_object_size_hint_weight_set
-                    (view, -1.0, EVAS_HINT_EXPAND);
+                    (view, 0.0, EVAS_HINT_EXPAND);
                   evas_object_size_hint_align_set
                     (view, EVAS_HINT_FILL, EVAS_HINT_FILL);
                }
@@ -1011,6 +1017,10 @@ _item_theme_hook(Evas_Object *obj,
              elm_widget_theme_object_set
                (obj, view, "toolbar", "object", style);
              edje_object_part_swallow(view, "elm.swallow.object", it->object);
+             if (sd->vertical)
+               edje_object_signal_emit(view, "elm,orient,vertical", "elm");
+             else
+               edje_object_signal_emit(view, "elm,orient,horizontal", "elm");
           }
      }
 
@@ -1151,10 +1161,18 @@ _elm_toolbar_smart_theme(Eo *obj, void *_pd, va_list *list)
    elm_widget_theme_object_set
      (obj, wd->resize_obj, "toolbar", "base",
      elm_widget_style_get(obj));
+   if (sd->vertical)
+     edje_object_signal_emit(wd->resize_obj, "elm,orient,vertical", "elm");
+   else
+     edje_object_signal_emit(wd->resize_obj, "elm,orient,horizontal", "elm");
 
    if (!elm_layout_theme_set
        (sd->more, "toolbar", "more", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
+   if (sd->vertical)
+     edje_object_signal_emit(sd->more, "elm,orient,vertical", "elm");
+   else
+     edje_object_signal_emit(sd->more, "elm,orient,horizontal", "elm");
 
    _mirrored_set(obj, elm_widget_mirrored_get(obj));
 
@@ -2492,6 +2510,10 @@ _elm_toolbar_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    priv->more = elm_layout_add(obj);
    if (!elm_layout_theme_set(priv->more, "toolbar", "more", "default"))
      CRITICAL("Failed to set layout!");
+   if (priv->vertical)
+     edje_object_signal_emit(priv->more, "elm,orient,vertical", "elm");
+   else
+     edje_object_signal_emit(priv->more, "elm,orient,horizontal", "elm");
 
    elm_widget_sub_object_add(obj, priv->more);
    evas_object_show(priv->more);