efl

Форк
0
/
test_part_bg.c 
189 строк · 6.5 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4
#include <Efl_Ui.h>
5
#include <Elementary.h>
6

7
#define MAX_NUM_OF_CONTENT 17
8

9
const Efl_Class *content_class[MAX_NUM_OF_CONTENT];
10

11

12
static void
13
_reset_cb(void *data, const Efl_Event *ev EINA_UNUSED)
14
{
15
   Efl_Ui_Radio_Group *radio = data;
16
   Evas_Object *target;
17

18
   radio = efl_ui_selectable_last_selected_get(radio);
19
   target = evas_object_data_get(radio, "data");
20

21
   efl_gfx_color_set(efl_part(target, "background"), 0, 0, 0, 0);
22
   efl_file_simple_load(efl_part(target, "background"), NULL, NULL);
23
}
24

25
static void
26
_color_cb(void *data, const Efl_Event *ev EINA_UNUSED)
27
{
28
   Efl_Ui_Radio_Group *radio = data;
29
   Evas_Object *target;
30
   static Eina_Bool i;
31

32
   radio = efl_ui_selectable_last_selected_get(radio);
33
   target = evas_object_data_get(radio, "data");
34
   i ^= EINA_TRUE;
35
   efl_gfx_color_set(efl_part(target, "background"), (i) ? 255 : 0, (i) ? 0 : 255, 0, 255);
36
}
37

38
static void
39
_scale_type_cb(void *data, const Efl_Event *ev EINA_UNUSED)
40
{
41
   Efl_Ui_Radio_Group *radio = data;
42
   Evas_Object *target;
43
   Efl_Gfx_Image_Scale_Method type;
44
   char buf[PATH_MAX];
45

46
   radio = efl_ui_selectable_last_selected_get(radio);
47
   target = evas_object_data_get(radio, "data");
48

49
   snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
50
   efl_file_simple_load(efl_part(target, "background"), buf, NULL);
51
   type = efl_gfx_image_scale_method_get(efl_part(target, "background"));
52
   type = (type + 1) % 6;
53
   efl_gfx_image_scale_method_set(efl_part(target, "background"), type);
54
}
55

56
static Efl_Ui_Radio_Group *
57
_create_box_contents(Evas_Object *box)
58
{
59
   Evas_Object *hbox;
60
   Evas_Object *radio;
61
   Evas_Object *content;
62
   Efl_Ui_Radio_Group *radio_group;
63
   char buf[PATH_MAX];
64
   unsigned int i;
65

66
   radio_group = efl_new(EFL_UI_RADIO_GROUP_IMPL_CLASS, NULL);
67

68
   hbox = efl_add(EFL_UI_BOX_CLASS, box,
69
                  efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
70
                  efl_gfx_hint_weight_set(efl_added, 1, 1),
71
                  efl_pack_end(box, efl_added));
72

73
   radio = efl_add(EFL_UI_RADIO_CLASS, hbox);
74
   efl_gfx_hint_weight_set(radio, 0, 0);
75
   efl_ui_radio_state_value_set(radio, 0);
76
   efl_ui_radio_group_register(radio_group, radio);
77
   efl_pack_end(hbox, radio);
78

79
   content = efl_add(EFL_UI_BOX_CLASS, hbox,
80
                     efl_pack_end(hbox, efl_added));
81
   evas_object_data_set(radio, "data", content);
82

83
   content = efl_add(EFL_UI_TEXTBOX_CLASS, content,
84
                     efl_text_set(efl_added, "box"),
85
                     efl_text_interactive_editable_set(efl_added, EINA_FALSE),
86
                     efl_pack_end(content, efl_added));
87

88
   for (i = 0; i < MAX_NUM_OF_CONTENT; i++)
89
     {
90
        if (!content_class[i]) continue;
91

92
        hbox = efl_add(EFL_UI_BOX_CLASS, box,
93
                       efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
94
                       efl_pack_end(box, efl_added));
95

96
        radio = efl_add(EFL_UI_RADIO_CLASS, hbox);
97
        efl_ui_radio_state_value_set(radio, i + 1);
98
        efl_gfx_hint_weight_set(radio, 0, 0);
99
        efl_ui_radio_group_register(radio_group, radio);
100
        efl_pack_end(hbox, radio);
101

102
        content = efl_add(content_class[i], hbox,
103
                          efl_pack_end(hbox, efl_added));
104

105
        if (efl_isa(content, efl_text_interface_get()))
106
          efl_text_set(content, "text");
107

108
        if (efl_isa(content, EFL_UI_IMAGE_CLASS))
109
          {
110
             snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
111
             efl_file_simple_load(content, buf, NULL);
112
          }
113

114
        evas_object_data_set(radio, "data", content);
115
     }
116

117
   efl_ui_radio_group_selected_value_set(radio_group, 0);
118

119
   return radio_group;
120
}
121

