src/bin src/edje_external conflict fixed
[framework/uifw/elementary.git] / src / bin / config.c
index 4386edc..532e00a 100644 (file)
@@ -17,7 +17,7 @@ struct _Theme
    Eina_Bool   in_search_path;
 };
 
-static Theme *tsel = NULL;
+static const Eina_List *tsel = NULL;
 static Eina_List *themes = NULL;
 
 struct _Elm_Text_Class_Data
@@ -51,10 +51,10 @@ struct _Fonts_Data
 #define ELM_LIST_DISABLE(list)                         \
   do                                                   \
     {                                                  \
-       const Eina_List *l = elm_list_items_get(list);  \
-       if (l)                                          \
+       const Eina_List *_l = elm_list_items_get(list); \
+       if (_l)                                         \
          {                                             \
-            elm_list_item_show(eina_list_data_get(l)); \
+            elm_list_item_show(eina_list_data_get(_l));\
             elm_object_disabled_set(list, EINA_TRUE);  \
          }                                             \
     }                                                  \
@@ -81,18 +81,20 @@ struct _Fonts_Data
        evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0); \
        evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5);    \
        elm_object_text_set(lb, label);                              \
-       elm_frame_content_set(pd, lb);                               \
+       elm_object_content_set(pd, lb);                              \
        evas_object_show(lb);                                        \
     }                                                               \
   while (0)
 
+static Evas_Object *main_win = NULL;
+
 static int quiet = 0;
 static int interactive = 1;
 
 static const char *theme_set = NULL;
 static const char *finger_size_set = NULL;
 static const char *scale_set = NULL;
