efl

Форк
0
/
test_button.c 
272 строки · 10.6 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4
#include <Elementary.h>
5

6
static void
7
_bt_repeated(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
8
{
9
   static int count;
10
   char buf[16];
11

12
   snprintf(buf, sizeof(buf), "count=%d", count++);
13
   if (count >= 10000)
14
     count = 0;
15
   elm_object_text_set(obj, buf);
16
}
17

18
static void
19
_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
20
{
21
   int param = (int)(uintptr_t)(data);
22

23
   printf("clicked event on Button:%d\n", param);
24
}
25

26
#define NUM_LABEL 4
27
const char *btn_label[NUM_LABEL] =
28
{
29
   "Label Only", "Label Only Test", "Label Only Test 2", "Short"
30
};
31

32
static void
33
_bt_clicked_label_change_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
34
{
35
   static int i = 1;
36
   elm_object_text_set(obj, btn_label[i]);
37
   i++;
38
   if (i >= NUM_LABEL) i = 0;
39
}
40

41
static void
42
_bt_unpressed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
43
{
44
   int param = (int)(uintptr_t)(data);
45

46
   printf("unpressed event on Button:%d\n", param);
47
}
48

49
void
50
test_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
51
{
52
   Evas_Object *win, *scr, *bx, *ic, *bt;
53
   char buf[PATH_MAX];
54

55
   win = elm_win_util_standard_add("buttons", "Buttons");
56
   elm_win_autodel_set(win, EINA_TRUE);
57

58
   scr = elm_scroller_add(win);
59
   elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE);
60
   elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
61
   evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
62
   elm_win_resize_object_add(win, scr);
63
   evas_object_show(scr);
64

65
   bx = elm_box_add(win);
66
   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
67
   elm_object_content_set(scr, bx);
68
   evas_object_show(bx);
69

70
   ic = elm_icon_add(win);
71
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
72
   elm_image_file_set(ic, buf, NULL);
73
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
74
   bt = elm_button_add(win);
75
   elm_object_text_set(bt, "Icon sized to button");
76
   elm_object_part_content_set(bt, "icon", ic);
77
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)1);
78
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)1);
79
   elm_box_pack_end(bx, bt);
80
   evas_object_show(bt);
81

82
   ic = elm_icon_add(bx);
83
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
84
   elm_image_file_set(ic, buf, NULL);
85
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
86
   bt = elm_button_add(win);
87
   elm_object_text_set(bt, "Icon no scale");
88
   elm_object_part_content_set(bt, "icon", ic);
89
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)2);
90
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)2);
91
   elm_box_pack_end(bx, bt);
92
   evas_object_show(bt);
93

94
   ic = elm_icon_add(win);
95
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
96
   elm_image_file_set(ic, buf, NULL);
97
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
98
   bt = elm_button_add(win);
99
   elm_object_text_set(bt, "Disabled Button");
100
   elm_object_part_content_set(bt, "icon", ic);
101
   elm_object_disabled_set(bt, EINA_TRUE);
102
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)3);
103
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)3);
104
   elm_box_pack_end(bx, bt);
105
   evas_object_show(bt);
106

107
   ic = elm_icon_add(win);
108
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
109
   elm_image_file_set(ic, buf, NULL);
110
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
111
   bt = elm_button_add(win);
112
   elm_object_part_content_set(bt, "icon", ic);
113
   elm_object_disabled_set(bt, EINA_TRUE);
114
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)4);
115
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)4);
116
   elm_box_pack_end(bx, bt);
117
   evas_object_show(bt);
118

119
   bt = elm_button_add(win);
120
   elm_object_text_set(bt, "Label Only");
121
   evas_object_smart_callback_add(bt, "clicked",
122
                                  _bt_clicked_label_change_cb, NULL);
123
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)5);
124
   elm_box_pack_end(bx, bt);
125
   evas_object_smart_callback_add(bt, "repeated", _bt_repeated, NULL);
126
   elm_button_autorepeat_set(bt, EINA_TRUE);
127
   elm_button_autorepeat_initial_timeout_set(bt, 2.0);
128
   elm_button_autorepeat_gap_timeout_set(bt, 0.5);
129
   evas_object_show(bt);
130

131
   ic = elm_icon_add(win);
132
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
133
   elm_image_file_set(ic, buf, NULL);
134
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
135
   bt = elm_button_add(win);
136
   elm_object_part_content_set(bt, "icon", ic);
137
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)6);
138
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)6);
139
   elm_box_pack_end(bx, bt);
140
   evas_object_show(bt);
141

142
   bt = elm_button_add(win);
143
   elm_object_style_set(bt, "anchor");
