cxx: Added examples and tutorial for C++ binding
[platform/upstream/elementary.git] / src / examples / spinner_cxx_example.cc
1 #include <Elementary.hh>
2
3 EAPI_MAIN int
4 elm_main (int argc, char *argv[])
5 {
6    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN);
7
8    ::elm::win win(elm_win_util_standard_add("spinner", "Spinner Example"));
9    win.autohide_set(true);
10
11    ::elm::box bx(efl::eo::parent = win);
12    bx.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
13    win.resize_object_add(bx);
14    bx.visible_set(true);
15
16    ::elm::spinner sp(efl::eo::parent = win);
17    sp.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
18    sp.size_hint_align_set(EVAS_HINT_FILL, 0.5);
19    bx.pack_end(sp);
20    sp.visible_set(true);
21
22    ::elm::spinner sp2(efl::eo::parent = win);
23    sp2.label_format_set("Percentage %%%1.2f something");
24    sp2.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
25    sp2.size_hint_align_set(EVAS_HINT_FILL, 0.5);
26    bx.pack_end(sp2);
27    sp2.visible_set(true);
28
29    ::elm::spinner sp3(efl::eo::parent = win);
30    sp3.label_format_set("%1.1f units");
31    sp3.step_set(1.5);
32    sp3.wrap_set(true);
33    sp3.min_max_set(-50.0, 250.0);
34    sp3.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
35    sp3.size_hint_align_set(EVAS_HINT_FILL, 0.5);
36    bx.pack_end(sp3);
37    sp3.visible_set(true);
38
39    ::elm::spinner sp4(efl::eo::parent = win);
40    sp4.style_set("vertical");
41    sp4.interval_set(0.2);
42    sp4.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
43    sp4.size_hint_align_set(EVAS_HINT_FILL, 0.5);
44    bx.pack_end(sp4);
45    sp4.visible_set(true);
46
47    ::elm::spinner sp5(efl::eo::parent = win);
48    sp5.editable_set(false);
49    sp5.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
50    sp5.size_hint_align_set(EVAS_HINT_FILL, 0.5);
51    bx.pack_end(sp5);
52    sp5.visible_set(true);
53
54    ::elm::spinner sp6(efl::eo::parent = win);
55    sp6.editable_set(false);
56    sp6.min_max_set(1, 12);
57    sp6.special_value_add(1, "January");
58    sp6.special_value_add(2, "February");
59    sp6.special_value_add(3, "March");
60    sp6.special_value_add(4, "April");
61    sp6.special_value_add(5, "May");
62    sp6.special_value_add(6, "June");
63    sp6.special_value_add(7, "July");
64    sp6.special_value_add(8, "August");
65    sp6.special_value_add(9, "September");
66    sp6.special_value_add(10, "October");
67    sp6.special_value_add(11, "November");
68    sp6.special_value_add(12, "December");
69    sp6.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
70    sp6.size_hint_align_set(EVAS_HINT_FILL, 0.5);
71    bx.pack_end(sp6);
72    sp6.visible_set(true);
73
74    ::elm::spinner sp7(efl::eo::parent = win);
75    sp7.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
76    sp7.size_hint_align_set(EVAS_HINT_FILL, 0.5);
77    bx.pack_end(sp7);
78    sp7.visible_set(true);
79    sp7.editable_set(true);
80
81    auto changed = std::bind([&] () { std::cout << "Value changed to " << sp7.value_get() << std::endl; });
82
83    sp7.callback_changed_add( changed );
84
85    auto delay = std::bind([&] () {std::cout << "Value delay changed to " << sp7.value_get() << std::endl;});
86
87    sp7.callback_delay_changed_add( delay );
88
89    win.visible_set(true);
90
91    elm_run();
92    return 0;
93 }
94 ELM_MAIN()
95