I think you deserve the title of hero for this new set of test ! AWESOME ! On Tue, Sep 11, 2012 at 6:48 AM, Enlightenment SVN <no-re...@enlightenment.org> wrote: > Log: > Another external test: progress bar. > This test also show how to access the external widgets from C code and also > directly from embryo :) > > Author: davemds > Date: 2012-09-10 14:48:56 -0700 (Mon, 10 Sep 2012) > New Revision: 76422 > Trac: http://trac.enlightenment.org/e/changeset/76422 > > Modified: > trunk/elementary/data/objects/test_external.edc > trunk/elementary/src/bin/test.c trunk/elementary/src/bin/test_external.c > > Modified: trunk/elementary/data/objects/test_external.edc > =================================================================== > --- trunk/elementary/data/objects/test_external.edc 2012-09-10 19:21:56 > UTC (rev 76421) > +++ trunk/elementary/data/objects/test_external.edc 2012-09-10 21:48:56 > UTC (rev 76422) > @@ -545,4 +545,291 @@ > } > } > } > + group { name: "external/pbar"; > + parts { > + COMMON_EXTERNAL_UNDER > + part { name: "ext_label1"; > + type: EXTERNAL; > + source: "elm/label"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 200 50; > + align: 0.5 0.0; > + params { > + string: "label" "<b>All the Widgets are edje external</>\ > +<br>This test show how you can access external widgets from <br>\ > +embryo script and from C code."; > + } > + } > + } > + > + part { name: "ext_pbar1"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 999 40; > + align: 0.0 0.0; > + rel1.offset: 0 60; > + params { > + string: "unit format" "%.0f %%"; > + double: "value" 0.5; > + } > + } > + } > + part { name: "ext_pbar2"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 999 40; > + align: 0.0 0.0; > + rel1.offset: 0 100; > + params { > + string: "label" "infinite bouce"; > + string: "unit format" ""; > + } > + } > + } > + part { name: "ext_pbar3"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 999 40; > + align: 0.0 0.0; > + rel1.offset: 0 140; > + params { > + string: "label" "inverted"; > + string: "icon" "home"; > + bool: "inverted" 1; > + string: "unit format" "%.3f units"; > + } > + } > + } > + part { name: "ext_pbar4"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 50 999; > + align: 0.1 0.0; > + rel1.offset: 0 180; > + rel2.offset: 0 -50; > + params { > + string: "label" "percent"; > + bool: "horizontal" 0; > + } > + } > + } > + part { name: "ext_pbar5"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 50 999; > + align: 0.5 0.0; > + rel1.offset: 0 180; > + rel2.offset: 0 -100; > + params { > + string: "label" "infinite bouce"; > + bool: "horizontal" 0; > + string: "unit format" ""; > + } > + } > + } > + part { name: "ext_pbar6"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 50 999; > + align: 0.9 0.0; > + rel1.offset: 0 180; > + rel2.offset: 0 -50; > + params { > + string: "label" "inverted"; > + string: "icon" "home"; > + bool: "horizontal" 0; > + bool: "inverted" 1; > + bool: "disabled" 1; > + } > + } > + } > + part { name: "ext_pbar7"; > + type: EXTERNAL; > + source: "elm/progressbar"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 50 999; > + align: 0.5 0.0; > + rel1.offset: 0 300; > + rel2.offset: 0 -50; > + params { > + string: "style" "wheel"; > + } > + } > + } > + part { name: "ext_button1"; > + type: EXTERNAL; > + source: "elm/button"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 100 40; > + align: 0.0 1.0; > + rel1.offset: 0 0; > + rel2.offset: 0 -15; > + params { > + string: "label" "anim with edje"; > + } > + } > + } > + part { name: "ext_button2"; > + type: EXTERNAL; > + source: "elm/button"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 100 40; > + align: 0.5 1.0; > + rel1.offset: 0 0; > + rel2.offset: 0 -15; > + params { > + string: "label" "...with embryo ?"; > + } > + } > + } > + part { name: "ext_button3"; > + type: EXTERNAL; > + source: "elm/button"; > + clip_to: "clip"; > + description { state: "default" 0.0; > + max: 100 40; > + align: 1.0 1.0; > + rel1.offset: 0 0; > + rel2.offset: 0 -15; > + params { > + string: "label" "...or from C"; > + } > + } > + } > + COMMON_EXTERNAL_OVER > + } > + programs { > + COMMON_EXTERNAL_PROGRAM > + program { name: "anim_with_edje"; > + signal: "clicked"; > + source: "ext_button1"; > + action: PARAM_SET "ext_pbar1" "value" 0.0; > + after: "disable_button1"; > + } > + program { name: "disable_button1"; > + action: PARAM_SET "ext_button1" "disabled" 1; > + after: "disable_button2"; > + } > + program { name: "disable_button2"; > + action: PARAM_SET "ext_button2" "disabled" 1; > + after: "disable_button3"; > + } > + program { name: "disable_button3"; > + action: PARAM_SET "ext_button3" "disabled" 1; > + after: "anim_0"; > + } > + program { name: "anim_0"; > + action: PARAM_SET "ext_pbar1" "value" 0.0; > + after: "anim_1"; > + } > + program { name: "anim_1"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.1; > + after: "anim_2"; > + } > + program { name: "anim_2"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.2; > + after: "anim_3"; > + } > + program { name: "anim_3"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.3; > + after: "anim_4"; > + } > + program { name: "anim_4"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.4; > + after: "anim_5"; > + } > + program { name: "anim_5"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.5; > + after: "anim_6"; > + } > + program { name: "anim_6"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.6; > + after: "anim_7"; > + } > + program { name: "anim_7"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.7; > + after: "anim_8"; > + } > + program { name: "anim_8"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.8; > + after: "anim_9"; > + } > + program { name: "anim_9"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 0.9; > + after: "anim_10"; > + } > + program { name: "anim_10"; > + in: 0.3 0.0; > + action: PARAM_SET "ext_pbar1" "value" 1.0; > + after: "reenable_button1"; > + } > + program { name: "reenable_button1"; > + action: PARAM_SET "ext_button1" "disabled" 0; > + after: "reenable_button2"; > + } > + program { name: "reenable_button2"; > + action: PARAM_SET "ext_button2" "disabled" 0; > + after: "reenable_button3"; > + } > + program { name: "reenable_button3"; > + action: PARAM_SET "ext_button3" "disabled" 0; > + } > + script { > + public my_value; > + public timer_cb(unused) { > + external_param_set_float(PART:"ext_pbar1", "value", > get_float(my_value)); > + external_param_set_float(PART:"ext_pbar3", "value", > get_float(my_value)); > + external_param_set_float(PART:"ext_pbar4", "value", > get_float(my_value)); > + external_param_set_float(PART:"ext_pbar6", "value", > get_float(my_value)); > + if (get_float(my_value) < 1.0) > + { > + set_float(my_value, get_float(my_value) + 0.0123); > + timer(0.1, "timer_cb", unused); > + } > + else > + { > + external_param_set_bool(PART:"ext_button1", "disabled", 0); > + external_param_set_bool(PART:"ext_button2", "disabled", 0); > + external_param_set_bool(PART:"ext_button3", "disabled", 0); > + } > + } > + } > + program { name: "bt2_click"; > + signal: "clicked"; > + source: "ext_button2"; > + script { > + set_float(my_value, 0.0); > + external_param_set_bool(PART:"ext_button1", "disabled", 1); > + external_param_set_bool(PART:"ext_button2", "disabled", 1); > + external_param_set_bool(PART:"ext_button3", "disabled", 1); > + timer_cb(0); > + } > + } > + } > + } > } > > Modified: trunk/elementary/src/bin/test.c > =================================================================== > --- trunk/elementary/src/bin/test.c 2012-09-10 19:21:56 UTC (rev 76421) > +++ trunk/elementary/src/bin/test.c 2012-09-10 21:48:56 UTC (rev 76422) > @@ -187,6 +187,7 @@ > void test_external_button(void *data, Evas_Object *obj, void *event_info); > void test_external_slider(void *data, Evas_Object *obj, void *event_info); > void test_external_scroller(void *data, Evas_Object *obj, void *event_info); > +void test_external_pbar(void *data, Evas_Object *obj, void *event_info); > #ifdef HAVE_EMOTION > void test_video(void *data, Evas_Object *obj, void *event_info); > #endif > @@ -532,6 +533,7 @@ > > //------------------------------// > ADD_TEST(NULL, "Edje External", "ExtButton", test_external_button); > + ADD_TEST(NULL, "Edje External", "ExtProgressBar", test_external_pbar); > ADD_TEST(NULL, "Edje External", "ExtScroller", test_external_scroller); > ADD_TEST(NULL, "Edje External", "ExtSlider", test_external_slider); > > > Modified: trunk/elementary/src/bin/test_external.c > =================================================================== > --- trunk/elementary/src/bin/test_external.c 2012-09-10 19:21:56 UTC (rev > 76421) > +++ trunk/elementary/src/bin/test_external.c 2012-09-10 21:48:56 UTC (rev > 76422) > @@ -70,4 +70,103 @@ > } > > > +static Eina_Bool > +_timer_cb(void *data) > +{ > + Evas_Object *edje = data; > + Evas_Object *bt1, *bt2, *bt3, *pb1, *pb2, *pb3, *pb4, *pb5, *pb6, *pb7; > + double progress; > + > + pb1 = edje_object_part_external_object_get(edje, "ext_pbar1"); > + pb2 = edje_object_part_external_object_get(edje, "ext_pbar2"); > + pb3 = edje_object_part_external_object_get(edje, "ext_pbar3"); > + pb4 = edje_object_part_external_object_get(edje, "ext_pbar4"); > + pb6 = edje_object_part_external_object_get(edje, "ext_pbar6"); > + progress = elm_progressbar_value_get(pb1) + 0.0123; > + > + elm_progressbar_value_set(pb1, progress); > + elm_progressbar_value_set(pb2, progress); > + elm_progressbar_value_set(pb3, progress); > + elm_progressbar_value_set(pb4, progress); > + elm_progressbar_value_set(pb6, progress); > + > + if (progress < 1.0) > + return ECORE_CALLBACK_RENEW; > + > + pb5 = edje_object_part_external_object_get(edje, "ext_pbar5"); > + pb7 = edje_object_part_external_object_get(edje, "ext_pbar7"); > + elm_progressbar_pulse(pb2, EINA_FALSE); > + elm_progressbar_pulse(pb5, EINA_FALSE); > + elm_progressbar_pulse(pb7, EINA_FALSE); > + > + bt1 = edje_object_part_external_object_get(edje, "ext_button1"); > + bt2 = edje_object_part_external_object_get(edje, "ext_button2"); > + bt3 = edje_object_part_external_object_get(edje, "ext_button3"); > + elm_object_disabled_set(bt1, EINA_FALSE); > + elm_object_disabled_set(bt2, EINA_FALSE); > + elm_object_disabled_set(bt3, EINA_FALSE); > + > + return ECORE_CALLBACK_CANCEL; > +} > + > +static void > +_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info > __UNUSED__) > +{ > + Evas_Object *edje = data; > + Evas_Object *bt1, *bt2, *bt3, *pb1, *pb2, *pb3, *pb4, *pb5, *pb6, *pb7; > + > + bt1 = edje_object_part_external_object_get(edje, "ext_button1"); > + bt2 = edje_object_part_external_object_get(edje, "ext_button2"); > + bt3 = edje_object_part_external_object_get(edje, "ext_button3"); > + elm_object_disabled_set(bt1, EINA_TRUE); > + elm_object_disabled_set(bt2, EINA_TRUE); > + elm_object_disabled_set(bt3, EINA_TRUE); > + > + pb1 = edje_object_part_external_object_get(edje, "ext_pbar1"); > + pb1 = edje_object_part_external_object_get(edje, "ext_pbar1"); > + pb2 = edje_object_part_external_object_get(edje, "ext_pbar2"); > + pb3 = edje_object_part_external_object_get(edje, "ext_pbar3"); > + pb4 = edje_object_part_external_object_get(edje, "ext_pbar4"); > + pb5 = edje_object_part_external_object_get(edje, "ext_pbar5"); > + pb6 = edje_object_part_external_object_get(edje, "ext_pbar6"); > + pb7 = edje_object_part_external_object_get(edje, "ext_pbar7"); > + > + elm_progressbar_value_set(pb1, 0.0); > + elm_progressbar_value_set(pb3, 0.0); > + elm_progressbar_value_set(pb4, 0.0); > + elm_progressbar_value_set(pb6, 0.0); > + > + elm_progressbar_pulse(pb2, EINA_TRUE); > + elm_progressbar_pulse(pb5, EINA_TRUE); > + elm_progressbar_pulse(pb7, EINA_TRUE); > + > + ecore_timer_add(0.1, _timer_cb, edje); > +} > + > +void > +test_external_pbar(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void > *event_info __UNUSED__) > +{ > + Evas_Object *win, *ly, *edje, *bt; > + char buf[PATH_MAX]; > + > + win = elm_win_util_standard_add("ext_pbar", "Edje External ProgressBar"); > + elm_win_autodel_set(win, EINA_TRUE); > + > + ly = elm_layout_add(win); > + snprintf(buf, sizeof(buf), "%s/objects/test_external.edj", > elm_app_data_dir_get()); > + elm_layout_file_set(ly, buf, "external/pbar"); > + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); > + evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL); > + elm_win_resize_object_add(win, ly); > + evas_object_show(ly); > + > + edje = elm_layout_edje_get(ly); > + bt = edje_object_part_external_object_get(edje, "ext_button3"); > + evas_object_smart_callback_add(bt, "clicked", _bt_clicked, edje); > + > + evas_object_resize(win, 320, 400); > + evas_object_show(win); > +} > + > + > #endif > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >
-- Cedric BAIL ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel