elementary - slider, scroller, progressbar, radio
[framework/uifw/elementary.git] / src / bin / config.c
index 4386edc..825f97b 100644 (file)
@@ -81,7 +81,7 @@ 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)
@@ -362,6 +362,30 @@ tsbf_change(void *data       __UNUSED__,
 }
 
 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_scroll_thumbscroll_sensitivity_friction_get();
+   double val = elm_slider_value_get(obj);
+
+   if (tssf == val) return;
+   elm_scroll_thumbscroll_sensitivity_friction_all_set(val);
+}
+
+static void
 cf_enable(void *data,
           Evas_Object     *obj,
           void *event_info __UNUSED__)
@@ -558,7 +582,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);
 }
 
@@ -621,7 +645,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);
 }
 
@@ -864,7 +888,7 @@ _profile_change_do(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;
@@ -889,6 +913,7 @@ _profile_change_do(Evas_Object *win,
    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();
+   ts_sensitivity_friction = elm_scroll_thumbscroll_sensitivity_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();
@@ -940,6 +965,9 @@ _profile_change_do(Evas_Object *win,
    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_thumbscroll_sensitivity_friction_all_set(ts_sensitivity_friction);
+   elm_slider_value_set(evas_object_data_get(win, "ts_sensitivity_friction_slider"),
+                        ts_sensitivity_friction);
    elm_scroll_page_scroll_friction_all_set(page_friction);
    elm_slider_value_set(evas_object_data_get(win,
                                              "page_scroll_friction_slider"),
@@ -1208,14 +1236,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,7 +1251,7 @@ _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);
@@ -1255,7 +1283,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);
@@ -1305,7 +1333,7 @@ _status_config_themes(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(pd, li);
+   elm_object_content_set(pd, li);
    evas_object_show(li);
 
    list = elm_theme_name_available_list_new();
@@ -1367,7 +1395,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,18 +1409,18 @@ _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);
    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);
 
@@ -1416,7 +1444,7 @@ _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);
@@ -1903,7 +1931,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 +1947,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 +1971,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 +1988,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);
@@ -1977,7 +2005,7 @@ _status_config_fonts(Evas_Object *win,
    snprintf(buf, sizeof(buf), "%s/objects/font_preview.edj", PACKAGE_DATA_DIR);
    preview = elm_layout_add(win);
    elm_layout_file_set(preview, buf, "font_preview");
-   elm_object_label_set(preview, "elm.text", "Preview Text — 我真的会写中文");
+   elm_object_text_part_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,7 +2066,7 @@ _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);
 
@@ -2236,7 +2264,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);
 
@@ -2331,7 +2359,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);
@@ -2363,13 +2391,13 @@ _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>"
                                    "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);
@@ -2408,7 +2436,7 @@ _status_config_scrolling(Evas_Object *win,
    ck = elm_check_add(win);
    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);
@@ -2502,6 +2530,26 @@ _status_config_scrolling(Evas_Object *win,
    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_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);
@@ -2680,7 +2728,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,7 +2759,7 @@ _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);
@@ -2744,7 +2792,7 @@ _status_config_caches(Evas_Object *win,
    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_object_text_set(ck, "Enable Flushing");
    elm_check_state_set(ck, elm_cache_flush_enabled_get());
    evas_object_smart_callback_add(ck, "changed", cf_enable, sl);
    elm_box_pack_end(bx, ck);