working much better elm config stuff. hs old config sliders still there, now
authorCarsten Haitzler <raster@rasterman.com>
Wed, 12 May 2010 16:32:12 +0000 (16:32 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Wed, 12 May 2010 16:32:12 +0000 (16:32 +0000)
adding theme tab. not complete tho.

SVN revision: 48778

src/bin/config.c
src/lib/Elementary.h.in
src/lib/elm_flip.c

index 90bd31a..9c3946b 100644 (file)
@@ -56,6 +56,576 @@ fs_change(void *data, Evas_Object *obj, void *event_info)
 }
 
 static void
+_status_basic(Evas_Object *win, Evas_Object *bx0)
+{
+   Evas_Object *lb, *fr;
+   
+   fr = elm_frame_add(win);
+   evas_object_size_hint_weight_set(fr, 1.0, 1.0);
+   elm_frame_label_set(fr, "Information");
+   elm_box_pack_end(bx0, fr);
+   evas_object_show(fr);
+   
+   lb = elm_label_add(win);
+   elm_label_label_set(lb,
+                       "Applying configuration change"
+                       );
+   elm_frame_content_set(fr, lb);
+   evas_object_show(lb);
+}
+
+static void
+_status_config(Evas_Object *win, Evas_Object *bx0)
+{
+   Evas_Object *lb, *pd, *bx2, *fr, *sl, *sp;
+   
+   fr = elm_frame_add(win);
+   evas_object_size_hint_weight_set(fr, 1.0, 1.0);
+   evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_frame_label_set(fr, "Sizing");
+   elm_box_pack_end(bx0, fr);
+   evas_object_show(fr);
+   
+   bx2 = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx2, 1.0, 0.0);
+   evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, 0.5);
+   
+   pd = elm_frame_add(win);
+   evas_object_size_hint_weight_set(pd, 1.0, 0.0);
+   evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5);
+   elm_object_style_set(pd, "pad_medium");
+   elm_box_pack_end(bx2, pd);
+   evas_object_show(pd);
+   
+   lb = elm_label_add(win);
+   evas_object_size_hint_weight_set(lb, 1.0, 0.0);
+   evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);
+   elm_label_label_set(lb,"<hilight>Scale</>");
+   elm_frame_content_set(pd, lb);
+   evas_object_show(lb);
+   
+   sl = elm_slider_add(win);
+   evas_object_size_hint_weight_set(sl, 1.0, 0.0);
+   evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+   elm_slider_span_size_set(sl, 120);
+   elm_slider_unit_format_set(sl, "%1.2f");
+   elm_slider_indicator_format_set(sl, "%1.2f");
+   elm_slider_min_max_set(sl, 0.25, 5.0);
+   elm_slider_value_set(sl, elm_scale_get());
+   elm_box_pack_end(bx2, sl);
+   evas_object_show(sl);
+   
+   evas_object_smart_callback_add(sl, "changed", sc_round, NULL);
+   evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL);
+   
+   sp = elm_separator_add(win);
+   elm_separator_horizontal_set(sp, 1);
+   evas_object_size_hint_weight_set(sp, 1.0, 0.0);
+   evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
+   elm_box_pack_end(bx2, sp);
+   evas_object_show(sp);
+   
+   pd = elm_frame_add(win);
+   evas_object_size_hint_weight_set(pd, 1.0, 0.0);
+   evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5);
+   elm_object_style_set(pd, "pad_medium");
+   elm_box_pack_end(bx2, pd);
+   evas_object_show(pd);
+   
+   lb = elm_label_add(win);
+   evas_object_size_hint_weight_set(lb, 1.0, 0.0);
+   evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);
+   elm_label_label_set(lb, "<hilight>Finger Size</><br>");
+   elm_frame_content_set(pd, lb);
+   evas_object_show(lb);
+   
+   sl = elm_slider_add(win);
+   evas_object_size_hint_weight_set(sl, 1.0, 0.0);
+   evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+   elm_slider_span_size_set(sl, 120);
+   elm_slider_unit_format_set(sl, "%1.0f");
+   elm_slider_indicator_format_set(sl, "%1.0f");
+   elm_slider_min_max_set(sl, 5, 200);
+   elm_slider_value_set(sl, elm_finger_size_get());
+   elm_box_pack_end(bx2, sl);
+   evas_object_show(sl);
+   
+   evas_object_smart_callback_add(sl, "changed", fs_round, NULL);
+   evas_object_smart_callback_add(sl, "delay,changed", fs_change, NULL);
+   
+   // FIXME: add theme selector (basic mode and advanced for fallbacks)
+   // FIXME: save config
+   // FIXME: profile selector / creator etc.
+   // 
+   elm_frame_content_set(fr, bx2);
+   evas_object_show(bx2);
+}
+
+static void
+_flip_to(Evas_Object *win, const char *name)
+{
+   Evas_Object *wid, *fl, *holder, *front, *back;
+   int front_vis;
+   wid        = evas_object_data_get(win, name);
+   fl         = evas_object_data_get(win, "flip");
+   holder     = evas_object_data_get(win, "holder");
+   front_vis  = elm_flip_front_get(fl);
+   if (front_vis)
+     {
+        front = elm_flip_content_front_get(fl);
+        back  = elm_flip_content_back_get(fl);
+        elm_table_pack(holder, back, 0, 0, 1, 1);
+        evas_object_hide(back);
+//        elm_table_unpack(holder, wid); // this should NOT be needed - but in evas_table/elm_table
+        elm_flip_content_back_set(fl, wid);
+     }
+   else
+     {
+        front = elm_flip_content_front_get(fl);
+        back  = elm_flip_content_back_get(fl);
+        elm_table_pack(holder, front, 0, 0, 1, 1);
+        evas_object_hide(front);
+//        elm_table_unpack(holder, wid); // this should NOT be needed - but in evas_table/elm_table
+        elm_flip_content_front_set(fl, wid);
+     }
+   
+   evas_object_show(wid);
+   elm_flip_go(fl, ELM_FLIP_ROTATE_Y_CENTER_AXIS);
+}
+
+static void
+_cf_sizing(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "sizing");
+}
+
+static void
+_cf_themes(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "themes");
+}
+
+static void
+_cf_fonts(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "fonts");
+}
+
+static void
+_cf_profiles(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "profiles");
+}
+
+static void
+_cf_scrolling(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "scrolling");
+}
+
+static void
+_cf_rendering(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "rendering");
+}
+
+static void
+_cf_caches(void *data, Evas_Object *obj, void *event_info)
+{
+   _flip_to(data, "caches");
+}
+
+static void
+_theme_use(void *data, Evas_Object *obj, void *event_info)
+{
+   printf("not implemented\n");
+}
+
+static void
+_theme_browse(void *data, Evas_Object *obj, void *event_info)
+{
+   printf("not implemented\n");
+}
+
+static void
+_status_config_sizing(Evas_Object *win, Evas_Object *holder)
+{
+   Evas_Object *lb, *pd, *bx2, *sl, *sp;
+   
+   bx2 = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx2, 1.0, 0.0);
+   evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, 0.5);
+   
+   pd = elm_frame_add(win);
+   evas_object_size_hint_weight_set(pd, 1.0, 0.0);
+   evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5);
+   elm_object_style_set(pd, "pad_medium");
+   elm_box_pack_end(bx2, pd);
+   evas_object_show(pd);
+   
+   lb = elm_label_add(win);
+   evas_object_size_hint_weight_set(lb, 1.0, 0.0);
+   evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);
+   elm_label_label_set(lb,"<hilight>Scale</>");
+   elm_frame_content_set(pd, lb);
+   evas_object_show(lb);
+   
+   sl = elm_slider_add(win);
+   evas_object_size_hint_weight_set(sl, 1.0, 0.0);
+   evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+   elm_slider_span_size_set(sl, 120);
+   elm_slider_unit_format_set(sl, "%1.2f");
+   elm_slider_indicator_format_set(sl, "%1.2f");
+   elm_slider_min_max_set(sl, 0.25, 5.0);
+   elm_slider_value_set(sl, elm_scale_get());
+   elm_box_pack_end(bx2, sl);
+   evas_object_show(sl);
+   
+   evas_object_smart_callback_add(sl, "changed", sc_round, NULL);
+   evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL);
+   
+   sp = elm_separator_add(win);
+   elm_separator_horizontal_set(sp, 1);
+   evas_object_size_hint_weight_set(sp, 1.0, 0.0);
+   evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
+   elm_box_pack_end(bx2, sp);
+   evas_object_show(sp);
+   
+   pd = elm_frame_add(win);
+   evas_object_size_hint_weight_set(pd, 1.0, 0.0);
+   evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5);
+   elm_object_style_set(pd, "pad_medium");
+   elm_box_pack_end(bx2, pd);
+   evas_object_show(pd);
+   
+   lb = elm_label_add(win);
+   evas_object_size_hint_weight_set(lb, 1.0, 0.0);
+   evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);
+   elm_label_label_set(lb, "<hilight>Finger Size</><br>");
+   elm_frame_content_set(pd, lb);
+   evas_object_show(lb);
+   
+   sl = elm_slider_add(win);
+   evas_object_size_hint_weight_set(sl, 1.0, 0.0);
+   evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+   elm_slider_span_size_set(sl, 120);
+   elm_slider_unit_format_set(sl, "%1.0f");
+   elm_slider_indicator_format_set(sl, "%1.0f");
+   elm_slider_min_max_set(sl, 5, 200);
+   elm_slider_value_set(sl, elm_finger_size_get());
+   elm_box_pack_end(bx2, sl);
+   evas_object_show(sl);
+   
+   evas_object_smart_callback_add(sl, "changed", fs_round, NULL);
+   evas_object_smart_callback_add(sl, "delay,changed", fs_change, NULL);
+
+   evas_object_data_set(win, "sizing", bx2);
+   
+   elm_table_pack(holder, bx2, 0, 0, 1, 1);
+}
+
+static Evas_Object *
+_sample_theme_new(Evas_Object *win)
+{
+   Evas_Object *base, *bg, *bt, *ck, *rd, *rdg, *sl, *fr, *li, *rc, *sp;
+   
+   base = elm_table_add(win);
+   evas_object_size_hint_weight_set(base, 1.0, 1.0);
+   evas_object_size_hint_align_set(base, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   
+   bg = elm_bg_add(win);
+   evas_object_size_hint_weight_set(bg, 1.0, 1.0);
+   evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(base, bg, 0, 0, 2, 4);
+   evas_object_show(bg);
+   
+   bt = elm_button_add(win);
+   elm_button_label_set(bt, "Button");
+   elm_table_pack(base, bt, 0, 0, 1, 1);
+   evas_object_show(bt);
+
+   ck = elm_check_add(win);
+   elm_check_label_set(ck, "Check");
+   elm_table_pack(base, ck, 0, 1, 1, 1);
+   evas_object_show(ck);
+   
+   rd = elm_radio_add(win);
+   elm_radio_state_value_set(rd, 0);
+   elm_radio_label_set(rd, "Radio 1");
+   elm_table_pack(base, rd, 1, 0, 1, 1);
+   evas_object_show(rd);
+   rdg = rd;
+   
+   rd = elm_radio_add(win);
+   elm_radio_state_value_set(rd, 1);
+   elm_radio_label_set(rd, "Radio 2");
+   elm_radio_group_add(rd, rdg);
+   elm_table_pack(base, rd, 1, 1, 1, 1);
+   evas_object_show(rd);
+   
+   sp = elm_separator_add(win);
+   elm_separator_horizontal_set(sp, 1);
+   evas_object_size_hint_weight_set(sp, 1.0, 0.0);
+   evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
+   elm_table_pack(base, sl, 0, 2, 2, 1);
+   evas_object_show(sp);
+   
+   sl = elm_slider_add(win);
+   elm_slider_label_set(sl, "Slider");
+   elm_slider_span_size_set(sl, 120);
+   elm_slider_min_max_set(sl, 1, 10);
+   elm_slider_value_set(sl, 4);
+   evas_object_size_hint_weight_set(sl, 1.0, 0.0);
+   evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(base, sl, 0, 3, 2, 1);
+   evas_object_show(sl);
+
+   fr = elm_frame_add(win);
+   elm_frame_label_set(fr, "Frame");
+   elm_table_pack(base, fr, 0, 4, 2, 1);
+   evas_object_size_hint_weight_set(fr, 1.0, 1.0);
+   evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_show(fr);
+   
+   li = elm_list_add(win);
+   evas_object_size_hint_weight_set(li, 1.0, 1.0);
+   evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_frame_content_set(fr, li);
+   evas_object_show(li);
+   
+   elm_list_item_append(li, "List Item 1", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "Second Item", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "Third Item", NULL, NULL,  NULL, NULL);
+   elm_list_go(li);
+
+   rc = evas_object_rectangle_add(evas_object_evas_get(win));
+   evas_object_size_hint_min_set(rc, 120, 120);
+   elm_table_pack(base, rc, 0, 4, 2, 1);
+   
+   return base;
+}
+
+static void
+_status_config_themes(Evas_Object *win, Evas_Object *holder)
+{
+   Evas_Object *tb, *rc, *sc, *sp, *li, *pd, *fr, *bt, *sample;
+   
+   tb = elm_table_add(win);
+   evas_object_size_hint_weight_set(tb, 1.0, 1.0);
+   evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   
+   rc = evas_object_rectangle_add(evas_object_evas_get(win));
+   evas_object_size_hint_min_set(rc, 240, 120);
+   elm_table_pack(tb, rc, 0, 0, 1, 1);
+
+   rc = evas_object_rectangle_add(evas_object_evas_get(win));
+   evas_object_size_hint_min_set(rc, 240, 240);
+   elm_table_pack(tb, rc, 0, 1, 1, 1);
+   
+   /////////////////////////////////////////////
+   
+   pd = elm_frame_add(win);
+   elm_object_style_set(pd, "pad_medium");
+   evas_object_size_hint_weight_set(pd, 1.0, 1.0);
+   evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, pd, 0, 0, 1, 1);
+   evas_object_show(pd);
+   
+   li = elm_list_add(win);
+   evas_object_size_hint_weight_set(li, 1.0, 1.0);
+   evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_frame_content_set(pd, li);
+   evas_object_show(li);
+   
+   // FIXME: list all themes:
+   // ~/.elementary/themes/*.edj
+   // $PREFIX/datadir/themes/*.edj
+   
+   elm_list_item_append(li, "theme 1", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "theme 2", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "theme 3", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "theme 4", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "theme 5", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "theme 6", NULL, NULL,  NULL, NULL);
+   elm_list_item_append(li, "theme 7", NULL, NULL,  NULL, NULL);
+
+   elm_list_go(li);
+   
+   pd = elm_frame_add(win);
+   elm_object_style_set(pd, "pad_medium");
+   evas_object_size_hint_weight_set(pd, 1.0, 1.0);
+   evas_object_size_hint_align_set(pd, 0.9, 0.9);
+   elm_table_pack(tb, pd, 0, 0, 1, 1);
+   evas_object_show(pd);
+   
+   bt = elm_button_add(win);
+   evas_object_smart_callback_add(bt, "clicked", _theme_browse, win);
+   elm_button_label_set(bt, "Browse...");
+   evas_object_size_hint_weight_set(bt, 1.0, 1.0);
+   evas_object_size_hint_align_set(bt, 0.9, 0.9);
+   elm_frame_content_set(pd, bt);
+   evas_object_show(bt);
+   
+   pd = elm_frame_add(win);
+   elm_object_style_set(pd, "pad_medium");
+   evas_object_size_hint_weight_set(pd, 1.0, 0.0);
+   evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, pd, 0, 1, 1, 1);
+   evas_object_show(pd);
+
+   fr = elm_frame_add(win);
+   elm_frame_label_set(fr, "Preview");
+   evas_object_size_hint_weight_set(fr, 1.0, 1.0);
+   evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_frame_content_set(pd, fr);
+   evas_object_show(fr);
+   
+   sc = elm_scroller_add(win);
+   elm_scroller_bounce_set(sc, 0, 0);
+   evas_object_size_hint_weight_set(sc, 1.0, 1.0);
+   evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_frame_content_set(fr, sc);
+   evas_object_show(sc);
+   
+   sample = _sample_theme_new(win);
+   elm_scroller_content_set(sc, sample);
+   evas_object_show(sample);
+   evas_object_data_set(win, "sample", sample);
+   
+   /////////////////////////////////////////////
+   sp = elm_separator_add(win);
+   elm_separator_horizontal_set(sp, 1);
+   evas_object_size_hint_weight_set(sp, 1.0, 0.0);
+   evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
+   elm_table_pack(tb, sp, 0, 2, 1, 1);
+   evas_object_show(sp);
+   
+   pd = elm_frame_add(win);
+   elm_object_style_set(pd, "pad_medium");
+   evas_object_size_hint_weight_set(pd, 0.0, 0.0);
+   evas_object_size_hint_align_set(pd, 0.5, 0.5);
+   elm_table_pack(tb, pd, 0, 3, 1, 1);
+   evas_object_show(pd);
+   
+   bt = elm_button_add(win);
+   evas_object_smart_callback_add(bt, "clicked", _theme_use, win);
+   elm_button_label_set(bt, "Use Theme");
+   evas_object_size_hint_weight_set(bt, 0.0, 0.0);
+   evas_object_size_hint_align_set(bt, 0.5, 0.5);
+   elm_frame_content_set(pd, bt);
+   evas_object_show(bt);
+   
+   evas_object_data_set(win, "themes", tb);
+   
+   elm_table_pack(holder, tb, 0, 0, 1, 1);
+}
+
+static void
+_unimplemented(Evas_Object *win, Evas_Object *holder, const char *name)
+{
+   Evas_Object *lb, *pd, *bx2;
+   
+   bx2 = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx2, 1.0, 0.0);
+   evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, 0.5);
+   
+   pd = elm_frame_add(win);
+   evas_object_size_hint_weight_set(pd, 0.0, 0.0);
+   evas_object_size_hint_align_set(pd, 0.5, 0.5);
+   elm_object_style_set(pd, "pad_medium");
+   elm_box_pack_end(bx2, pd);
+   evas_object_show(pd);
+   
+   lb = elm_label_add(win);
+   evas_object_size_hint_weight_set(lb, 0.0, 0.0);
+   evas_object_size_hint_align_set(lb, 0.5, 0.5);
+   elm_label_label_set(lb,"<hilight>Not implemented yet</>");
+   elm_frame_content_set(pd, lb);
+   evas_object_show(lb);
+   
+   evas_object_data_set(win, name, bx2);
+   
+   elm_table_pack(holder, bx2, 0, 0, 1, 1);
+}
+
+static void
+_status_config_fonts(Evas_Object *win, Evas_Object *holder)
+{
+   _unimplemented(win, holder, "fonts");
+}
+
+static void
+_status_config_profiles(Evas_Object *win, Evas_Object *holder)
+{
+   _unimplemented(win, holder, "profiles");
+}
+
+static void
+_status_config_scrolling(Evas_Object *win, Evas_Object *holder)
+{
+   _unimplemented(win, holder, "scrolling");
+}
+
+static void
+_status_config_rendering(Evas_Object *win, Evas_Object *holder)
+{
+   _unimplemented(win, holder, "rendering");
+}
+
+static void
+_status_config_caches(Evas_Object *win, Evas_Object *holder)
+{
+   _unimplemented(win, holder, "caches");
+}
+
+static void
+_status_config_full(Evas_Object *win, Evas_Object *bx0)
+{
+   Evas_Object *tb, *holder, *fl;
+   Elm_Toolbar_Item *it;
+   
+   tb = elm_toolbar_add(win);
+   elm_toolbar_homogenous_set(tb, 0);
+   evas_object_size_hint_weight_set(tb, 1.0, 0.0);
+   evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+   it = elm_toolbar_item_add(tb, NULL, "Sizing", _cf_sizing, win);
+   elm_toolbar_item_add(tb, NULL, "Theme", _cf_themes, win);
+   
+   elm_toolbar_item_add(tb, NULL, "Fonts", _cf_fonts, win);
+   elm_toolbar_item_add(tb, NULL, "Profiles", _cf_profiles, win);
+   elm_toolbar_item_add(tb, NULL, "Scrolling", _cf_scrolling, win);
+   elm_toolbar_item_add(tb, NULL, "Rendering", _cf_rendering, win);
+   elm_toolbar_item_add(tb, NULL, "Caches", _cf_caches, win);
+   elm_box_pack_end(bx0, tb);
+   evas_object_show(tb);
+   
+   holder = elm_table_add(win);
+   evas_object_size_hint_align_set(holder, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(holder, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_box_pack_end(bx0, holder);
+   evas_object_show(holder);
+   evas_object_data_set(win, "holder", holder);
+   
+   _status_config_sizing(win, holder);
+   _status_config_themes(win, holder);
+   _status_config_fonts(win, holder);
+   _status_config_profiles(win, holder);
+   _status_config_rendering(win, holder);
+   _status_config_scrolling(win, holder);
+   _status_config_caches(win, holder);
+   
+   fl = elm_flip_add(win);
+   evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_table_pack(holder, fl, 0, 0, 1, 1);
+   evas_object_show(fl);
+   evas_object_data_set(win, "flip", fl);
+   
+   elm_toolbar_item_select(it);
+}
+
+static void
 status_win(void)
 {
    Evas_Object *win, *bg, *bx0;
@@ -74,109 +644,10 @@ status_win(void)
    elm_win_resize_object_add(win, bx0);
    evas_object_show(bx0);
 
-   if (!interactive)
-     {
-        Evas_Object *lb, *fr;
-        
-        fr = elm_frame_add(win);
-        evas_object_size_hint_weight_set(fr, 1.0, 1.0);
-        elm_frame_label_set(fr, "Information");
-        elm_box_pack_end(bx0, fr);
-        evas_object_show(fr);
-        
-        lb = elm_label_add(win);
-        elm_label_label_set(lb,
-                            "Applying configuration change"
-                            );
-        elm_frame_content_set(fr, lb);
-        evas_object_show(lb);
-     }
-   else
-     {
-        Evas_Object *lb, *pd, *bx2, *fr, *sl, *sp;
-        
-        fr = elm_frame_add(win);
-        evas_object_size_hint_weight_set(fr, 1.0, 1.0);
-        evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
-        elm_frame_label_set(fr, "Sizing");
-        elm_box_pack_end(bx0, fr);
-        evas_object_show(fr);
-        
-        bx2 = elm_box_add(win);
-        evas_object_size_hint_weight_set(bx2, 1.0, 0.0);
-        evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, 0.5);
-        
-        pd = elm_frame_add(win);
-        evas_object_size_hint_weight_set(pd, 1.0, 0.0);
-        evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5);
-        elm_object_style_set(pd, "pad_medium");
-        elm_box_pack_end(bx2, pd);
-        evas_object_show(pd);
-        
-        lb = elm_label_add(win);
-        evas_object_size_hint_weight_set(lb, 1.0, 0.0);
-        evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);
-        elm_label_label_set(lb,"<hilight>Scale</>");
-        elm_frame_content_set(pd, lb);
-        evas_object_show(lb);
-        
-        sl = elm_slider_add(win);
-        evas_object_size_hint_weight_set(sl, 1.0, 0.0);
-        evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
-        elm_slider_span_size_set(sl, 120);
-        elm_slider_unit_format_set(sl, "%1.2f");
-        elm_slider_indicator_format_set(sl, "%1.2f");
-        elm_slider_min_max_set(sl, 0.25, 5.0);
-        elm_slider_value_set(sl, elm_scale_get());
-        elm_box_pack_end(bx2, sl);
-        evas_object_show(sl);
-
-        evas_object_smart_callback_add(sl, "changed", sc_round, NULL);
-        evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL);
-        
-        sp = elm_separator_add(win);
-        elm_separator_horizontal_set(sp, 1);
-        evas_object_size_hint_weight_set(sp, 1.0, 0.0);
-        evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
-        elm_box_pack_end(bx2, sp);
-        evas_object_show(sp);
-        
-        pd = elm_frame_add(win);
-        evas_object_size_hint_weight_set(pd, 1.0, 0.0);
-        evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5);
-        elm_object_style_set(pd, "pad_medium");
-        elm_box_pack_end(bx2, pd);
-        evas_object_show(pd);
-        
-        lb = elm_label_add(win);
-        evas_object_size_hint_weight_set(lb, 1.0, 0.0);
-        evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);
-        elm_label_label_set(lb, "<hilight>Finger Size</><br>");
-        elm_frame_content_set(pd, lb);
-        evas_object_show(lb);
-        
-        sl = elm_slider_add(win);
-        evas_object_size_hint_weight_set(sl, 1.0, 0.0);
-        evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
-        elm_slider_span_size_set(sl, 120);
-        elm_slider_unit_format_set(sl, "%1.0f");
-        elm_slider_indicator_format_set(sl, "%1.0f");
-        elm_slider_min_max_set(sl, 5, 200);
-        elm_slider_value_set(sl, elm_finger_size_get());
-        elm_box_pack_end(bx2, sl);
-        evas_object_show(sl);
-
-        evas_object_smart_callback_add(sl, "changed", fs_round, NULL);
-        evas_object_smart_callback_add(sl, "delay,changed", fs_change, NULL);
-        
-        // FIXME: add theme selector (basic mode and advanced for fallbacks)
-        // FIXME: save config
-        // FIXME: profile selector / creator etc.
-
-        elm_frame_content_set(fr, bx2);
-        evas_object_show(bx2);
-     }
-
+   if (!interactive) _status_basic(win, bx0);
+//   else _status_config(win, bx0);
+   else _status_config_full(win, bx0);
+   
    evas_object_show(win);
 }
 
