efl
272 строки · 10.6 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4#include <Elementary.h>5
6static void7_bt_repeated(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)8{
9static int count;10char buf[16];11
12snprintf(buf, sizeof(buf), "count=%d", count++);13if (count >= 10000)14count = 0;15elm_object_text_set(obj, buf);16}
17
18static void19_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)20{
21int param = (int)(uintptr_t)(data);22
23printf("clicked event on Button:%d\n", param);24}
25
26#define NUM_LABEL 427const char *btn_label[NUM_LABEL] =28{
29"Label Only", "Label Only Test", "Label Only Test 2", "Short"30};31
32static void33_bt_clicked_label_change_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)34{
35static int i = 1;36elm_object_text_set(obj, btn_label[i]);37i++;38if (i >= NUM_LABEL) i = 0;39}
40
41static void42_bt_unpressed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)43{
44int param = (int)(uintptr_t)(data);45
46printf("unpressed event on Button:%d\n", param);47}
48
49void
50test_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)51{
52Evas_Object *win, *scr, *bx, *ic, *bt;53char buf[PATH_MAX];54
55win = elm_win_util_standard_add("buttons", "Buttons");56elm_win_autodel_set(win, EINA_TRUE);57
58scr = elm_scroller_add(win);59elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE);60elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);61evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);62elm_win_resize_object_add(win, scr);63evas_object_show(scr);64
65bx = elm_box_add(win);66evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);67elm_object_content_set(scr, bx);68evas_object_show(bx);69
70ic = elm_icon_add(win);71snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());72elm_image_file_set(ic, buf, NULL);73evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);74bt = elm_button_add(win);75elm_object_text_set(bt, "Icon sized to button");76elm_object_part_content_set(bt, "icon", ic);77evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)1);78evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)1);79elm_box_pack_end(bx, bt);80evas_object_show(bt);81
82ic = elm_icon_add(bx);83snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());84elm_image_file_set(ic, buf, NULL);85elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);86bt = elm_button_add(win);87elm_object_text_set(bt, "Icon no scale");88elm_object_part_content_set(bt, "icon", ic);89evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)2);90evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)2);91elm_box_pack_end(bx, bt);92evas_object_show(bt);93
94ic = elm_icon_add(win);95snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());96elm_image_file_set(ic, buf, NULL);97evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);98bt = elm_button_add(win);99elm_object_text_set(bt, "Disabled Button");100elm_object_part_content_set(bt, "icon", ic);101elm_object_disabled_set(bt, EINA_TRUE);102evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)3);103evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)3);104elm_box_pack_end(bx, bt);105evas_object_show(bt);106
107ic = elm_icon_add(win);108snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());109elm_image_file_set(ic, buf, NULL);110evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);111bt = elm_button_add(win);112elm_object_part_content_set(bt, "icon", ic);113elm_object_disabled_set(bt, EINA_TRUE);114evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)4);115evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)4);116elm_box_pack_end(bx, bt);117evas_object_show(bt);118
119bt = elm_button_add(win);120elm_object_text_set(bt, "Label Only");121evas_object_smart_callback_add(bt, "clicked",122_bt_clicked_label_change_cb, NULL);123evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)5);124elm_box_pack_end(bx, bt);125evas_object_smart_callback_add(bt, "repeated", _bt_repeated, NULL);126elm_button_autorepeat_set(bt, EINA_TRUE);127elm_button_autorepeat_initial_timeout_set(bt, 2.0);128elm_button_autorepeat_gap_timeout_set(bt, 0.5);129evas_object_show(bt);130
131ic = elm_icon_add(win);132snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());133elm_image_file_set(ic, buf, NULL);134elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);135bt = elm_button_add(win);136elm_object_part_content_set(bt, "icon", ic);137evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)6);138evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)6);139elm_box_pack_end(bx, bt);140evas_object_show(bt);141
142bt = elm_button_add(win);143elm_object_style_set(bt, "anchor");144elm_object_text_set(bt, "Anchor style");145evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)7);146evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)7);147elm_box_pack_end(bx, bt);148evas_object_show(bt);149
150bt = elm_button_add(win);151elm_object_style_set(bt, "overlay");152elm_object_text_set(bt, "Overlay style");153evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)77);154evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)77);155elm_box_pack_end(bx, bt);156evas_object_show(bt);157
158ic = elm_icon_add(win);159snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());160elm_image_file_set(ic, buf, NULL);161elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);162bt = elm_button_add(win);163elm_object_style_set(bt, "overlay");164elm_object_part_content_set(bt, "icon", ic);165elm_object_text_set(bt, "Overlay style");166evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)77);167evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)77);168elm_box_pack_end(bx, bt);169evas_object_show(bt);170
171ic = elm_icon_add(win);172snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());173elm_image_file_set(ic, buf, NULL);174elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);175bt = elm_button_add(win);176elm_object_style_set(bt, "overlay");177elm_object_part_content_set(bt, "icon", ic);178evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)77);179evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)77);180elm_box_pack_end(bx, bt);181evas_object_show(bt);182
183bt = elm_button_add(win);184elm_object_style_set(bt, "blank");185elm_object_text_set(bt, "Blank style");186evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)88);187evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)88);188elm_box_pack_end(bx, bt);189evas_object_show(bt);190
191ic = elm_icon_add(win);192snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());193elm_image_file_set(ic, buf, NULL);194elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);195bt = elm_button_add(win);196elm_object_style_set(bt, "blank");197elm_object_part_content_set(bt, "icon", ic);198elm_object_text_set(bt, "Blank style");199evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)88);200evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)88);201elm_box_pack_end(bx, bt);202evas_object_show(bt);203
204ic = elm_icon_add(win);205snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());206elm_image_file_set(ic, buf, NULL);207elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);208bt = elm_button_add(win);209elm_object_style_set(bt, "blank");210elm_object_part_content_set(bt, "icon", ic);211evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)88);212evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)88);213elm_box_pack_end(bx, bt);214evas_object_show(bt);215
216ic = elm_icon_add(win);217snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());218elm_image_file_set(ic, buf, NULL);219evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);220bt = elm_button_add(win);221elm_object_style_set(bt, "anchor");222elm_object_text_set(bt, "Icon sized to button");223elm_object_part_content_set(bt, "icon", ic);224evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)8);225evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)8);226elm_box_pack_end(bx, bt);227evas_object_show(bt);228
229ic = elm_icon_add(bx);230snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());231elm_image_file_set(ic, buf, NULL);232elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);233bt = elm_button_add(win);234elm_object_style_set(bt, "anchor");235elm_object_text_set(bt, "Icon no scale");236elm_object_part_content_set(bt, "icon", ic);237evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)9);238evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)9);239elm_box_pack_end(bx, bt);240evas_object_show(bt);241
242ic = elm_icon_add(win);243snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());244elm_image_file_set(ic, buf, NULL);245evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);246bt = elm_button_add(win);247elm_object_style_set(bt, "anchor");248elm_object_part_content_set(bt, "icon", ic);249evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)10);250evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)10);251elm_box_pack_end(bx, bt);252evas_object_show(bt);253
254ic = elm_icon_add(win);255snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());256elm_image_file_set(ic, buf, NULL);257evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);258bt = elm_button_add(win);259elm_object_access_info_set(bt, "This is some custom text describing this widget");260elm_object_style_set(bt, "anchor");261elm_object_text_set(bt, "Disabled");262elm_object_part_content_set(bt, "icon", ic);263elm_object_disabled_set(bt, EINA_TRUE);264evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)11);265evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)11);266elm_box_pack_end(bx, bt);267evas_object_show(bt);268
269evas_object_resize(win, 320 * elm_config_scale_get(),270480 * elm_config_scale_get());271evas_object_show(win);272}
273