144
   elm_object_text_set(bt, "Anchor style");
145
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)7);
146
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)7);
147
   elm_box_pack_end(bx, bt);
148
   evas_object_show(bt);
149

150
   bt = elm_button_add(win);
151
   elm_object_style_set(bt, "overlay");
152
   elm_object_text_set(bt, "Overlay style");
153
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)77);
154
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)77);
155
   elm_box_pack_end(bx, bt);
156
   evas_object_show(bt);
157

158
   ic = elm_icon_add(win);
159
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
160
   elm_image_file_set(ic, buf, NULL);
161
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
162
   bt = elm_button_add(win);
163
   elm_object_style_set(bt, "overlay");
164
   elm_object_part_content_set(bt, "icon", ic);
165
   elm_object_text_set(bt, "Overlay style");
166
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)77);
167
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)77);
168
   elm_box_pack_end(bx, bt);
169
   evas_object_show(bt);
170

171
   ic = elm_icon_add(win);
172
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
173
   elm_image_file_set(ic, buf, NULL);
174
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
175
   bt = elm_button_add(win);
176
   elm_object_style_set(bt, "overlay");
177
   elm_object_part_content_set(bt, "icon", ic);
178
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)77);
179
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)77);
180
   elm_box_pack_end(bx, bt);
181
   evas_object_show(bt);
182

183
   bt = elm_button_add(win);
184
   elm_object_style_set(bt, "blank");
185
   elm_object_text_set(bt, "Blank style");
186
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)88);
187
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)88);
188
   elm_box_pack_end(bx, bt);
189
   evas_object_show(bt);
190

191
   ic = elm_icon_add(win);
192
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
193
   elm_image_file_set(ic, buf, NULL);
194
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
195
   bt = elm_button_add(win);
196
   elm_object_style_set(bt, "blank");
197
   elm_object_part_content_set(bt, "icon", ic);
198
   elm_object_text_set(bt, "Blank style");
199
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)88);
200
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)88);
201
   elm_box_pack_end(bx, bt);
202
   evas_object_show(bt);
203

204
   ic = elm_icon_add(win);
205
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
206
   elm_image_file_set(ic, buf, NULL);
207
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
208
   bt = elm_button_add(win);
209
   elm_object_style_set(bt, "blank");
210
   elm_object_part_content_set(bt, "icon", ic);
211
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)88);
212
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)88);
213
   elm_box_pack_end(bx, bt);
214
   evas_object_show(bt);
215

216
   ic = elm_icon_add(win);
217
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
218
   elm_image_file_set(ic, buf, NULL);
219
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
220
   bt = elm_button_add(win);
221
   elm_object_style_set(bt, "anchor");
222
   elm_object_text_set(bt, "Icon sized to button");
223
   elm_object_part_content_set(bt, "icon", ic);
224
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)8);
225
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)8);
226
   elm_box_pack_end(bx, bt);
227
   evas_object_show(bt);
228

229
   ic = elm_icon_add(bx);
230
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
231
   elm_image_file_set(ic, buf, NULL);
232
   elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
233
   bt = elm_button_add(win);
234
   elm_object_style_set(bt, "anchor");
235
   elm_object_text_set(bt, "Icon no scale");
236
   elm_object_part_content_set(bt, "icon", ic);
237
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)9);
238
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)9);
239
   elm_box_pack_end(bx, bt);
240
   evas_object_show(bt);
241

242
   ic = elm_icon_add(win);
243
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
244
   elm_image_file_set(ic, buf, NULL);
245
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
246
   bt = elm_button_add(win);
247
   elm_object_style_set(bt, "anchor");
248
   elm_object_part_content_set(bt, "icon", ic);
249
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)10);
250
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)10);
251
   elm_box_pack_end(bx, bt);
252
   evas_object_show(bt);
253

254
   ic = elm_icon_add(win);
255
   snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
256
   elm_image_file_set(ic, buf, NULL);
257
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
258
   bt = elm_button_add(win);
259
   elm_object_access_info_set(bt, "This is some custom text describing this widget");
260
   elm_object_style_set(bt, "anchor");
261
   elm_object_text_set(bt, "Disabled");
262
   elm_object_part_content_set(bt, "icon", ic);
263
   elm_object_disabled_set(bt, EINA_TRUE);
264
   evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)11);
265
   evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)11);
266
   elm_box_pack_end(bx, bt);
267
   evas_object_show(bt);
268

269
   evas_object_resize(win, 320 * elm_config_scale_get(),
270
                           480 * elm_config_scale_get());
271
   evas_object_show(win);
272
}
273

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.