122
void
123
test_part_background(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
124
{
125
   Evas_Object *win;
126
   Evas_Object *scr;
127
   Evas_Object *vbox, *hbox;
128
   Efl_Ui_Radio_Group *radio_group;
129
   Evas_Object *reset_btn, *color_btn, *scale_btn;
130

131
   content_class[0] = EFL_UI_CALENDAR_CLASS;
132
   content_class[1] = EFL_UI_SLIDER_CLASS;
133
   content_class[2] = EFL_UI_SLIDER_INTERVAL_CLASS;
134
   content_class[3] = EFL_UI_PROGRESSBAR_CLASS;
135
   content_class[4] = EFL_UI_CLOCK_CLASS;
136
   content_class[5] = EFL_UI_BUTTON_CLASS;
137
   content_class[6] = EFL_UI_CHECK_CLASS;
138
   content_class[7] = EFL_UI_RADIO_CLASS;
139
   content_class[8] = EFL_UI_TEXTBOX_CLASS;
140
   content_class[9] = EFL_UI_FLIP_CLASS;
141
   content_class[10] = EFL_UI_PANES_CLASS;
142
   content_class[11] = EFL_UI_VIDEO_CLASS;
143
   content_class[12] = EFL_UI_BG_CLASS;
144
   content_class[13] = EFL_UI_IMAGE_CLASS;
145
   content_class[14] = EFL_UI_IMAGE_ZOOMABLE_CLASS;
146
   content_class[15] = EFL_UI_SPIN_CLASS;
147
   content_class[16] = EFL_UI_SPIN_BUTTON_CLASS;
148

149
   win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
150
                 efl_text_set(efl_added, "Widget Part Background"),
151
                 efl_ui_win_autodel_set(efl_added, EINA_TRUE));
152

153
   vbox = efl_add(EFL_UI_BOX_CLASS, win,
154
                  efl_gfx_hint_weight_set(efl_added, 1, 1),
155
                  efl_content_set(win, efl_added));
156

157
   hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
158
                  efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
159
                  efl_gfx_hint_weight_set(efl_added, 1.0, 0.0),
160
                  efl_pack_end(vbox, efl_added));
161

162
   reset_btn = efl_add(EFL_UI_BUTTON_CLASS, hbox,
163
                       efl_pack_end(hbox, efl_added),
164
                       efl_text_set(efl_added, "reset"));
165
   color_btn = efl_add(EFL_UI_BUTTON_CLASS, hbox,
166
                       efl_pack_end(hbox, efl_added),
167
                       efl_text_set(efl_added, "color"));
168
   scale_btn = efl_add(EFL_UI_BUTTON_CLASS, hbox,
169
                       efl_pack_end(hbox, efl_added),
170
                       efl_text_set(efl_added, "scale_type"));
171

172
   scr = elm_scroller_add(vbox);
173
   evas_object_show(scr);
174
   evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
175
   evas_object_size_hint_align_set(scr, EVAS_HINT_FILL, EVAS_HINT_FILL);
176
   efl_pack_end(vbox, scr);
177

178
   vbox = efl_add(EFL_UI_BOX_CLASS, scr,
179
                  efl_gfx_hint_weight_set(efl_added, 1, 1),
180
                  efl_content_set(scr, efl_added));
181

182
   radio_group = _create_box_contents(vbox);
183

184
   efl_event_callback_add(reset_btn, EFL_INPUT_EVENT_CLICKED, _reset_cb, radio_group);
185
   efl_event_callback_add(color_btn, EFL_INPUT_EVENT_CLICKED, _color_cb, radio_group);
186
   efl_event_callback_add(scale_btn, EFL_INPUT_EVENT_CLICKED, _scale_type_cb, radio_group);
187

188
   efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 200));
189
}
190

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

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

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

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