elm bin: Use convenient utility function elm_win_util_standard_add()
[framework/uifw/elementary.git] / src / bin / test_menu.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 static Evas_Object *menu;
8
9 static void
10 _show(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
11 {
12    Evas_Event_Mouse_Down *ev = event_info;
13    elm_menu_move(data, ev->canvas.x, ev->canvas.y);
14    evas_object_show(data);
15 }
16
17 static void
18 _populate_4(Elm_Object_Item *menu_it)
19 {
20    Elm_Object_Item *menu_it2;
21
22    elm_menu_item_add(menu, menu_it, "go-bottom", "menu 2", NULL, NULL);
23    elm_menu_item_add(menu, menu_it, "go-first", "menu 3", NULL, NULL);
24    elm_menu_item_separator_add(menu, menu_it);
25    menu_it2 = elm_menu_item_add(menu, menu_it, "go-last", "Disabled item", NULL,
26                                 NULL);
27    elm_object_item_disabled_set(menu_it2, EINA_TRUE);
28    menu_it2 = elm_menu_item_add(menu, menu_it, "go-next", "Disabled item", NULL,
29                                 NULL);
30    elm_object_item_disabled_set(menu_it2, EINA_TRUE);
31    menu_it2 = elm_menu_item_add(menu, menu_it, "go-up", "Disabled item", NULL,
32                                 NULL);
33    elm_object_item_disabled_set(menu_it2, EINA_TRUE);
34 }
35
36 static void
37 _populate_3(Elm_Object_Item *menu_it)
38 {
39    Elm_Object_Item *menu_it2;
40
41    elm_menu_item_add(menu, menu_it, "media-eject", "menu 2", NULL, NULL);
42    elm_menu_item_add(menu, menu_it, "media-playback-start", "menu 3", NULL,
43                      NULL);
44    elm_menu_item_separator_add(menu, menu_it);
45    menu_it2 = elm_menu_item_add(menu, menu_it, "media-playback-stop",
46                                 "Disabled item", NULL, NULL);
47    elm_object_item_disabled_set(menu_it2, EINA_TRUE);
48 }
49
50 static void
51 _populate_2(Elm_Object_Item *menu_it)
52 {
53    Elm_Object_Item *menu_it2, *menu_it3;
54
55    elm_menu_item_add(menu, menu_it, "system-reboot", "menu 2", NULL, NULL);
56    menu_it2 = elm_menu_item_add(menu, menu_it, "system-shutdown", "menu 3",
57                                 NULL, NULL);
58    _populate_3(menu_it2);
59
60    elm_menu_item_separator_add(menu, menu_it);
61    elm_menu_item_separator_add(menu, menu_it);
62    elm_menu_item_separator_add(menu, menu_it);
63    elm_menu_item_separator_add(menu, menu_it);
64    elm_menu_item_separator_add(menu, menu_it);
65    elm_menu_item_separator_add(menu, menu_it);
66    elm_menu_item_separator_add(menu, menu_it);
67
68    menu_it2 = elm_menu_item_add(menu, menu_it, "system-lock-screen", "menu 2",
69                                 NULL, NULL);
70    elm_menu_item_separator_add(menu, menu_it);
71
72    menu_it3 = elm_menu_item_add(menu, menu_it, "system-run", "Disabled item",
73                                 NULL, NULL);
74    elm_object_item_disabled_set(menu_it3, EINA_TRUE);
75
76    _populate_4(menu_it2);
77 }
78
79 static void
80 _populate_1(Evas_Object *obj, Elm_Object_Item *menu_it)
81 {
82    Elm_Object_Item *menu_it2, *menu_it3;
83    Evas_Object *radio;
84
85    radio = elm_radio_add(obj);
86    elm_radio_state_value_set(radio, 0);
87    elm_radio_value_set(radio, 0);
88    elm_object_text_set(radio, "radio in menu");
89    menu_it2 = elm_menu_item_add(menu, menu_it, "object-rotate-left", "menu 1",
90                                 NULL, NULL);
91    menu_it3 = elm_menu_item_add(menu, menu_it, NULL, NULL, NULL, NULL);
92    elm_object_item_content_set(menu_it3, radio);
93
94    _populate_2(menu_it2);
95 }
96
97 void
98 test_menu(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
99 {
100    Evas_Object *win, *rect;
101    Elm_Object_Item *menu_it;
102
103    win = elm_win_util_standard_add("menu", "Menu");
104    elm_win_autodel_set(win, EINA_TRUE);
105
106    rect = evas_object_rectangle_add(evas_object_evas_get(win));
107    elm_win_resize_object_add(win, rect);
108    evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
109    evas_object_color_set(rect, 0, 0, 0, 0);
110    evas_object_show(rect);
111
112    menu = elm_menu_add(win);
113    elm_menu_item_add(menu, NULL, NULL, "first item", NULL, NULL);
114
115    menu_it = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item",
116                                NULL, NULL);
117    _populate_1(win, menu_it);
118
119    elm_menu_item_add(menu, menu_it, "window-new", "sub menu", NULL, NULL);
120
121    evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _show, menu);
122
123    evas_object_resize(win, 350, 200);
124    evas_object_show(win);
125 }
126
127 #endif