-static Fonts_Data fdata = {NULL, NULL, NULL, NULL, NULL, NULL, 0.0};
+static Fonts_Data fndata = {NULL, NULL, NULL, NULL, NULL, NULL, 0.0};
 
 static void
 _font_styles_list_sel(void *data   __UNUSED__,
@@ -107,7 +109,7 @@ config_exit(void *data       __UNUSED__,
    Elm_Text_Class_Data *tc_data;
    Elm_Font_Size_Data *sd;
 
-   EINA_LIST_FREE(fdata.text_classes, tc_data)
+   EINA_LIST_FREE(fndata.text_classes, tc_data)
      {
         eina_stringshare_del(tc_data->name);
         eina_stringshare_del(tc_data->desc);
@@ -116,26 +118,26 @@ config_exit(void *data       __UNUSED__,
         free(tc_data);
      }
 
-   elm_font_available_hash_del(fdata.font_hash);
-   fdata.font_hash = NULL;
+   elm_font_available_hash_del(fndata.font_hash);
+   fndata.font_hash = NULL;
 
-   EINA_LIST_FREE(fdata.font_px_list, sd)
+   EINA_LIST_FREE(fndata.font_px_list, sd)
      {
         eina_stringshare_del(sd->size_str);
         free(sd);
      }
 
-   EINA_LIST_FREE(fdata.font_scale_list, sd)
+   EINA_LIST_FREE(fndata.font_scale_list, sd)
      {
         eina_stringshare_del(sd->size_str);
         free(sd);
      }
 
-   if (fdata.cur_font) eina_stringshare_del(fdata.cur_font);
-   fdata.cur_font = NULL;
+   if (fndata.cur_font) eina_stringshare_del(fndata.cur_font);
+   fndata.cur_font = NULL;
 
-   if (fdata.cur_style) eina_stringshare_del(fdata.cur_style);
-   fdata.cur_style = NULL;
+   if (fndata.cur_style) eina_stringshare_del(fndata.cur_style);
+   fndata.cur_style = NULL;
 
    elm_config_save();
    elm_exit(); /* exit the program's main loop that runs in elm_run() */
@@ -147,10 +149,11 @@ sb_change(void *data       __UNUSED__,
           void *event_info __UNUSED__)
 {
    Eina_Bool val = elm_check_state_get(obj);
-   Eina_Bool sb = elm_scroll_bounce_enabled_get();
+   Eina_Bool sb = elm_config_scroll_bounce_enabled_get();
 
    if (val == sb) return;
-   elm_scroll_bounce_enabled_all_set(val);
+   elm_config_scroll_bounce_enabled_set(val);
+   elm_config_all_flush();
 
    /*TODO: enable/disable subordinate sliders (make 'em support it 1st)*/
 }
@@ -172,11 +175,12 @@ bf_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double bf = elm_scroll_bounce_friction_get();
+   double bf = elm_config_scroll_bounce_friction_get();
    double val = elm_slider_value_get(obj);
 
    if (bf == val) return;
-   elm_scroll_bounce_friction_all_set(val);
+   elm_config_scroll_bounce_friction_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -196,11 +200,12 @@ ps_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double ps = elm_scroll_page_scroll_friction_get();
+   double ps = elm_config_scroll_page_scroll_friction_get();
    double val = elm_slider_value_get(obj);
 
    if (ps == val) return;
-   elm_scroll_page_scroll_friction_all_set(val);
+   elm_config_scroll_page_scroll_friction_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -220,11 +225,12 @@ bis_change(void *data       __UNUSED__,
            Evas_Object     *obj,
            void *event_info __UNUSED__)
 {
-   double bis = elm_scroll_bring_in_scroll_friction_get();
+   double bis = elm_config_scroll_bring_in_scroll_friction_get();
    double val = elm_slider_value_get(obj);
 
    if (bis == val) return;
-   elm_scroll_bring_in_scroll_friction_all_set(val);
+   elm_config_scroll_bring_in_scroll_friction_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -244,11 +250,12 @@ zf_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double zf = elm_scroll_zoom_friction_get();
+   double zf = elm_config_scroll_zoom_friction_get();
    double val = elm_slider_value_get(obj);
 
    if (zf == val) return;
-   elm_scroll_zoom_friction_all_set(val);
+   elm_config_scroll_zoom_friction_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -257,10 +264,11 @@ ts_change(void *data       __UNUSED__,
           void *event_info __UNUSED__)
 {
    Eina_Bool val = elm_check_state_get(obj);
-   Eina_Bool sb = elm_scroll_thumbscroll_enabled_get();
+   Eina_Bool sb = elm_config_scroll_thumbscroll_enabled_get();
 
    if (val == sb) return;
-   elm_scroll_thumbscroll_enabled_all_set(val);
+   elm_config_scroll_thumbscroll_enabled_set(val);
+   elm_config_all_flush();
 
    /*TODO: enable/disable subordinate sliders (make 'em support it 1st)*/
 }
@@ -282,11 +290,12 @@ tst_change(void *data       __UNUSED__,
            Evas_Object     *obj,
            void *event_info __UNUSED__)
 {
-   double tst = elm_scroll_thumbscroll_threshold_get();
+   double tst = elm_config_scroll_thumbscroll_threshold_get();
    double val = elm_slider_value_get(obj);
 
    if (tst == val) return;
-   elm_scroll_thumbscroll_threshold_all_set(val);
+   elm_config_scroll_thumbscroll_threshold_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -306,11 +315,12 @@ tsmt_change(void *data       __UNUSED__,
             Evas_Object     *obj,
             void *event_info __UNUSED__)
 {
-   double tsmt = elm_scroll_thumbscroll_momentum_threshold_get();
+   double tsmt = elm_config_scroll_thumbscroll_momentum_threshold_get();
    double val = elm_slider_value_get(obj);
 
    if (tsmt == val) return;
-   elm_scroll_thumbscroll_momentum_threshold_all_set(val);
+   elm_config_scroll_thumbscroll_momentum_threshold_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -330,11 +340,12 @@ tsf_change(void *data       __UNUSED__,
            Evas_Object     *obj,
            void *event_info __UNUSED__)
 {
-   double tsf = elm_scroll_thumbscroll_friction_get();
+   double tsf = elm_config_scroll_thumbscroll_friction_get();
    double val = elm_slider_value_get(obj);
 
    if (tsf == val) return;
-   elm_scroll_thumbscroll_friction_all_set(val);
+   elm_config_scroll_thumbscroll_friction_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -354,11 +365,37 @@ tsbf_change(void *data       __UNUSED__,
             Evas_Object     *obj,
             void *event_info __UNUSED__)
 {
-   double tsbf = elm_scroll_thumbscroll_border_friction_get();
+   double tsbf = elm_config_scroll_thumbscroll_border_friction_get();
    double val = elm_slider_value_get(obj);
 
    if (tsbf == val) return;
-   elm_scroll_thumbscroll_border_friction_all_set(val);
+   elm_config_scroll_thumbscroll_border_friction_set(val);
+   elm_config_all_flush();
+}
+
+static void
+tssf_round(void *data       __UNUSED__,
+           Evas_Object     *obj,
+           void *event_info __UNUSED__)
+{
+   double val = elm_slider_value_get(obj);
+   double v;
+
+   v = ((double)((int)(val * 20.0))) / 20.0;
+   if (v != val) elm_slider_value_set(obj, v);
+}
+
+static void
+tssf_change(void *data       __UNUSED__,
+            Evas_Object     *obj,
+            void *event_info __UNUSED__)
+{
+   double tssf = elm_config_scroll_thumbscroll_sensitivity_friction_get();
+   double val = elm_slider_value_get(obj);
+
+   if (tssf == val) return;
+   elm_config_scroll_thumbscroll_sensitivity_friction_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -366,12 +403,13 @@ cf_enable(void *data,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   Eina_Bool cf = elm_cache_flush_enabled_get();
+   Eina_Bool cf = elm_config_cache_flush_enabled_get();
    Eina_Bool val = elm_check_state_get(obj);
 
    if (cf == val) return;
    elm_object_disabled_set((Evas_Object *)data, !val);
-   elm_cache_flush_enabled_all_set(val);
+   elm_config_cache_flush_enabled_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -391,11 +429,12 @@ cf_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double cf = elm_cache_flush_interval_get();
+   double cf = elm_config_cache_flush_interval_get();
    double val = elm_slider_value_get(obj);
 
    if (cf == val) return;
-   elm_cache_flush_interval_all_set(val);
+   elm_config_cache_flush_interval_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -415,11 +454,12 @@ fc_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double font_cache = elm_font_cache_get();
+   double font_cache = elm_config_cache_font_cache_size_get();
    double val = elm_slider_value_get(obj);
 
    if (font_cache == val) return;
-   elm_font_cache_all_set(val * 1024);
+   elm_config_cache_font_cache_size_set(val * 1024);
+   elm_config_all_flush();
 }
 
 static void
@@ -439,11 +479,12 @@ ic_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double image_cache = elm_image_cache_get();
+   double image_cache = elm_config_cache_image_cache_size_get();
    double val = elm_slider_value_get(obj);
 
    if (image_cache == val) return;
-   elm_image_cache_all_set(val * 1024);
+   elm_config_cache_image_cache_size_set(val * 1024);
+   elm_config_all_flush();
 }
 
 static void
@@ -463,11 +504,12 @@ sc_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double scale = elm_scale_get();
+   double scale = elm_config_scale_get();
    double val = elm_slider_value_get(obj);
 
    if (scale == val) return;
-   elm_scale_all_set(val);
+   elm_config_scale_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -487,11 +529,12 @@ fs_change(void *data       __UNUSED__,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
 {
-   double fs = elm_finger_size_get();
+   double fs = elm_config_finger_size_get();
    double val = elm_slider_value_get(obj);
 
    if (fs == val) return;
-   elm_finger_size_all_set(val);
+   elm_config_finger_size_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -511,11 +554,12 @@ efc_change(void *data       __UNUSED__,
            Evas_Object     *obj,
            void *event_info __UNUSED__)
 {
-   double efc = elm_edje_file_cache_get();
+   double efc = elm_config_cache_edje_file_cache_size_get();
    double val = elm_slider_value_get(obj);
 
    if (efc == val) return;
-   elm_edje_file_cache_all_set(val);
+   elm_config_cache_edje_file_cache_size_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -535,11 +579,12 @@ ecc_change(void *data       __UNUSED__,
            Evas_Object     *obj,
            void *event_info __UNUSED__)
 {
-   double ecc = elm_edje_collection_cache_get();
+   double ecc = elm_config_cache_edje_collection_cache_size_get();
    double val = elm_slider_value_get(obj);
 
    if (ecc == val) return;
-   elm_edje_collection_cache_all_set(val);
+   elm_config_cache_edje_collection_cache_size_set(val);
+   elm_config_all_flush();
 }
 
 static void
@@ -558,7 +603,7 @@ _status_basic(Evas_Object *win,
    elm_object_text_set(lb,
                        "Applying configuration change"
                        );
-   elm_frame_content_set(fr, lb);
+   elm_object_content_set(fr, lb);
    evas_object_show(lb);
 }
 
@@ -588,7 +633,7 @@ _status_config(Evas_Object *win,
    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_slider_value_set(sl, elm_config_scale_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -596,13 +641,13 @@ _status_config(Evas_Object *win,
    evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL);
 
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(bx, sp);
    evas_object_show(sp);
 
-   LABEL_FRAME_ADD("<hilight>Finger Size</><br>");
+   LABEL_FRAME_ADD("<hilight>Finger Size</><br/>");
 
    sl = elm_slider_add(win);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -611,7 +656,7 @@ _status_config(Evas_Object *win,
    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_slider_value_set(sl, elm_config_finger_size_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -621,7 +666,7 @@ _status_config(Evas_Object *win,
    // FIXME: add theme selector (basic mode and advanced for fallbacks)
    // FIXME: save config
    // FIXME: profile selector / creator etc.
-   elm_frame_content_set(fr, bx);
+   elm_object_content_set(fr, bx);
    evas_object_show(bx);
 }
 
@@ -629,10 +674,10 @@ static void
 _flip_to(Evas_Object *win,
          const char  *name)
 {
-   Evas_Object *wid, *pager;
+   Evas_Object *wid, *naviframe;
    wid = evas_object_data_get(win, name);
-   pager = evas_object_data_get(win, "pager");
-   elm_pager_content_promote(pager, wid);
+   naviframe = evas_object_data_get(win, "naviframe");
+   elm_naviframe_item_simple_promote(naviframe, wid);
 }
 
 static void
@@ -727,23 +772,19 @@ _font_overlay_set_all(void            *data,
                       Evas_Object *obj __UNUSED__,
                       void *event_info __UNUSED__)
 {
-   Evas_Object *win, *fclasses, *fnames, *fstyles, *fsizes;
+   Evas_Object *win, *fclasses;
    Elm_Text_Class_Data *tc_data, *tc;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
    Eina_List *l;
 
    win = data;
 
    fclasses = evas_object_data_get(win, "font_classes_list");
-   it = elm_list_selected_item_get(fclasses);
-   if (!it) return;
-   tc_data = elm_list_item_data_get(it);
-
-   fnames = evas_object_data_get(win, "font_names_list");
-   fstyles = evas_object_data_get(win, "font_styles_list");
-   fsizes = evas_object_data_get(win, "font_sizes_list");
+   list_it = elm_list_selected_item_get(fclasses);
+   if (!list_it) return;
+   tc_data = elm_object_item_data_get(list_it);
 
-   EINA_LIST_FOREACH(fdata.text_classes, l, tc)
+   EINA_LIST_FOREACH(fndata.text_classes, l, tc)
      {
         eina_stringshare_replace(&tc->font, tc_data->font);
         eina_stringshare_replace(&tc->style, tc_data->style);
@@ -760,26 +801,26 @@ _font_overlay_reset(void            *data,
 {
    Evas_Object *win, *fclasses, *fnames, *fstyles, *fsizes;
    Elm_Text_Class_Data *tc_data;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
 
    win = data;
 
    fclasses = evas_object_data_get(win, "font_classes_list");
-   it = elm_list_selected_item_get(fclasses);
-   if (!it) return;
-   tc_data = elm_list_item_data_get(it);
+   list_it = elm_list_selected_item_get(fclasses);
+   if (!list_it) return;
+   tc_data = elm_object_item_data_get(list_it);
 
    fnames = evas_object_data_get(win, "font_names_list");
    fstyles = evas_object_data_get(win, "font_styles_list");
    fsizes = evas_object_data_get(win, "font_sizes_list");
 
-   elm_font_overlay_unset(tc_data->name);
+   elm_config_font_overlay_unset(tc_data->name);
 
-   eina_stringshare_replace(&fdata.cur_font, NULL);
+   eina_stringshare_replace(&fndata.cur_font, NULL);
    eina_stringshare_replace(&tc_data->font, NULL);
-   eina_stringshare_replace(&fdata.cur_style, NULL);
+   eina_stringshare_replace(&fndata.cur_style, NULL);
    eina_stringshare_replace(&tc_data->style, NULL);
-   fdata.cur_size = 0.0;
+   fndata.cur_size = 0.0;
    tc_data->size = 0.0;
 
    ELM_LIST_DISABLE(fnames);
@@ -796,17 +837,17 @@ _font_overlay_reset_all(void            *data,
 {
    Evas_Object *win, *fclasses, *fnames, *fstyles, *fsizes;
    Elm_Text_Class_Data *tc_data;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
    Eina_List *l;
 
    win = data;
-   eina_stringshare_replace(&fdata.cur_font, NULL);
-   eina_stringshare_replace(&fdata.cur_style, NULL);
-   fdata.cur_size = 0.0;
+   eina_stringshare_replace(&fndata.cur_font, NULL);
+   eina_stringshare_replace(&fndata.cur_style, NULL);
+   fndata.cur_size = 0.0;
 
-   EINA_LIST_FOREACH(fdata.text_classes, l, tc_data)
+   EINA_LIST_FOREACH(fndata.text_classes, l, tc_data)
      {
-        elm_font_overlay_unset(tc_data->name);
+        elm_config_font_overlay_unset(tc_data->name);
 
         eina_stringshare_replace(&tc_data->font, NULL);
         eina_stringshare_replace(&tc_data->style, NULL);
@@ -818,8 +859,8 @@ _font_overlay_reset_all(void            *data,
    fstyles = evas_object_data_get(win, "font_styles_list");
    fsizes = evas_object_data_get(win, "font_sizes_list");
 
-   it = elm_list_selected_item_get(fclasses);
-   if (it) elm_list_item_selected_set(it, EINA_FALSE);
+   list_it = elm_list_selected_item_get(fclasses);
+   if (list_it) elm_list_item_selected_set(list_it, EINA_FALSE);
 
    ELM_LIST_DISABLE(fnames);
    ELM_LIST_DISABLE(fstyles);
@@ -836,125 +877,108 @@ _font_overlay_change(void *data       __UNUSED__,
    Elm_Text_Class_Data *tc_data;
    Eina_List *l;
 
-   EINA_LIST_FOREACH(fdata.text_classes, l, tc_data)
+   EINA_LIST_FOREACH(fndata.text_classes, l, tc_data)
      {
         if (tc_data->font)
           {
-             const char *name;
+             char *name;
 
              name = elm_font_fontconfig_name_get(tc_data->font,
                                                  tc_data->style);
-             elm_font_overlay_set(tc_data->name, name,
-                                  tc_data->size ? tc_data->size : -100);
+             elm_config_font_overlay_set(tc_data->name, name,
+                                         tc_data->size ? tc_data->size : -100);
              elm_font_fontconfig_name_free(name);
           }
         else
-          elm_font_overlay_unset(tc_data->name);
+          elm_config_font_overlay_unset(tc_data->name);
      }
 
    elm_config_save();
-   elm_font_overlay_all_apply();
+   elm_config_font_overlay_apply();
+   elm_config_all_flush();
 
    /* TODO: apply hinting */
 }
 
 static void
-_profile_change_do(Evas_Object *win,
-                   const char  *profile)
+_config_display_update(Evas_Object *win)
 {
    int flush_interval, font_c, image_c, edje_file_c, edje_col_c, ts_threshould;
    double scale, s_bounce_friction, ts_momentum_threshold, ts_friction,
-          ts_border_friction, page_friction, bring_in_friction, zoom_friction;
+          ts_border_friction, ts_sensitivity_friction, page_friction, bring_in_friction, zoom_friction;
    const char *curr_theme, *curr_engine;
    const Eina_List *l_items, *l;
    Eina_Bool s_bounce, ts;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
    Elm_Theme *th;
    int fs;
 
-   elm_profile_all_set(profile);
-
-   scale = elm_scale_get();
-   fs = elm_finger_size_get();
-   flush_interval = elm_cache_flush_interval_get();
-   font_c = elm_font_cache_get();
-   image_c = elm_image_cache_get();
-   edje_file_c = elm_edje_file_cache_get();
-   edje_col_c = elm_edje_collection_cache_get();
-
-   s_bounce = elm_scroll_bounce_enabled_get();
-   s_bounce_friction = elm_scroll_bounce_friction_get();
-   ts = elm_scroll_thumbscroll_enabled_get();
-   ts_threshould = elm_scroll_thumbscroll_threshold_get();
-   ts_momentum_threshold = elm_scroll_thumbscroll_momentum_threshold_get();
-   ts_friction = elm_scroll_thumbscroll_friction_get();
-   ts_border_friction = elm_scroll_thumbscroll_border_friction_get();
-   page_friction = elm_scroll_page_scroll_friction_get();
-   bring_in_friction = elm_scroll_bring_in_scroll_friction_get();
-   zoom_friction = elm_scroll_zoom_friction_get();
+   scale = elm_config_scale_get();
+   fs = elm_config_finger_size_get();
+   flush_interval = elm_config_cache_flush_interval_get();
+   font_c = elm_config_cache_font_cache_size_get();
+   image_c = elm_config_cache_image_cache_size_get();
+   edje_file_c = elm_config_cache_edje_file_cache_size_get();
+   edje_col_c = elm_config_cache_edje_collection_cache_size_get();
+
+   s_bounce = elm_config_scroll_bounce_enabled_get();
+   s_bounce_friction = elm_config_scroll_bounce_friction_get();
+   ts = elm_config_scroll_thumbscroll_enabled_get();
+   ts_threshould = elm_config_scroll_thumbscroll_threshold_get();
+   ts_momentum_threshold = elm_config_scroll_thumbscroll_momentum_threshold_get();
+   ts_friction = elm_config_scroll_thumbscroll_friction_get();
+   ts_border_friction = elm_config_scroll_thumbscroll_border_friction_get();
+   ts_sensitivity_friction = elm_config_scroll_thumbscroll_sensitivity_friction_get();
+   page_friction = elm_config_scroll_page_scroll_friction_get();
+   bring_in_friction = elm_config_scroll_bring_in_scroll_friction_get();
+   zoom_friction = elm_config_scroll_zoom_friction_get();
 
    /* gotta update root windows' atoms */
-   elm_scale_all_set(scale);
    elm_slider_value_set(evas_object_data_get(win, "scale_slider"), scale);
-   elm_finger_size_all_set(fs);
    elm_slider_value_set(evas_object_data_get(win, "fs_slider"), fs);
 
-   elm_cache_flush_interval_all_set(flush_interval);
    elm_slider_value_set(evas_object_data_get(win,
                                              "cache_flush_interval_slider"),
                         flush_interval);
-   elm_font_cache_all_set(font_c);
    elm_slider_value_set(evas_object_data_get(win, "font_cache_slider"),
                         font_c / 1024.0);
-   elm_image_cache_all_set(image_c);
    elm_slider_value_set(evas_object_data_get(win, "image_cache_slider"),
                         image_c / 1024.0);
-   elm_edje_file_cache_all_set(edje_file_c);
    elm_slider_value_set(evas_object_data_get(win, "edje_file_cache_slider"),
                         edje_file_c);
-   elm_edje_collection_cache_all_set(edje_col_c);
    elm_slider_value_set(evas_object_data_get(win,
                                              "edje_collection_cache_slider"),
                         edje_col_c);
 
-   elm_scroll_bounce_enabled_all_set(s_bounce);
    elm_check_state_set(evas_object_data_get(win, "scroll_bounce_check"),
                        s_bounce);
-   elm_scroll_bounce_friction_all_set(s_bounce_friction);
    elm_slider_value_set(evas_object_data_get(win, "bounce_friction_slider"),
                         s_bounce_friction);
-   elm_scroll_thumbscroll_enabled_all_set(ts);
    elm_check_state_set(evas_object_data_get(win, "thumbscroll_check"), ts);
-   elm_scroll_thumbscroll_threshold_all_set(ts_threshould);
    elm_slider_value_set(evas_object_data_get(win,
                                              "thumbscroll_threshold_slider"),
                         ts_threshould);
-   elm_scroll_thumbscroll_momentum_threshold_all_set(ts_momentum_threshold);
    elm_slider_value_set(evas_object_data_get(win,
                                              "ts_momentum_threshold_slider"),
                         ts_momentum_threshold);
-   elm_scroll_thumbscroll_friction_all_set(ts_friction);
    elm_slider_value_set(evas_object_data_get(win,
                                              "thumbscroll_friction_slider"),
                         ts_friction);
-   elm_scroll_thumbscroll_border_friction_all_set(ts_border_friction);
    elm_slider_value_set(evas_object_data_get(win, "ts_border_friction_slider"),
                         ts_border_friction);
-   elm_scroll_page_scroll_friction_all_set(page_friction);
+   elm_slider_value_set(evas_object_data_get(win, "ts_sensitivity_friction_slider"),
+                        ts_sensitivity_friction);
    elm_slider_value_set(evas_object_data_get(win,
                                              "page_scroll_friction_slider"),
                         page_friction);
-   elm_scroll_bring_in_scroll_friction_all_set(bring_in_friction);
    elm_slider_value_set(evas_object_data_get(win,
                                              "bring_in_scroll_friction_slider"),
                         bring_in_friction);
-   elm_scroll_zoom_friction_all_set(zoom_friction);
    elm_slider_value_set(evas_object_data_get(win,
                                              "zoom_scroll_friction_slider"),
                         zoom_friction);
 
    curr_theme = _elm_theme_current_get(elm_theme_get(NULL));
-   elm_theme_all_set(curr_theme);
 
    th = elm_theme_new();
    elm_theme_set(th, curr_theme);
@@ -962,19 +986,38 @@ _profile_change_do(Evas_Object *win,
    elm_theme_free(th);
    eina_stringshare_del(curr_theme);
 
-   curr_engine = elm_engine_current_get();
+   curr_engine = elm_config_engine_get();
    l_items = elm_list_items_get(evas_object_data_get(win, "engines_list"));
-   EINA_LIST_FOREACH(l_items, l, it)
+   EINA_LIST_FOREACH(l_items, l, list_it)
      {
-        if (!strcmp(elm_list_item_data_get(it), curr_engine))
+        if (!strcmp(elm_object_item_data_get(list_it), curr_engine))
           {
-             elm_list_item_selected_set(it, EINA_TRUE);
+             elm_list_item_selected_set(list_it, EINA_TRUE);
              break;
           }
      }
 }
 
 static void
+_profile_change_do(Evas_Object *win,
+                   const char  *profile)
+{
+   elm_config_profile_set(profile);
+   elm_config_all_flush();
+   _config_display_update(win);
+}
+
+static Eina_Bool
+_config_all_changed(void *data,
+                    int ev_type __UNUSED__,
+                    void *ev __UNUSED__)
+{
+   Evas_Object *win = data;
+   _config_display_update(win);
+   return ECORE_CALLBACK_PASS_ON;
+}
+
+static void
 _engine_use(void            *data,
             Evas_Object *obj __UNUSED__,
             void *event_info __UNUSED__)
@@ -983,12 +1026,12 @@ _engine_use(void            *data,
    const char *selection;
 
    li = data;
-   selection = elm_list_item_data_get(elm_list_selected_item_get(li));
+   selection = elm_object_item_data_get(elm_list_selected_item_get(li));
 
-   if (!strcmp(elm_engine_current_get(), selection))
+   if (!strcmp(elm_config_engine_get(), selection))
      return;
 
-   elm_engine_set(selection);
+   elm_config_engine_set(selection);
    elm_config_save(); /* make sure new engine has its data dir */
 }
 
@@ -1002,8 +1045,8 @@ _profile_use(void            *data,
    const char *profile;
 
    li = data;
-   selection = elm_list_item_data_get(elm_list_selected_item_get(li));
-   profile = elm_profile_current_get();
+   selection = elm_object_item_data_get(elm_list_selected_item_get(li));
+   profile = elm_config_profile_get();
 
    if (!profile)
      {
@@ -1014,8 +1057,7 @@ _profile_use(void            *data,
    if (!strcmp(profile, selection))
      return;
 
-   elm_config_save(); /* dump config into old profile's data dir */
-   elm_profile_set(selection); /* just here to update info for getters below */
+   elm_config_profile_set(selection); /* just here to update info for getters below */
 
    _profile_change_do(elm_object_top_widget_get(li), selection);
    elm_config_save(); /* make sure new profile has its data dir */
@@ -1039,17 +1081,17 @@ _profile_reset(void            *data,
    Evas_Object *li;
 
    li = data;
-   selection = elm_list_item_data_get(elm_list_selected_item_get(li));
-   curr = elm_profile_current_get();
+   selection = elm_object_item_data_get(elm_list_selected_item_get(li));
+   curr = elm_config_profile_get();
 
    elm_config_save(); /* dump config into old profile's data dir */
 
-   pdir = elm_profile_dir_get(selection, EINA_TRUE);
+   pdir = elm_config_profile_dir_get(selection, EINA_TRUE);
    if (!pdir)
      return;
 
    ecore_file_recursive_rm(pdir);
-   elm_profile_dir_free(pdir);
+   elm_config_profile_dir_free(pdir);
 
    elm_config_reload();
 
@@ -1063,62 +1105,49 @@ _theme_use(void *data       __UNUSED__,
            void *event_info __UNUSED__)
 {
    const char *defth;
-   char *newth;
-   Theme *t = tsel;
-
-   if (!t) return;
-   defth = elm_theme_get(NULL);
-   newth = malloc(strlen(defth) + 1 + strlen(t->name) + 1);
-   if (newth)
-     {
-        char *rest;
+   Elm_Theme *th;
+   Evas_Object *win = elm_object_top_widget_get(obj);
+   Evas_Object *sample = evas_object_data_get(win, "theme_preview");
 
-        newth[0] = 0;
-        rest = strchr(defth, ':');
-        if (!rest)
-          strcpy(newth, t->name);
-        else
-          {
-             strcpy(newth, t->name);
-             strcat(newth, rest);
-          }
-        elm_theme_all_set(newth);
-        free(newth);
-     }
+   th = elm_object_theme_get(sample);
+   defth = elm_theme_get(th);
+   elm_theme_set(NULL, defth);
+   elm_config_save();
+   elm_config_all_flush();
 }
 
 static void
-_theme_sel(void            *data,
+_theme_sel(void            *data __UNUSED__,
            Evas_Object     *obj,
            void *event_info __UNUSED__)
 {
-   Theme *t = data;
    Evas_Object *win = elm_object_top_widget_get(obj);
    Evas_Object *sample = evas_object_data_get(win, "theme_preview");
    Elm_Theme *th;
-   const char *defth;
-   char *newth;
+   Elm_Object_Item *list_it;
+   Eina_Strbuf *newth;
+   Eina_List *l;
 
-   tsel = t;
-   defth = elm_theme_get(NULL);
-   newth = malloc(strlen(defth) + 1 + strlen(t->name) + 1);
+   if (!sample) return;
+   tsel = elm_list_selected_items_get(obj);
+   newth = eina_strbuf_new();
+   EINA_SAFETY_ON_NULL_RETURN(newth);
    th = elm_theme_new();
-   if (newth)
+   if (!th)
      {
-        char *rest;
-
-        newth[0] = 0;
-        rest = strchr(defth, ':');
-        if (!rest)
-          strcpy(newth, t->name);
-        else
-          {
-             strcpy(newth, t->name);
-             strcat(newth, rest);
-          }
-        elm_theme_set(th, newth);
-        free(newth);
+        eina_strbuf_free(newth);
+        return;
      }
+   EINA_LIST_REVERSE_FOREACH((Eina_List*)tsel, l, list_it)
+     {
+        Theme *t = elm_object_item_data_get(list_it);
+        eina_strbuf_append_printf(newth, "%s:", t->name);
+        if ((!l->prev) && strcmp(t->name, "default"))
+          /* ensure default theme is always there for fallback */
+          eina_strbuf_append(newth, "default");
+     }
+   elm_theme_set(th, eina_strbuf_string_get(newth));
+   eina_strbuf_free(newth);
    elm_object_theme_set(sample, th);
    elm_theme_free(th);
 }
@@ -1131,7 +1160,7 @@ _theme_sel(void            *data,
 
 static void
 _status_config_sizing(Evas_Object *win,
-                      Evas_Object *pager)
+                      Evas_Object *naviframe)
 {
    Evas_Object *lb, *pd, *bx, *sl, *sp;
 
@@ -1149,7 +1178,7 @@ _status_config_sizing(Evas_Object *win,
    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_slider_value_set(sl, elm_config_scale_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -1157,13 +1186,13 @@ _status_config_sizing(Evas_Object *win,
    evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL);
 
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(bx, sp);
    evas_object_show(sp);
 
-   LABEL_FRAME_ADD("<hilight>Finger Size</><br>");
+   LABEL_FRAME_ADD("<hilight>Finger Size</><br/>");
 
    sl = elm_slider_add(win);
    evas_object_data_set(win, "fs_slider", sl);
@@ -1173,7 +1202,7 @@ _status_config_sizing(Evas_Object *win,
    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_slider_value_set(sl, elm_config_finger_size_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -1182,7 +1211,7 @@ _status_config_sizing(Evas_Object *win,
 
    evas_object_data_set(win, "sizing", bx);
 
-   elm_pager_content_push(pager, bx);
+   elm_naviframe_item_simple_push(naviframe, bx);
 }
 
 static Evas_Object *
@@ -1208,14 +1237,14 @@ _sample_theme_new(Evas_Object *win)
 
    ck = elm_check_add(win);
    evas_object_size_hint_weight_set(ck, 1.0, 0.0);
-   elm_check_label_set(ck, "Check");
+   elm_object_text_set(ck, "Check");
    elm_table_pack(base, ck, 0, 1, 1, 1);
    evas_object_show(ck);
 
    rd = elm_radio_add(win);
    evas_object_size_hint_weight_set(rd, 1.0, 0.0);
    elm_radio_state_value_set(rd, 0);
-   elm_radio_label_set(rd, "Radio 1");
+   elm_object_text_set(rd, "Radio 1");
    elm_table_pack(base, rd, 1, 0, 1, 1);
    evas_object_show(rd);
    rdg = rd;
@@ -1223,13 +1252,13 @@ _sample_theme_new(Evas_Object *win)
    rd = elm_radio_add(win);
    evas_object_size_hint_weight_set(rd, 1.0, 0.0);
    elm_radio_state_value_set(rd, 1);
-   elm_radio_label_set(rd, "Radio 2");
+   elm_object_text_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);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    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, sp, 0, 2, 2, 1);
@@ -1255,7 +1284,7 @@ _sample_theme_new(Evas_Object *win)
    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);
+   elm_object_content_set(fr, li);
    evas_object_show(li);
 
    elm_list_item_append(li, "List Item 1", NULL, NULL, NULL, NULL);
@@ -1273,11 +1302,15 @@ _sample_theme_new(Evas_Object *win)
 
 static void
 _status_config_themes(Evas_Object *win,
-                      Evas_Object *pager)
+                      Evas_Object *naviframe)
 {
    Evas_Object *tb, *rc, *sc, *sp, *li, *pd, *fr, *bt, *sample;
    Eina_List *list, *l;
    char *th, *s, *ext;
+   Elm_Theme *d;
+   Elm_Object_Item *list_it, *def_it = NULL;
+   const char *theme_name, *sep[20];
+   unsigned int x;
 
    tb = elm_table_add(win);
    evas_object_size_hint_weight_set(tb, 1.0, 1.0);
@@ -1303,15 +1336,24 @@ _status_config_themes(Evas_Object *win,
    evas_object_show(pd);
 
    li = elm_list_add(win);
+   elm_list_multi_select_set(li, EINA_TRUE);
    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);
+   elm_object_content_set(pd, li);
    evas_object_show(li);
 
    list = elm_theme_name_available_list_new();
+   d = elm_theme_default_get();
+   theme_name = elm_theme_get(d);
+   for (x = 1, sep[0] = theme_name; x < sizeof(sep) / sizeof(sep[0]); x++)
+     {
+        sep[x] = strchr(sep[x - 1] + 1, ':');
+        if (!sep[x]) break;
+     }
    EINA_LIST_FOREACH(list, l, th)
      {
         Theme *t;
+        int y;
 
         t = calloc(1, sizeof(Theme));
         t->name = eina_stringshare_add(th);
@@ -1348,8 +1390,23 @@ _status_config_themes(Evas_Object *win,
                t->label = eina_stringshare_add(s);
           }
         themes = eina_list_append(themes, t);
-        elm_list_item_append(li, t->label, NULL, NULL, _theme_sel, t);
+        list_it = elm_list_item_append(li, t->label, NULL, NULL, NULL, t);
+        if (!strcmp(t->name, "default")) def_it = list_it;
+        for (y = x - 1 /* ignore default e theme */; y > 0; y--)
+          {
+             const char *start = (sep[y - 1][0] == ':') ? sep[y - 1] + 1 : sep[y - 1];
+             unsigned int len = (unsigned int)(sep[y] - start);
+             if (strncmp(start , t->name, len) || (strlen(t->name) != len)) continue;
+
+             if (!elm_list_item_selected_get(list_it))
+               elm_list_item_selected_set(list_it, EINA_TRUE);
+             break;
+          }
      }
+   if (!elm_list_selected_items_get(li))
+     elm_list_item_selected_set(def_it, EINA_TRUE);
+   evas_object_smart_callback_add(li, "selected", _theme_sel, NULL);
+   evas_object_smart_callback_add(li, "unselected", _theme_sel, NULL);
    elm_theme_name_available_list_free(list);
 
    elm_list_go(li);
@@ -1367,7 +1424,7 @@ _status_config_themes(Evas_Object *win,
       elm_object_text_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);
+      elm_object_content_set(pd, bt);
       evas_object_show(bt);
     */
    pd = elm_frame_add(win);
@@ -1381,24 +1438,24 @@ _status_config_themes(Evas_Object *win,
    elm_object_text_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);
+   elm_object_content_set(pd, fr);
    evas_object_show(fr);
 
    sc = elm_scroller_add(win);
-   elm_scroller_bounce_set(sc, 0, 0);
+   elm_scroller_bounce_set(sc, EINA_FALSE, EINA_FALSE);
    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);
+   elm_object_content_set(fr, sc);
    evas_object_show(sc);
 
    sample = _sample_theme_new(win);
-   elm_scroller_content_set(sc, sample);
+   elm_object_content_set(sc, sample);
    evas_object_show(sample);
    evas_object_data_set(win, "theme_preview", sample);
 
    /////////////////////////////////////////////
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    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);
@@ -1416,24 +1473,24 @@ _status_config_themes(Evas_Object *win,
    elm_object_text_set(bt, "Use Theme");
    evas_object_size_hint_weight_set(bt, 1.0, 0.0);
    evas_object_size_hint_align_set(bt, 0.5, 0.5);
-   elm_frame_content_set(pd, bt);
+   elm_object_content_set(pd, bt);
    evas_object_show(bt);
 
    evas_object_data_set(win, "themes", tb);
-   elm_pager_content_push(pager, tb);
+   elm_naviframe_item_simple_push(naviframe, tb);
 }
 
 static void
 _font_preview_update(Evas_Object *win)
 {
    Evas_Font_Size sz;
-   const char *name;
+   char *name;
 
-   if (!fdata.cur_font)
+   if (!fndata.cur_font)
      return;
 
-   name = elm_font_fontconfig_name_get(fdata.cur_font, fdata.cur_style);
-   sz = fdata.cur_size;
+   name = elm_font_fontconfig_name_get(fndata.cur_font, fndata.cur_style);
+   sz = fndata.cur_size;
 
    if (sz < 0)
      sz = (-sz * 10) / 100;
@@ -1454,9 +1511,9 @@ _font_classes_list_sel(void *data   __UNUSED__,
    const Eina_List *f_names_items, *l;
    Elm_Text_Class_Data *tc_data;
    Evas_Object *f_names_list;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
 
-   tc_data = elm_list_item_data_get(event_info);
+   tc_data = elm_object_item_data_get(event_info);
 
    f_names_list = evas_object_data_get(elm_object_top_widget_get(obj),
                                        "font_names_list");
@@ -1464,16 +1521,16 @@ _font_classes_list_sel(void *data   __UNUSED__,
 
    f_names_items = elm_list_items_get(f_names_list);
 
-   EINA_LIST_FOREACH(f_names_items, l, it)
+   EINA_LIST_FOREACH(f_names_items, l, list_it)
      {
-        const char *l;
+        const char *s;
 
-        l = elm_list_item_label_get(it);
+        s = elm_object_item_text_get(list_it);
 
-        if (tc_data->font && !strcmp(l, tc_data->font))
+        if (tc_data->font && !strcmp(s, tc_data->font))
           {
-             elm_list_item_selected_set(it, EINA_TRUE);
-             elm_list_item_show(it);
+             elm_list_item_selected_set(list_it, EINA_TRUE);
+             elm_list_item_show(list_it);
              break;
           }
      }
@@ -1484,33 +1541,32 @@ _font_names_list_sel(void *data   __UNUSED__,
                      Evas_Object *obj,
                      void        *event_info)
 {
-   Evas_Object *style_list, *cls_list, *sizes_list, *win;
+   Evas_Object *style_list, *cls_list, *win;
    const char *style, *sel_font;
    Elm_Text_Class_Data *tc_data;
-   Elm_List_Item *it, *fc_it;
+   Elm_Object_Item *list_it, *fc_list_it;
    Elm_Font_Properties *efp;
    const Eina_List *l;
 
-   it = event_info;
-   sel_font = elm_list_item_label_get(it);
+   list_it = event_info;
+   sel_font = elm_object_item_text_get(list_it);
 
    win = elm_object_top_widget_get(obj);
    style_list = evas_object_data_get(win, "font_styles_list");
    cls_list = evas_object_data_get(win, "font_classes_list");
-   sizes_list = evas_object_data_get(win, "font_sizes_list");
 
-   fc_it = elm_list_selected_item_get(cls_list);
-   if (!fc_it) return;  /* should not happen, fonts list disabled in
+   fc_list_it = elm_list_selected_item_get(cls_list);
+   if (!fc_list_it) return;  /* should not happen, fonts list disabled in
                          * this case */
 
-   eina_stringshare_replace(&fdata.cur_font, sel_font);
+   eina_stringshare_replace(&fndata.cur_font, sel_font);
 
-   tc_data = elm_list_item_data_get(fc_it);
+   tc_data = elm_object_item_data_get(fc_list_it);
    if (tc_data->font) eina_stringshare_del(tc_data->font);
-   if (fdata.cur_font) tc_data->font = eina_stringshare_ref(fdata.cur_font);
+   if (fndata.cur_font) tc_data->font = eina_stringshare_ref(fndata.cur_font);
 
    /* load styles list */
-   efp = eina_hash_find(fdata.font_hash, sel_font);
+   efp = eina_hash_find(fndata.font_hash, sel_font);
 
    ELM_LIST_ENABLE(style_list);
    elm_list_clear(style_list);
@@ -1518,17 +1574,17 @@ _font_names_list_sel(void *data   __UNUSED__,
    evas_event_freeze(evas_object_evas_get(style_list));
    edje_freeze();
 
-   it = NULL;
+   list_it = NULL;
 
    EINA_LIST_FOREACH(efp->styles, l, style)
      {
-        Elm_List_Item *i;
+        Elm_Object_Item *i;
 
         i = elm_list_item_append(style_list, style, NULL, NULL,
                                  _font_styles_list_sel, NULL);
 
         if (tc_data->style && (!strcmp(style, tc_data->style)))
-          it = i;
+          list_it = i;
      }
 
    elm_list_go(style_list);
@@ -1536,8 +1592,8 @@ _font_names_list_sel(void *data   __UNUSED__,
    edje_thaw();
    evas_event_thaw(evas_object_evas_get(style_list));
 
-   if (it)
-     elm_list_item_selected_set(it, EINA_TRUE);
+   if (list_it)
+     elm_list_item_selected_set(list_it, EINA_TRUE);
 
    _font_preview_update(win);
 }
@@ -1550,37 +1606,37 @@ _font_styles_list_sel(void *data   __UNUSED__,
    Evas_Object *fc_list, *fs_list, *win;
    Elm_Text_Class_Data *tc_data;
    const Eina_List *l;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
 
    win = elm_object_top_widget_get(obj);
    fc_list = evas_object_data_get(win, "font_classes_list");
    fs_list = evas_object_data_get(win, "font_sizes_list");
 
-   it = elm_list_selected_item_get(fc_list);
-   if (!it) return;  /* should not happen */
+   list_it = elm_list_selected_item_get(fc_list);
+   if (!list_it) return;  /* should not happen */
 
-   eina_stringshare_replace(&fdata.cur_style,
-                            elm_list_item_label_get(event_info));
+   eina_stringshare_replace(&fndata.cur_style,
+                            elm_object_item_text_get(event_info));
    ELM_LIST_ENABLE(fs_list);
 
-   tc_data = elm_list_item_data_get(it);
+   tc_data = elm_object_item_data_get(list_it);
    eina_stringshare_del(tc_data->style);
-   tc_data->style = eina_stringshare_ref(fdata.cur_style);
+   tc_data->style = eina_stringshare_ref(fndata.cur_style);
 
    evas_event_freeze(evas_object_evas_get(fs_list));
    edje_freeze();
 
-   EINA_LIST_FOREACH(elm_list_items_get(fs_list), l, it)
+   EINA_LIST_FOREACH(elm_list_items_get(fs_list), l, list_it)
      {
         Elm_Font_Size_Data *sdata;
 
-        sdata = elm_list_item_data_get(it);
+        sdata = elm_object_item_data_get(list_it);
         elm_list_item_selected_set(l->data, EINA_FALSE);
 
         if (tc_data->size == sdata->size)
           {
-             elm_list_item_selected_set(it, EINA_TRUE);
-             elm_list_item_show(it);
+             elm_list_item_selected_set(list_it, EINA_TRUE);
+             elm_list_item_show(list_it);
              break;
           }
      }
@@ -1599,19 +1655,19 @@ _font_sizes_list_sel(void *data       __UNUSED__,
    Elm_Text_Class_Data *tc_data;
    Evas_Object *fc_list, *win;
    Elm_Font_Size_Data *sd;
-   Elm_List_Item *it;
+   Elm_Object_Item *list_it;
 
    win = elm_object_top_widget_get(obj);
    fc_list = evas_object_data_get(win, "font_classes_list");
 
-   it = elm_list_selected_item_get(fc_list);
-   if (!it) return;  /* should not happen */
+   list_it = elm_list_selected_item_get(fc_list);
+   if (!list_it) return;  /* should not happen */
 
-   sd = elm_list_item_data_get(event_info);
-   fdata.cur_size = sd->size;
+   sd = elm_object_item_data_get(event_info);
+   fndata.cur_size = sd->size;
 
-   tc_data = elm_list_item_data_get(it);
-   tc_data->size = fdata.cur_size;
+   tc_data = elm_object_item_data_get(list_it);
+   tc_data->size = fndata.cur_size;
 
    _font_preview_update(win);
 }
@@ -1663,7 +1719,7 @@ _font_classes_list_load(Evas_Object *li)
    evas_event_freeze(evas);
    edje_freeze();
 
-   EINA_LIST_FOREACH(fdata.text_classes, l, tc_data)
+   EINA_LIST_FOREACH(fndata.text_classes, l, tc_data)
      elm_list_item_append(li, tc_data->desc, NULL, NULL,
                           _font_classes_list_sel, tc_data);
 
@@ -1678,7 +1734,8 @@ _font_classes_list_load(Evas_Object *li)
 static void
 _fonts_data_fill(Evas *evas)
 {
-   const Eina_List *fo_list, *text_classes, *l;
+   const Eina_List *fo_list, *l;
+   Eina_List *text_classes;
    Elm_Text_Class_Data *tc_data;
    Elm_Font_Size_Data *sd;
    Elm_Font_Overlay *efo;
@@ -1687,11 +1744,11 @@ _fonts_data_fill(Evas *evas)
    int i;
 
    evas_fonts = evas_font_available_list(evas);
-   fdata.font_hash = elm_font_available_hash_add(evas_fonts);
+   fndata.font_hash = elm_font_available_hash_add(evas_fonts);
    evas_font_available_list_free(evas, evas_fonts);
 
-   text_classes = elm_text_classes_list_get();
-   fo_list = elm_font_overlay_list_get();
+   text_classes = elm_config_text_classes_list_get();
+   fo_list = elm_config_font_overlay_list_get();
 
    EINA_LIST_FOREACH(text_classes, l, etc)
      {
@@ -1722,43 +1779,43 @@ _fonts_data_fill(Evas *evas)
              tc_data->size = efo->size;
           }
 
-        fdata.text_classes = eina_list_append(fdata.text_classes, tc_data);
+        fndata.text_classes = eina_list_append(fndata.text_classes, tc_data);
      }
 
-   elm_text_classes_list_free(text_classes);
+   elm_config_text_classes_list_free(text_classes);
 
    /* FIXME: hinting later */
-   /* fdata.hinting = e_config->font_hinting; */
+   /* fndata.hinting = e_config->font_hinting; */
 
    sd = calloc(1, sizeof(Elm_Font_Size_Data));
    sd->size_str = eina_stringshare_add("Tiny");
    sd->size = -50;
-   fdata.font_scale_list = eina_list_append(fdata.font_scale_list, sd);
+   fndata.font_scale_list = eina_list_append(fndata.font_scale_list, sd);
 
    sd = calloc(1, sizeof(Elm_Font_Size_Data));
    sd->size_str = eina_stringshare_add("Small");
    sd->size = -80;
-   fdata.font_scale_list = eina_list_append(fdata.font_scale_list, sd);
+   fndata.font_scale_list = eina_list_append(fndata.font_scale_list, sd);
 
    sd = calloc(1, sizeof(Elm_Font_Size_Data));
    sd->size_str = eina_stringshare_add("Normal");
    sd->size = -100;
-   fdata.font_scale_list = eina_list_append(fdata.font_scale_list, sd);
+   fndata.font_scale_list = eina_list_append(fndata.font_scale_list, sd);
 
    sd = calloc(1, sizeof(Elm_Font_Size_Data));
    sd->size_str = eina_stringshare_add("Big");
    sd->size = -150;
-   fdata.font_scale_list = eina_list_append(fdata.font_scale_list, sd);
+   fndata.font_scale_list = eina_list_append(fndata.font_scale_list, sd);
 
    sd = calloc(1, sizeof(Elm_Font_Size_Data));
    sd->size_str = eina_stringshare_add("Really Big");
    sd->size = -190;
-   fdata.font_scale_list = eina_list_append(fdata.font_scale_list, sd);
+   fndata.font_scale_list = eina_list_append(fndata.font_scale_list, sd);
 
    sd = calloc(1, sizeof(Elm_Font_Size_Data));
    sd->size_str = eina_stringshare_add("Huge");
    sd->size = -250;
-   fdata.font_scale_list = eina_list_append(fdata.font_scale_list, sd);
+   fndata.font_scale_list = eina_list_append(fndata.font_scale_list, sd);
 
    for (i = 5; i < 51; i++)
      {
@@ -1770,7 +1827,7 @@ _fonts_data_fill(Evas *evas)
         sd = calloc(1, sizeof(Elm_Font_Size_Data));
         sd->size_str = eina_stringshare_add(str);
         sd->size = i;
-        fdata.font_px_list = eina_list_append(fdata.font_px_list, sd);
+        fndata.font_px_list = eina_list_append(fndata.font_px_list, sd);
      }
 }
 
@@ -1794,11 +1851,11 @@ _font_sizes_list_load(Evas_Object *size_list)
    evas_event_freeze(evas);
    edje_freeze();
 
-   EINA_LIST_FOREACH(fdata.font_scale_list, l, size_data)
+   EINA_LIST_FOREACH(fndata.font_scale_list, l, size_data)
      elm_list_item_append(size_list, size_data->size_str, NULL, NULL,
                           _font_sizes_list_sel, size_data);
 
-   EINA_LIST_FOREACH(fdata.font_px_list, l, size_data)
+   EINA_LIST_FOREACH(fndata.font_px_list, l, size_data)
      elm_list_item_append(size_list, size_data->size_str, NULL, NULL,
                           _font_sizes_list_sel, size_data);
 
@@ -1853,7 +1910,7 @@ _font_names_list_load(Evas_Object *flist)
    evas_event_freeze(evas);
    edje_freeze();
 
-   eina_hash_foreach(fdata.font_hash, _font_list_fill, &names_list);
+   eina_hash_foreach(fndata.font_hash, _font_list_fill, &names_list);
    names_list = eina_list_sort(names_list, eina_list_count(names_list),
                                _font_sort_cb);
 
@@ -1873,7 +1930,7 @@ _font_names_list_load(Evas_Object *flist)
 
 static void
 _status_config_fonts(Evas_Object *win,
-                     Evas_Object *pager)
+                     Evas_Object *naviframe)
 {
    Evas_Object *base, *fr, *li, *rc, *preview, *sp, *pd, *bt, *bx;
    char buf[PATH_MAX];
@@ -1903,7 +1960,7 @@ _status_config_fonts(Evas_Object *win,
    li = elm_list_add(win);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_frame_content_set(fr, li);
+   elm_object_content_set(fr, li);
    evas_object_show(li);
 
    evas_object_data_set(win, "font_classes_list", li);
@@ -1919,7 +1976,7 @@ _status_config_fonts(Evas_Object *win,
    li = elm_list_add(win);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_frame_content_set(fr, li);
+   elm_object_content_set(fr, li);
    evas_object_show(li);
 
    evas_object_data_set(win, "font_names_list", li);
@@ -1943,7 +2000,7 @@ _status_config_fonts(Evas_Object *win,
    li = elm_list_add(win);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_frame_content_set(fr, li);
+   elm_object_content_set(fr, li);
    evas_object_show(li);
 
    evas_object_data_set(win, "font_styles_list", li);
@@ -1960,7 +2017,7 @@ _status_config_fonts(Evas_Object *win,
    li = elm_list_add(win);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_frame_content_set(fr, li);
+   elm_object_content_set(fr, li);
    evas_object_show(li);
 
    evas_object_data_set(win, "font_sizes_list", li);
@@ -1974,10 +2031,10 @@ _status_config_fonts(Evas_Object *win,
    evas_object_show(bx);
 
    /* FIXME: what to do here? dedicated widget? some new entry API set? */
-   snprintf(buf, sizeof(buf), "%s/objects/font_preview.edj", PACKAGE_DATA_DIR);
+   snprintf(buf, sizeof(buf), "%s/objects/font_preview.edj", elm_app_data_dir_get());
    preview = elm_layout_add(win);
    elm_layout_file_set(preview, buf, "font_preview");
-   elm_object_label_set(preview, "elm.text", "Preview Text â€” æˆ‘真的会写中文");
+   elm_object_part_text_set(preview, "elm.text", "Preview Text â€” æˆ‘真的会写中文");
    evas_object_size_hint_weight_set(preview, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(preview, EVAS_HINT_FILL, EVAS_HINT_FILL);
    evas_object_show(preview);
@@ -2038,11 +2095,11 @@ _status_config_fonts(Evas_Object *win,
    elm_box_pack_end(bx, bt);
    evas_object_show(bt);
 
-   elm_frame_content_set(pd, bx);
+   elm_object_content_set(pd, bx);
 
    evas_object_data_set(win, "fonts", base);
 
-   elm_pager_content_push(pager, base);
+   elm_naviframe_item_simple_push(naviframe, base);
 }
 
 static void
@@ -2068,7 +2125,6 @@ _profiles_list_selected_cb(void            *data,
 {
    const char *cur_profile = NULL;
    const char *sel_profile, *pdir;
-   Eina_Bool cur_selected;
    const char *prof_name;
    char buf[PATH_MAX];
    Evas_Object *en;
@@ -2080,15 +2136,23 @@ _profiles_list_selected_cb(void            *data,
    if (!sel_profile)
      return;
 
-   cur_profile = elm_profile_current_get();
-   cur_selected = !strcmp(cur_profile, sel_profile);
+   cur_profile = elm_config_profile_get();
 
-   pdir = elm_profile_dir_get(sel_profile, EINA_FALSE);
+   pdir = elm_config_profile_dir_get(sel_profile, EINA_TRUE);
+   if (!pdir) pdir = elm_config_profile_dir_get(sel_profile, EINA_FALSE);
 #ifdef ELM_EFREET
    snprintf(buf, sizeof(buf), "%s/profile.desktop", pdir);
    desk = efreet_desktop_new(buf);
    if ((desk) && (desk->name)) prof_name = desk->name;
    else
+     {
+        if (desk) efreet_desktop_free(desk);
+        pdir = elm_config_profile_dir_get(sel_profile, EINA_FALSE);
+        snprintf(buf, sizeof(buf), "%s/profile.desktop", pdir);
+        desk = efreet_desktop_new(buf);
+        if ((desk) && (desk->name)) prof_name = desk->name;
+        else prof_name = cur_profile;
+     }
 #endif
    prof_name = cur_profile;
 
@@ -2103,19 +2167,19 @@ _profiles_list_selected_cb(void            *data,
                                 EINA_FALSE);
         elm_object_disabled_set(evas_object_data_get(obj, "prof_use_btn"),
                                 EINA_FALSE);
-        elm_profile_dir_free(pdir);
+        elm_config_profile_dir_free(pdir);
      }
 
-   snprintf(buf, sizeof(buf), "<hilight>Selected profile: %s</><br>",
+   snprintf(buf, sizeof(buf), "<hilight>Selected profile: %s</><br/>",
             prof_name);
    elm_object_text_set(evas_object_data_get(obj, "prof_name_lbl"), buf);
 
    en = evas_object_data_get(obj, "prof_desc_entry");
 #ifdef ELM_EFREET
-   if (desk) elm_entry_entry_set(en, desk->comment);
+   if (desk) elm_object_text_set(en, desk->comment);
    else
 #endif
-   elm_entry_entry_set(en, "Unknown");
+   elm_object_text_set(en, "Unknown");
 
 #ifdef ELM_EFREET
    if (desk) efreet_desktop_free(desk);
@@ -2136,7 +2200,7 @@ _profiles_list_fill(Evas_Object *l_widget,
 
    elm_list_clear(l_widget);
 
-   cur_profile = elm_profile_current_get();
+   cur_profile = elm_config_profile_get();
 
    EINA_LIST_FOREACH(p_names, l, profile)
      {
@@ -2145,16 +2209,26 @@ _profiles_list_fill(Evas_Object *l_widget,
 #endif
         const char *label, *ext, *pdir;
         char buf[PATH_MAX];
-        Elm_List_Item *it;
+        Elm_Object_Item *list_it;
         Evas_Object *ic;
 
-        pdir = elm_profile_dir_get(profile, EINA_FALSE);
+        pdir = elm_config_profile_dir_get(profile, EINA_TRUE);
+        if (!pdir) pdir = elm_config_profile_dir_get(profile, EINA_FALSE);
         label = profile;
 
 #ifdef ELM_EFREET
         snprintf(buf, sizeof(buf), "%s/profile.desktop", pdir);
         desk = efreet_desktop_new(buf);
         if ((desk) && (desk->name)) label = desk->name;
+        else
+          {
+             if (desk) efreet_desktop_free(desk);
+             pdir = elm_config_profile_dir_get(profile, EINA_FALSE);
+             snprintf(buf, sizeof(buf), "%s/profile.desktop", pdir);
+             desk = efreet_desktop_new(buf);
+             if ((desk) && (desk->name)) label = desk->name;
+             else label = profile;
+          }
 #endif
 
         buf[0] = 0;
@@ -2175,13 +2249,14 @@ _profiles_list_fill(Evas_Object *l_widget,
                                          1, 1);
         evas_object_show(ic);
 
-        it = elm_list_item_append(l_widget, label, ic, NULL,
-                                  _profiles_list_selected_cb, strdup(profile));
-        elm_list_item_del_cb_set(it, _profiles_list_item_del_cb);
+        list_it = elm_list_item_append(l_widget, label, ic, NULL,
+                                       _profiles_list_selected_cb,
+                                       strdup(profile));
+        elm_object_item_del_cb_set(list_it, _profiles_list_item_del_cb);
         if (cur_profile && !strcmp(profile, cur_profile))
-          sel_it = it;
+          sel_it = list_it;
 
-        elm_profile_dir_free(pdir);
+        elm_config_profile_dir_free(pdir);
 
 #ifdef ELM_EFREET
         if (desk) efreet_desktop_free(desk);
@@ -2208,7 +2283,7 @@ _profiles_list_unselect_cb(void *data       __UNUSED__,
 
 static void
 _status_config_profiles(Evas_Object *win,
-                        Evas_Object *pager)
+                        Evas_Object *naviframe)
 {
    Evas_Object *li, *bx, *fr_bx1, *fr_bx2, *btn_bx, *fr, *lb, *en, *sp, *pd,
    *bt;
@@ -2236,7 +2311,7 @@ _status_config_profiles(Evas_Object *win,
    elm_object_text_set(fr, "Available Profiles");
    evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_frame_content_set(fr, fr_bx1);
+   elm_object_content_set(fr, fr_bx1);
    elm_box_pack_end(bx, fr);
    evas_object_show(fr);
 
@@ -2246,7 +2321,7 @@ _status_config_profiles(Evas_Object *win,
    evas_object_smart_callback_add(li, "unselected", _profiles_list_unselect_cb,
                                   NULL);
 
-   profs = elm_profile_list_get();
+   profs = elm_config_profile_list_get();
 
    evas_object_show(li);
    elm_box_pack_end(fr_bx2, li);
@@ -2331,7 +2406,7 @@ _status_config_profiles(Evas_Object *win,
    elm_box_pack_end(btn_bx, bt);
    evas_object_show(bt);
 
-   elm_frame_content_set(pd, btn_bx);
+   elm_object_content_set(pd, btn_bx);
 
    evas = evas_object_evas_get(li);
    evas_event_freeze(evas);
@@ -2339,18 +2414,18 @@ _status_config_profiles(Evas_Object *win,
 
    _profiles_list_fill(li, profs);
 
-   elm_profile_list_free(profs);
+   elm_config_profile_list_free(profs);
 
    edje_thaw();
    evas_event_thaw(evas);
 
    evas_object_data_set(win, "profiles", bx);
-   elm_pager_content_push(pager, bx);
+   elm_naviframe_item_simple_push(naviframe, bx);
 }
 
 static void
 _status_config_scrolling(Evas_Object *win,
-                         Evas_Object *pager)
+                         Evas_Object *naviframe)
 {
    Evas_Object *lb, *pd, *bx, *sl, *sp, *ck, *sc;
 
@@ -2363,17 +2438,17 @@ _status_config_scrolling(Evas_Object *win,
    evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
    elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
    evas_object_show(sc);
-   elm_scroller_content_set(sc, bx);
+   elm_object_content_set(sc, bx);
 
    ck = elm_check_add(win);
-   elm_object_tooltip_text_set(ck, "Set whether scrollers should bounce<br>"
-                                   "when they reach their viewport's edge<br>"
+   elm_object_tooltip_text_set(ck, "Set whether scrollers should bounce<br/>"
+                                   "when they reach their viewport's edge<br/>"
                                    "during a scroll");
-   elm_check_label_set(ck, "Enable scroll bounce");
+   elm_object_text_set(ck, "Enable scroll bounce");
    evas_object_data_set(win, "scroll_bounce_check", ck);
    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
-   elm_check_state_set(ck, elm_scroll_bounce_enabled_get());
+   elm_check_state_set(ck, elm_config_scroll_bounce_enabled_get());
    elm_box_pack_end(bx, ck);
    evas_object_show(ck);
 
@@ -2382,7 +2457,7 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Scroll bounce friction</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the amount of inertia a <br>"
+   elm_object_tooltip_text_set(sl, "This is the amount of inertia a <br/>"
                                    "scroller will impose at bounce animations");
    evas_object_data_set(win, "bounce_friction_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2391,7 +2466,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.2f");
    elm_slider_indicator_format_set(sl, "%1.2f");
    elm_slider_min_max_set(sl, 0.0, 4.0);
-   elm_slider_value_set(sl, elm_scroll_bounce_friction_get());
+   elm_slider_value_set(sl, elm_config_scroll_bounce_friction_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2406,13 +2481,13 @@ _status_config_scrolling(Evas_Object *win,
    evas_object_show(sp);
 
    ck = elm_check_add(win);
-   elm_object_tooltip_text_set(ck, "Set whether scrollers should be<br>"
+   elm_object_tooltip_text_set(ck, "Set whether scrollers should be<br/>"
                                    "draggable from any point in their views");
-   elm_check_label_set(ck, "Enable thumb scroll");
+   elm_object_text_set(ck, "Enable thumb scroll");
    evas_object_data_set(win, "thumbscroll_check", ck);
    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
-   elm_check_state_set(ck, elm_scroll_thumbscroll_enabled_get());
+   elm_check_state_set(ck, elm_config_scroll_thumbscroll_enabled_get());
    elm_box_pack_end(bx, ck);
    evas_object_show(ck);
 
@@ -2421,8 +2496,8 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Thumb scroll threshold</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the number of pixels one should<br>"
-                                   "travel while dragging a scroller's view<br>"
+   elm_object_tooltip_text_set(sl, "This is the number of pixels one should<br/>"
+                                   "travel while dragging a scroller's view<br/>"
                                    "to actually trigger scrolling");
    evas_object_data_set(win, "thumbscroll_threshold_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2431,7 +2506,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.0f pixels");
    elm_slider_indicator_format_set(sl, "%1.0f");
    elm_slider_min_max_set(sl, 8.0, 50.0);
-   elm_slider_value_set(sl, elm_scroll_thumbscroll_threshold_get());
+   elm_slider_value_set(sl, elm_config_scroll_thumbscroll_threshold_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2441,9 +2516,9 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Thumb scroll momentum threshold</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the minimum speed of mouse <br>"
-                                   "cursor movement which will trigger<br>"
-                                   "list self scrolling animation after a<br>"
+   elm_object_tooltip_text_set(sl, "This is the minimum speed of mouse <br/>"
+                                   "cursor movement which will trigger<br/>"
+                                   "list self scrolling animation after a<br/>"
                                    "mouse up event (pixels/second)");
    evas_object_data_set(win, "ts_momentum_threshold_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2452,7 +2527,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.0f pixels/s");
    elm_slider_indicator_format_set(sl, "%1.0f");
    elm_slider_min_max_set(sl, 10.0, 200.0);
-   elm_slider_value_set(sl, elm_scroll_thumbscroll_momentum_threshold_get());
+   elm_slider_value_set(sl, elm_config_scroll_thumbscroll_momentum_threshold_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2463,8 +2538,8 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Thumb scroll friction</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the amount of inertia a<br>"
-                                   "scroller will impose at self scrolling<br>"
+   elm_object_tooltip_text_set(sl, "This is the amount of inertia a<br/>"
+                                   "scroller will impose at self scrolling<br/>"
                                    "animations");
    evas_object_data_set(win, "thumbscroll_friction_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2473,7 +2548,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.1f");
    elm_slider_indicator_format_set(sl, "%1.1f");
    elm_slider_min_max_set(sl, 0.0, 15.0);
-   elm_slider_value_set(sl, elm_scroll_thumbscroll_friction_get());
+   elm_slider_value_set(sl, elm_config_scroll_thumbscroll_friction_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2483,10 +2558,10 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Thumb scroll border friction</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the amount of lag between your<br>"
-                                   "actual mouse cursor dragging movement<br>"
-                                   "and a scroller's view movement itself,<br>"
-                                   "while pushing it into bounce state<br>"
+   elm_object_tooltip_text_set(sl, "This is the amount of lag between your<br/>"
+                                   "actual mouse cursor dragging movement<br/>"
+                                   "and a scroller's view movement itself,<br/>"
+                                   "while pushing it into bounce state<br/>"
                                    "manually");
    evas_object_data_set(win, "ts_border_friction_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2495,13 +2570,33 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.2f");
    elm_slider_indicator_format_set(sl, "%1.2f");
    elm_slider_min_max_set(sl, 0.0, 1.0);
-   elm_slider_value_set(sl, elm_scroll_thumbscroll_border_friction_get());
+   elm_slider_value_set(sl, elm_config_scroll_thumbscroll_border_friction_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
    evas_object_smart_callback_add(sl, "changed", tsbf_round, NULL);
    evas_object_smart_callback_add(sl, "delay,changed", tsbf_change, NULL);
 
+   LABEL_FRAME_ADD("<hilight>Thumb scroll sensitivity friction</>");
+
+   sl = elm_slider_add(win);
+   elm_object_tooltip_text_set(sl, "This is the sensitivity amount which<br/>"
+                                   "is be multiplied by the length of mouse<br/>"
+                                   "dragging.");
+   evas_object_data_set(win, "ts_sensitivity_friction_slider", sl);
+   evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 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.1, 1.0);
+   elm_slider_value_set(sl, elm_config_scroll_thumbscroll_sensitivity_friction_get());
+   elm_box_pack_end(bx, sl);
+   evas_object_show(sl);
+
+   evas_object_smart_callback_add(sl, "changed", tssf_round, NULL);
+   evas_object_smart_callback_add(sl, "delay,changed", tssf_change, NULL);
+
    sp = elm_separator_add(win);
    elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
@@ -2512,8 +2607,8 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Page scroll friction</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the amount of inertia a<br>"
-                                   "paged scroller will impose at<br>"
+   elm_object_tooltip_text_set(sl, "This is the amount of inertia a<br/>"
+                                   "paged scroller will impose at<br/>"
                                    "page fitting animations");
    evas_object_data_set(win, "page_scroll_friction_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2522,7 +2617,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.1f");
    elm_slider_indicator_format_set(sl, "%1.1f");
    elm_slider_min_max_set(sl, 0.0, 5.0);
-   elm_slider_value_set(sl, elm_scroll_page_scroll_friction_get());
+   elm_slider_value_set(sl, elm_config_scroll_page_scroll_friction_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2532,8 +2627,8 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Bring in scroll friction</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the amount of inertia a<br>"
-                                   "scroller will impose at region bring<br>"
+   elm_object_tooltip_text_set(sl, "This is the amount of inertia a<br/>"
+                                   "scroller will impose at region bring<br/>"
                                    "animations");
    evas_object_data_set(win, "bring_in_scroll_friction_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2542,7 +2637,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.1f");
    elm_slider_indicator_format_set(sl, "%1.1f");
    elm_slider_min_max_set(sl, 0.0, 5.0);
-   elm_slider_value_set(sl, elm_scroll_bring_in_scroll_friction_get());
+   elm_slider_value_set(sl, elm_config_scroll_bring_in_scroll_friction_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2552,9 +2647,9 @@ _status_config_scrolling(Evas_Object *win,
    LABEL_FRAME_ADD("<hilight>Zoom scroll friction</>");
 
    sl = elm_slider_add(win);
-   elm_object_tooltip_text_set(sl, "This is the amount of inertia<br>"
-                                   "scrollers will impose at animations<br>"
-                                   "triggered by Elementary widgets'<br>"
+   elm_object_tooltip_text_set(sl, "This is the amount of inertia<br/>"
+                                   "scrollers will impose at animations<br/>"
+                                   "triggered by Elementary widgets'<br/>"
                                    "zooming API");
    evas_object_data_set(win, "zoom_scroll_friction_slider", sl);
    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
@@ -2563,7 +2658,7 @@ _status_config_scrolling(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.1f");
    elm_slider_indicator_format_set(sl, "%1.1f");
    elm_slider_min_max_set(sl, 0.0, 5.0);
-   elm_slider_value_set(sl, elm_scroll_zoom_friction_get());
+   elm_slider_value_set(sl, elm_config_scroll_zoom_friction_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2572,7 +2667,7 @@ _status_config_scrolling(Evas_Object *win,
 
    evas_object_data_set(win, "scrolling", sc);
 
-   elm_pager_content_push(pager, sc);
+   elm_naviframe_item_simple_push(naviframe, sc);
 }
 
 static char *
@@ -2609,6 +2704,11 @@ _elm_engine_supported(const char *engine)
       "sdl",
       "software_16_sdl",
       "opengl_sdl",
+      "ews",
+      "opengl_cocoa",
+      "psl1ght",
+      "wayland_shm",
+      "wayland_egl",
       NULL
    };
 
@@ -2636,25 +2736,25 @@ _engines_list_fill(Evas_Object *l_widget,
    if (!e_names)
      return;
 
-   cur_engine = elm_engine_current_get();
+   cur_engine = elm_config_engine_get();
 
    EINA_LIST_FOREACH(e_names, l, engine)
      {
         const char *label;
-        Elm_List_Item *it;
+        Elm_Object_Item *list_it;
 
         if (!_elm_engine_supported(engine))
           continue;
 
         label = _engine_name_prettify(engine);
 
-        it = elm_list_item_append(l_widget, label, NULL, NULL, NULL,
+        list_it = elm_list_item_append(l_widget, label, NULL, NULL, NULL,
                                   strdup(engine));
-        elm_list_item_del_cb_set(it, _engines_list_item_del_cb);
+        elm_object_item_del_cb_set(list_it, _engines_list_item_del_cb);
         free((void *)label);
 
         if (!strcmp(cur_engine, engine))
-          sel_it = it;
+          sel_it = list_it;
      }
 
    if (sel_it) elm_list_item_selected_set(sel_it, EINA_TRUE);
@@ -2663,7 +2763,7 @@ _engines_list_fill(Evas_Object *l_widget,
 
 static void
 _status_config_rendering(Evas_Object *win,
-                         Evas_Object *pager)
+                         Evas_Object *naviframe)
 {
    Evas_Object *li, *bx, *fr, *sp, *pd, *bt;
    Eina_List *engines;
@@ -2680,7 +2780,7 @@ _status_config_rendering(Evas_Object *win,
    evas_object_show(fr);
 
    li = elm_list_add(win);
-   elm_frame_content_set(fr, li);
+   elm_object_content_set(fr, li);
    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
@@ -2711,16 +2811,16 @@ _status_config_rendering(Evas_Object *win,
    elm_object_text_set(bt, "Use Engine");
    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);
+   elm_object_content_set(pd, bt);
    evas_object_show(bt);
 
    evas_object_data_set(win, "rendering", bx);
-   elm_pager_content_push(pager, bx);
+   elm_naviframe_item_simple_push(naviframe, bx);
 }
 
 static void
 _status_config_caches(Evas_Object *win,
-                      Evas_Object *pager)
+                      Evas_Object *naviframe)
 {
    Evas_Object *lb, *pd, *bx, *sl, *sp, *ck;
 
@@ -2738,14 +2838,14 @@ _status_config_caches(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.0f ticks");
    elm_slider_indicator_format_set(sl, "%1.0f");
    elm_slider_min_max_set(sl, 8.0, 4096.0);
-   elm_slider_value_set(sl, elm_cache_flush_interval_get());
-   elm_object_disabled_set(sl, !elm_cache_flush_enabled_get());
+   elm_slider_value_set(sl, elm_config_cache_flush_interval_get());
+   elm_object_disabled_set(sl, !elm_config_cache_flush_enabled_get());
 
    ck = elm_check_add(win);
    evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5);
-   elm_check_label_set(ck, "Enable Flushing");
-   elm_check_state_set(ck, elm_cache_flush_enabled_get());
+   elm_object_text_set(ck, "Enable Flushing");
+   elm_check_state_set(ck, elm_config_cache_flush_enabled_get());
    evas_object_smart_callback_add(ck, "changed", cf_enable, sl);
    elm_box_pack_end(bx, ck);
    evas_object_show(ck);
@@ -2757,7 +2857,7 @@ _status_config_caches(Evas_Object *win,
    evas_object_smart_callback_add(sl, "delay,changed", cf_change, NULL);
 
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(bx, sp);
@@ -2773,7 +2873,7 @@ _status_config_caches(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.1f MB");
    elm_slider_indicator_format_set(sl, "%1.1f");
    elm_slider_min_max_set(sl, 0.0, 4.0);
-   elm_slider_value_set(sl, (double)elm_font_cache_get() / 1024.0);
+   elm_slider_value_set(sl, (double)elm_config_cache_font_cache_size_get() / 1024.0);
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2781,7 +2881,7 @@ _status_config_caches(Evas_Object *win,
    evas_object_smart_callback_add(sl, "delay,changed", fc_change, NULL);
 
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(bx, sp);
@@ -2797,7 +2897,7 @@ _status_config_caches(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.0f MB");
    elm_slider_indicator_format_set(sl, "%1.0f");
    elm_slider_min_max_set(sl, 0, 32);
-   elm_slider_value_set(sl, (double)elm_image_cache_get() / 1024.0);
+   elm_slider_value_set(sl, (double)elm_config_cache_image_cache_size_get() / 1024.0);
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2805,7 +2905,7 @@ _status_config_caches(Evas_Object *win,
    evas_object_smart_callback_add(sl, "delay,changed", ic_change, NULL);
 
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(bx, sp);
@@ -2821,7 +2921,7 @@ _status_config_caches(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.0f files");
    elm_slider_indicator_format_set(sl, "%1.0f");
    elm_slider_min_max_set(sl, 0, 32);
-   elm_slider_value_set(sl, elm_edje_file_cache_get());
+   elm_slider_value_set(sl, elm_config_cache_edje_file_cache_size_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2829,7 +2929,7 @@ _status_config_caches(Evas_Object *win,
    evas_object_smart_callback_add(sl, "delay,changed", efc_change, NULL);
 
    sp = elm_separator_add(win);
-   elm_separator_horizontal_set(sp, 1);
+   elm_separator_horizontal_set(sp, EINA_TRUE);
    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(bx, sp);
@@ -2845,7 +2945,7 @@ _status_config_caches(Evas_Object *win,
    elm_slider_unit_format_set(sl, "%1.0f collections");
    elm_slider_indicator_format_set(sl, "%1.0f");
    elm_slider_min_max_set(sl, 0, 128);
-   elm_slider_value_set(sl, elm_edje_collection_cache_get());
+   elm_slider_value_set(sl, elm_config_cache_edje_collection_cache_size_get());
    elm_box_pack_end(bx, sl);
    evas_object_show(sl);
 
@@ -2854,36 +2954,37 @@ _status_config_caches(Evas_Object *win,
 
    evas_object_data_set(win, "caches", bx);
 
-   elm_pager_content_push(pager, bx);
+   elm_naviframe_item_simple_push(naviframe, bx);
 }
 
 static void
 _status_config_full(Evas_Object *win,
                     Evas_Object *bx0)
 {
-   Evas_Object *tb, *pager;
-   Elm_Toolbar_Item *sizing, *it;
+   Evas_Object *tb, *naviframe;
+   Elm_Object_Item *tb_sizing, *tb_it;
 
    tb = elm_toolbar_add(win);
+   elm_toolbar_select_mode_set(tb, ELM_OBJECT_SELECT_MODE_ALWAYS);
    elm_toolbar_menu_parent_set(tb, win);
-   elm_toolbar_homogeneous_set(tb, 0);
+   elm_toolbar_homogeneous_set(tb, EINA_FALSE);
    evas_object_size_hint_weight_set(tb, 1.0, 0.0);
    evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
-   sizing = elm_toolbar_item_append(tb, "zoom-fit-best", "Sizing",
+   tb_sizing = elm_toolbar_item_append(tb, "zoom-fit-best", "Sizing",
                                     _cf_sizing, win);
-   elm_toolbar_item_priority_set(sizing, 100);
+   elm_toolbar_item_priority_set(tb_sizing, 100);
 
-   it = elm_toolbar_item_append(tb, "preferences-desktop-theme", "Theme",
+   tb_it = elm_toolbar_item_append(tb, "preferences-desktop-theme", "Theme",
                                 _cf_themes, win);
-   elm_toolbar_item_priority_set(it, 90);
+   elm_toolbar_item_priority_set(tb_it, 90);
 
    elm_toolbar_item_append(tb, "preferences-desktop-font", "Fonts",
                            _cf_fonts, win);
 
-   it = elm_toolbar_item_append(tb, "system-users", "Profiles",
+   tb_it = elm_toolbar_item_append(tb, "system-users", "Profiles",
                                 _cf_profiles, win);
-   elm_toolbar_item_priority_set(it, 90);
+   elm_toolbar_item_priority_set(tb_it, 90);
 
    elm_toolbar_item_append(tb, "system-run", "Scrolling", _cf_scrolling, win);
    elm_toolbar_item_append(tb, "video-display", "Rendering",
@@ -2893,24 +2994,24 @@ _status_config_full(Evas_Object *win,
    elm_box_pack_end(bx0, tb);
    evas_object_show(tb);
 
-   pager = elm_pager_add(win);
-   evas_object_size_hint_align_set(pager, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   evas_object_size_hint_weight_set(pager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_data_set(win, "pager", pager);
+   naviframe = elm_naviframe_add(win);
+   evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_data_set(win, "naviframe", naviframe);
 
-   _status_config_themes(win, pager);
-   _status_config_fonts(win, pager);
-   _status_config_profiles(win, pager);
-   _status_config_rendering(win, pager);
-   _status_config_scrolling(win, pager);
-   _status_config_caches(win, pager);
-   _status_config_sizing(win, pager);
+   _status_config_themes(win, naviframe);
+   _status_config_fonts(win, naviframe);
+   _status_config_profiles(win, naviframe);
+   _status_config_rendering(win, naviframe);
+   _status_config_scrolling(win, naviframe);
+   _status_config_caches(win, naviframe);
+   _status_config_sizing(win, naviframe);
 
    // FIXME uncomment after flip style fix, please
-   //elm_object_style_set(pager, "flip");
-   elm_toolbar_item_selected_set(sizing, EINA_TRUE);
-   elm_box_pack_end(bx0, pager);
-   evas_object_show(pager);
+   //elm_object_style_set(naviframe, "flip");
+   elm_toolbar_item_selected_set(tb_sizing, EINA_TRUE);
+   elm_box_pack_end(bx0, naviframe);
+   evas_object_show(naviframe);
 }
 
 static void
@@ -2919,8 +3020,12 @@ status_win(void)
    Evas_Object *win, *bg, *bx0;
 
    win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
+   main_win = win;
    elm_win_title_set(win, "Elementary Config");
 
+   ecore_event_handler_add(ELM_EVENT_CONFIG_ALL_CHANGED, _config_all_changed,
+                           win);
+
    evas_object_smart_callback_add(win, "delete,request", config_exit, NULL);
    bg = elm_bg_add(win);
    evas_object_size_hint_weight_set(bg, 1.0, 1.0);
@@ -2951,7 +3056,7 @@ _exit_timer(void *data __UNUSED__)
 /* this is your elementary main function - it MUST be called IMMEDIATELY
  * after elm_init() and MUST be passed argc and argv, and MUST be called
  * elm_main and not be static - must be a visible symbol with EAPI infront */
-EAPI int
+EAPI_MAIN int
 elm_main(int    argc,
          char **argv)
 {
@@ -3009,22 +3114,13 @@ elm_main(int    argc,
      }
    if (!interactive)
      {
-        if (theme_set)
-          {
-             elm_theme_all_set(theme_set);
-          }
-        if (finger_size_set)
-          {
-             elm_finger_size_all_set(atoi(finger_size_set));
-          }
-        if (scale_set)
-          {
-             elm_scale_all_set(atof(scale_set));
-          }
-        if (quiet)
-          {
-             elm_exit();
-          }
+        if (theme_set) elm_theme_set(NULL, theme_set);
+        if (finger_size_set) elm_config_finger_size_set(atoi(finger_size_set));
+        if (scale_set)  elm_config_scale_set(atof(scale_set));
+
+        elm_config_all_flush();
+
+        if (quiet) elm_exit();
      }
    elm_run(); /* and run the program now and handle all events, etc. */
    /* if the mainloop that elm_run() runs exists, we exit the app */