efl
164 строки · 4.9 Кб
1#include "test.h"2#ifdef HAVE_CONFIG_H3# include "elementary_config.h"4#endif5#include <Elementary.h>6
7struct _api_data8{
9unsigned int state; /* What state we are testing */10void *inwin;11};12typedef struct _api_data api_data;13
14enum _api_state15{
16CONTENT_UNSET,17API_STATE_LAST
18};19typedef enum _api_state api_state;20
21static void22set_api_state(api_data *api)23{
24Evas_Object *t;25switch(api->state)26{27case CONTENT_UNSET:28t = elm_win_inwin_content_unset(api->inwin);29evas_object_del(t);30t = elm_label_add(elm_object_parent_widget_get(api->inwin));31elm_object_text_set(t, "Content was unset.<br>DONE!");32elm_win_inwin_content_set(api->inwin, t);33evas_object_show(t);34
35default:36return;37}38}
39
40static void41_api_bt_clicked(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)42{ /* Will add here a SWITCH command containing code to modify test-object */43/* in accordance a->state value. */44api_data *a = data;45char str[128];46
47printf("clicked event on API Button: api_state=<%d>\n", a->state);48set_api_state(a);49a->state++;50sprintf(str, "Next API function (%u)", a->state);51elm_object_text_set(obj, str);52elm_object_disabled_set(obj, a->state == API_STATE_LAST);53}
54
55static void56_cleanup_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)57{
58free(data);59}
60
61void
62test_inwin(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)63{
64Evas_Object *win, *inwin, *lb, *bxx, *bt;65api_data *api = calloc(1, sizeof(api_data));66
67win = elm_win_util_standard_add("inwin", "InWin");68elm_win_autodel_set(win, EINA_TRUE);69evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);70
71inwin = elm_win_inwin_add(win);72api->inwin = inwin;73evas_object_show(inwin);74
75bxx = elm_box_add(inwin);76evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);77evas_object_show(bxx);78
79bt = elm_button_add(inwin);80elm_object_text_set(bt, "Next API function");81evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api);82elm_box_pack_end(bxx, bt);83elm_object_disabled_set(bt, api->state == API_STATE_LAST);84evas_object_show(bt);85
86lb = elm_label_add(win);87elm_object_text_set(lb,88"This is an \"inwin\" - a window in a<br/>"89"window. This is handy for quick popups<br/>"90"you want centered, taking over the window<br/>"91"until dismissed somehow. Unlike hovers they<br/>"92"don't hover over their target.");93elm_box_pack_end(bxx, lb);94elm_win_inwin_content_set(inwin, bxx);95evas_object_show(lb);96
97evas_object_resize(win, 320 * elm_config_scale_get(),98240 * elm_config_scale_get());99evas_object_show(win);100}
101
102void
103test_inwin2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)104{
105Evas_Object *win, *inwin, *lb;106
107win = elm_win_util_standard_add("inwin2", "InWin 2");108elm_win_autodel_set(win, EINA_TRUE);109
110inwin = elm_win_inwin_add(win);111elm_object_style_set(inwin, "minimal_vertical");112evas_object_show(inwin);113
114lb = elm_label_add(win);115elm_object_text_set(lb,116"This is an \"inwin\" - a window in a<br/>"117"window. This is handy for quick popups<br/>"118"you want centered, taking over the window<br/>"119"until dismissed somehow. Unlike hovers they<br/>"120"don't hover over their target.<br/>"121"<br/>"122"This \"minimal_vertical\" inwin style compacts<br/>"123"itself vertically to the size of its contents<br/> "124"minimum size.");125elm_win_inwin_content_set(inwin, lb);126evas_object_show(lb);127
128evas_object_resize(win, 320 * elm_config_scale_get(),129240 * elm_config_scale_get());130evas_object_show(win);131}
132
133void
134test_inwin3(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)135{
136Evas_Object *win, *inwin, *lb, *box;137
138win = elm_win_util_standard_add("inwin2", "InWin 2");139elm_win_autodel_set(win, EINA_TRUE);140
141inwin = elm_win_inwin_add(win);142elm_object_style_set(inwin, "minimal_vertical");143evas_object_show(inwin);144
145box = elm_box_add(win);146elm_win_inwin_content_set(inwin, box);147evas_object_show(box);148
149lb = elm_button_add(box);150elm_object_text_set(lb,151"Test BTN 1");152elm_box_pack_end(box, lb);153evas_object_show(lb);154
155lb = elm_button_add(box);156elm_object_text_set(lb,157"Test BTN 1");158elm_box_pack_end(box, lb);159evas_object_show(lb);160
161evas_object_resize(win, 320 * elm_config_scale_get(),162240 * elm_config_scale_get());163evas_object_show(win);164}
165