index 29a1d0e..4683ae2 100644 (file)
@@ -273,7 +273,7 @@ extern "C" {
    EAPI void         elm_coords_finger_size_adjust(int times_w, Evas_Coord *w, int times_h, Evas_Coord *h);
 
    EAPI Elm_Theme   *elm_theme_new(void);
-   EAPI void         elm_theme_free(Elm_Theme *th);
+  EAPI void         elm_theme_free(Elm_Theme *th);
    EAPI void         elm_theme_overlay_add(Elm_Theme *th, const char *item);
    EAPI void         elm_theme_overlay_del(Elm_Theme *th, const char *item);
    EAPI void         elm_theme_extension_add(Elm_Theme *th, const char *item);
@@ -543,9 +543,11 @@ extern "C" {
 
    EAPI Evas_Object *elm_table_add(Evas_Object *parent);
    EAPI void         elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
-   EAPI void         elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
    EAPI void        elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
-
+   EAPI void         elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
+   EAPI void         elm_table_unpack(Evas_Object *obj, Evas_Object *subobj);
+   EAPI void         elm_table_clear(Evas_Object *obj, Eina_Bool clear);
+       
    typedef struct _Elm_Grid_Cell_Class Elm_Grid_Cell_Class;
    typedef struct _Elm_Grid_Cell_Class_Func Elm_Grid_Cell_Class_Func;
    typedef struct _Elm_Grid_Cell Elm_Grid_Cell;
@@ -1427,30 +1429,10 @@ extern "C" {
    EAPI void                  elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
    EAPI Elm_Panel_Orient      elm_panel_orient_get(Evas_Object *obj);
    EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content);
-EAPI void elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden);
-EAPI Eina_Bool elm_panel_hidden_get(Evas_Object *obj);
-EAPI void elm_panel_toggle(Evas_Object *obj);
-
-
-#if 1 // working on it
-   // flip types:
-   //  rotate around y axis 180 degrees
-   //  rotate around x axis 180 degrees
-   // 
-   // properties
-   //  perspective focal dist, x, y
-   // 
-   // FIXME:
-   // custom value
-   //  map 1/0
-   // 
-   //  center x, y, z
-   //  angle x, y, z
-   // 
-   //  light 1/0
-   //  light rgb
-   //  light ambient rgb
-   //  light x, y, z
+   EAPI void                  elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden);
+   EAPI Eina_Bool             elm_panel_hidden_get(Evas_Object *obj);
+   EAPI void                  elm_panel_toggle(Evas_Object *obj);
+
    typedef enum _Elm_Flip_Mode
      {
         ELM_FLIP_ROTATE_Y_CENTER_AXIS,
@@ -1462,13 +1444,14 @@ EAPI void elm_panel_toggle(Evas_Object *obj);
    EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
    EAPI void         elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content);
    EAPI void         elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content);
+   EAPI Evas_Object *elm_flip_content_front_get(const Evas_Object *obj);
+   EAPI Evas_Object *elm_flip_content_back_get(const Evas_Object *obj);
    EAPI Eina_Bool    elm_flip_front_get(const Evas_Object *obj);
    EAPI void         elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
    EAPI void         elm_flip_go(Evas_Object *obj, Elm_Flip_Mode mode);
    /* smart callbacks called:
     * "animate,done" - when a flip animation is finished
     */
-#endif
    
    EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent);
    EAPI void         elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
index 4a591ba..4d875d3 100644 (file)
@@ -400,6 +400,22 @@ elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content)
    _configure(obj);
 }
 
+EAPI Evas_Object *
+elm_flip_content_front_get(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   return wd->front.content;
+}
+
+EAPI Evas_Object *
+elm_flip_content_back_get(const Evas_Object *obj)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   return wd->back.content;
+}
+
 /**
  * Get flip front visibility state
  *