efl
619 строк · 19.1 Кб
1#include "test.h"
2#ifdef HAVE_CONFIG_H
3# include "elementary_config.h"
4#endif
5
6#define EFL_PACK_LAYOUT_PROTECTED
7#include <Efl_Ui.h>
8#include <Elementary.h>
9#include <assert.h>
10
11#define CNT 10
12static Evas_Object *objects[CNT] = {};
13
14typedef enum {
15NONE,
16NONE_BUT_FILL,
17EQUAL,
18ONE,
19TWO
20} Weight_Mode;
21
22static void
23weights_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
24{
25Weight_Mode mode = elm_radio_state_value_get(obj);
26
27switch (mode)
28{
29case NONE:
30efl_gfx_hint_align_set(data, 0.5, 0.5);
31for (int i = 0; i < CNT; i++)
32efl_gfx_hint_weight_set(objects[i], 0, 0);
33break;
34case NONE_BUT_FILL:
35efl_gfx_hint_align_set(data, -1, -1);
36for (int i = 0; i < CNT; i++)
37efl_gfx_hint_weight_set(objects[i], 0, 0);
38break;
39case EQUAL:
40efl_gfx_hint_align_set(data, 0.5, 0.5);
41for (int i = 0; i < CNT; i++)
42efl_gfx_hint_weight_set(objects[i], 1, 1);
43break;
44case ONE:
45efl_gfx_hint_align_set(data, 0.5, 0.5);
46for (int i = 0; i < 6; i++)
47efl_gfx_hint_weight_set(objects[i], 0, 0);
48efl_gfx_hint_weight_set(objects[6], 1, 1);
49for (int i = 7; i < CNT; i++)
50efl_gfx_hint_weight_set(objects[i], 0, 0);
51break;
52case TWO:
53efl_gfx_hint_align_set(data, 0.5, 0.5);
54for (int i = 0; i < 5; i++)
55efl_gfx_hint_weight_set(objects[i], 0, 0);
56efl_gfx_hint_weight_set(objects[5], 1, 1);
57efl_gfx_hint_weight_set(objects[6], 1, 1);
58for (int i = 7; i < CNT; i++)
59efl_gfx_hint_weight_set(objects[i], 0, 0);
60break;
61}
62}
63
64static void
65user_min_slider_cb(void *data EINA_UNUSED, const Efl_Event *event)
66{
67int val = elm_slider_value_get(event->object);
68
69efl_gfx_hint_size_min_set(objects[3], EINA_SIZE2D(val, val));
70}
71
72static void
73padding_slider_cb(void *data, const Efl_Event *event)
74{
75unsigned int val = lround(elm_slider_value_get(event->object));
76Eo *win = data, *box;
77
78box = efl_key_wref_get(win, "box");
79efl_gfx_arrangement_content_padding_set(box, val, val);
80}
81
82static void
83margin_slider_cb(void *data, const Efl_Event *event)
84{
85int val = elm_slider_value_get(event->object);
86Eo *win = data, *box;
87
88box = efl_key_wref_get(win, "box");
89efl_gfx_hint_margin_set(box, val, val, val, val);
90}
91
92static void
93alignh_slider_cb(void *data, const Efl_Event *event)
94{
95double av, val;
96Eo *win = data, *box;
97
98box = efl_key_wref_get(win, "box");
99val = elm_slider_value_get(event->object);
100efl_gfx_arrangement_content_align_get(box, NULL, &av);
101efl_gfx_arrangement_content_align_set(box, val, av);
102}
103
104static void
105alignv_slider_cb(void *data, const Efl_Event *event)
106{
107double ah, val;
108Eo *win = data, *box;
109
110box = efl_key_wref_get(win, "box");
111val = elm_slider_value_get(event->object);
112efl_gfx_arrangement_content_align_get(box, &ah, NULL);
113efl_gfx_arrangement_content_align_set(box, ah, val);
114}
115
116static void
117alignh_btn_slider_cb(void *data, const Efl_Event *event)
118{
119double av, val;
120Eo *win = data, *btn;
121
122btn = efl_key_wref_get(win, "button");
123val = elm_slider_value_get(event->object);
124efl_gfx_hint_align_get(btn, NULL, &av);
125efl_gfx_hint_align_set(btn, val, av);
126}
127
128static void
129alignv_btn_slider_cb(void *data, const Efl_Event *event)
130{
131double ah, val;
132Eo *win = data, *btn;
133
134btn = efl_key_wref_get(win, "button");
135val = elm_slider_value_get(event->object);
136efl_gfx_hint_align_get(btn, &ah, NULL);
137efl_gfx_hint_align_set(btn, ah, val);
138}
139
140static void
141flow_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
142{
143Eina_Bool chk = elm_check_selected_get(obj);
144Eina_List *list = NULL;
145Eina_Iterator *it;
146Eo *box, *win, *sobj, *parent;
147
148// Unpack all children from the box, delete it and repack into the new box
149
150win = data;
151box = efl_key_wref_get(win, "box");
152parent = efl_parent_get(box);
153it = efl_content_iterate(box);
154EINA_ITERATOR_FOREACH(it, sobj)
155list = eina_list_append(list, sobj);
156eina_iterator_free(it);
157efl_pack_unpack_all(box);
158efl_del(box);
159
160box = efl_add(chk ? EFL_UI_BOX_FLOW_CLASS : EFL_UI_BOX_CLASS, win,
161efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
162efl_content_set(parent, box);
163efl_key_wref_set(win, "box", box);
164
165EINA_LIST_FREE(list, sobj)
166efl_pack(box, sobj);
167}
168
169static void
170horiz_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
171{
172Eina_Bool chk = elm_check_selected_get(obj);
173Eo *box = efl_key_wref_get(data, "box");
174efl_ui_layout_orientation_set(box, chk ? EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL : EFL_UI_LAYOUT_ORIENTATION_VERTICAL);
175}
176
177static void
178homo_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
179{
180Eina_Bool chk = elm_check_selected_get(obj);
181Eo *box = efl_key_wref_get(data, "box");
182efl_ui_box_homogeneous_set(box, chk);
183}
184
185static void
186_custom_layout_update(Eo *pack, const void *data EINA_UNUSED)
187{
188Eina_Iterator *it = efl_content_iterate(pack);
189int count = efl_content_count(pack), i = 0;
190Eina_Rect rp;
191Eo *sobj;
192
193// Note: This is a TERRIBLE layout. Just an example of the API, not showing
194// how to write a proper layout function.
195
196if (!count) return;
197
198rp = efl_gfx_entity_geometry_get(pack);
199EINA_ITERATOR_FOREACH(it, sobj)
200{
201Eina_Rect r;
202
203r.x = (rp.w / count) * i;
204r.y = (rp.h / count) * i;
205r.size = efl_gfx_hint_size_combined_min_get(sobj);
206efl_gfx_entity_geometry_set(sobj, r);
207i++;
208}
209eina_iterator_free(it);
210}
211
212static void
213custom_check_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
214{
215EFL_OPS_DEFINE(custom_layout_ops,
216EFL_OBJECT_OP_FUNC(efl_pack_layout_update, _custom_layout_update));
217
218Eina_Bool chk = elm_check_selected_get(obj);
219Eo *box, *win = data;
220
221box = efl_key_wref_get(win, "box");
222
223// Overriding just the one function we need
224efl_object_override(box, chk ? &custom_layout_ops : NULL);
225
226// Layout request is required as the pack object doesn't know the layout
227// function was just overridden.
228efl_pack_layout_request(box);
229}
230
231void
232test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
233{
234Evas_Object *win, *bx, *o, *vbox, *f, *hbox, *chk;
235int i = 0;
236
237win = elm_win_util_standard_add("ui-box", "Efl.Ui.Box");
238elm_win_autodel_set(win, EINA_TRUE);
239efl_gfx_entity_size_set(win, EINA_SIZE2D(600, 400));
240
241vbox = efl_add(EFL_UI_BOX_CLASS, win,
242efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
243efl_gfx_arrangement_content_padding_set(vbox, 10, 10);
244efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5);
245elm_win_resize_object_add(win, vbox);
246
247
248/* controls */
249f = elm_frame_add(win);
250elm_object_text_set(f, "Controls");
251efl_gfx_hint_align_set(f, -1, -1);
252efl_gfx_hint_weight_set(f, 1, 0);
253efl_pack(vbox, f);
254efl_gfx_entity_visible_set(f, 1);
255
256hbox = efl_add(EFL_UI_BOX_CLASS, win,
257efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
258efl_content_set(f, hbox);
259efl_gfx_arrangement_content_padding_set(hbox, 10, 0);
260
261
262/* weights radio group */
263bx = efl_add(EFL_UI_BOX_CLASS, win,
264efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
265efl_gfx_hint_align_set(bx, 0, 0.5);
266efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
267efl_pack(hbox, bx);
268
269chk = o = elm_radio_add(win);
270elm_object_text_set(o, "No weight");
271evas_object_smart_callback_add(o, "changed", weights_cb, win);
272efl_gfx_hint_align_set(o, 0, 0.5);
273elm_radio_state_value_set(o, NONE);
274efl_pack(bx, o);
275efl_gfx_entity_visible_set(o, 1);
276
277o = elm_radio_add(win);
278elm_object_text_set(o, "No weight + box fill");
279evas_object_smart_callback_add(o, "changed", weights_cb, win);
280efl_gfx_hint_align_set(o, 0, 0.5);
281elm_radio_state_value_set(o, NONE_BUT_FILL);
282elm_radio_group_add(o, chk);
283efl_pack(bx, o);
284efl_gfx_entity_visible_set(o, 1);
285
286o = elm_radio_add(win);
287elm_object_text_set(o, "Equal weights");
288evas_object_smart_callback_add(o, "changed", weights_cb, win);
289efl_gfx_hint_align_set(o, 0, 0.5);
290elm_radio_state_value_set(o, EQUAL);
291elm_radio_group_add(o, chk);
292efl_pack(bx, o);
293efl_gfx_entity_visible_set(o, 1);
294
295o = elm_radio_add(win);
296elm_object_text_set(o, "One weight only");
297evas_object_smart_callback_add(o, "changed", weights_cb, win);
298efl_gfx_hint_align_set(o, 0, 0.5);
299elm_radio_state_value_set(o, ONE);
300elm_radio_group_add(o, chk);
301efl_pack(bx, o);
302efl_gfx_entity_visible_set(o, 1);
303
304o = elm_radio_add(win);
305elm_object_text_set(o, "Two weights");
306evas_object_smart_callback_add(o, "changed", weights_cb, win);
307efl_gfx_hint_align_set(o, 0, 0.5);
308elm_radio_state_value_set(o, TWO);
309elm_radio_group_add(o, chk);
310efl_pack(bx, o);
311efl_gfx_entity_visible_set(o, 1);
312
313elm_radio_value_set(chk, NONE);
314
315
316/* misc */
317bx = efl_add(EFL_UI_BOX_CLASS, win,
318efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
319efl_gfx_hint_align_set(bx, 0, 0.5);
320efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
321efl_gfx_hint_weight_set(bx, 0, 1);
322efl_pack(hbox, bx);
323
324o = elm_label_add(win);
325elm_object_text_set(o, "Misc");
326efl_pack(bx, o);
327efl_gfx_entity_visible_set(o, 1);
328
329o = elm_check_add(win);
330elm_check_selected_set(o, 0);
331elm_object_text_set(o, "Flow");
332evas_object_smart_callback_add(o, "changed", flow_check_cb, win);
333efl_gfx_hint_align_set(o, 0, 0);
334efl_pack(bx, o);
335efl_gfx_entity_visible_set(o, 1);
336
337o = elm_check_add(win);
338elm_check_selected_set(o, 1);
339elm_object_text_set(o, "Horizontal");
340evas_object_smart_callback_add(o, "changed", horiz_check_cb, win);
341efl_gfx_hint_align_set(o, 0, 0);
342efl_pack(bx, o);
343efl_gfx_entity_visible_set(o, 1);
344
345o = elm_check_add(win);
346elm_check_selected_set(o, 0);
347elm_object_text_set(o, "Homogenous");
348evas_object_smart_callback_add(o, "changed", homo_check_cb, win);
349efl_gfx_hint_align_set(o, 0, 0);
350efl_pack(bx, o);
351efl_gfx_entity_visible_set(o, 1);
352
353o = elm_check_add(win);
354elm_check_selected_set(o, 0);
355elm_object_text_set(o, "Custom layout");
356evas_object_smart_callback_add(o, "changed", custom_check_cb, win);
357efl_gfx_hint_align_set(o, 0, 0);
358efl_gfx_hint_weight_set(o, 0, 1);
359efl_pack(bx, o);
360efl_gfx_entity_visible_set(o, 1);
361
362
363/* user min size setter */
364bx = efl_add(EFL_UI_BOX_CLASS, win,
365efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
366efl_gfx_hint_align_set(bx, 0, 0.5);
367efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
368efl_gfx_hint_weight_set(bx, 0, 1);
369efl_pack(hbox, bx);
370
371o = elm_label_add(win);
372elm_object_text_set(o, "User min size");
373efl_pack(bx, o);
374efl_gfx_entity_visible_set(o, 1);
375
376o = elm_slider_add(win);
377elm_slider_indicator_format_set(o, "%.0fpx");
378elm_slider_indicator_show_set(o, 1);
379elm_slider_horizontal_set(o, 0);
380efl_gfx_hint_align_set(o, 0.5, -1);
381efl_gfx_hint_weight_set(o, 1, 1);
382efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, user_min_slider_cb, NULL);
383elm_slider_min_max_set(o, 0, 250);
384elm_slider_inverted_set(o, 1);
385elm_slider_value_set(o, 0);
386efl_pack(bx, o);
387efl_gfx_entity_visible_set(o, 1);
388
389
390/* inner box padding */
391bx = efl_add(EFL_UI_BOX_CLASS, win,
392efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
393efl_gfx_hint_align_set(bx, 0, 0.5);
394efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
395efl_gfx_hint_weight_set(bx, 0, 1);
396efl_pack(hbox, bx);
397
398o = elm_label_add(win);
399elm_object_text_set(o, "Padding");
400efl_pack(bx, o);
401efl_gfx_entity_visible_set(o, 1);
402
403o = elm_slider_add(win);
404elm_slider_indicator_format_set(o, "%.0fpx");
405elm_slider_indicator_show_set(o, 1);
406elm_slider_horizontal_set(o, 0);
407efl_gfx_hint_align_set(o, 0.5, -1);
408efl_gfx_hint_weight_set(o, 1, 1);
409efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, padding_slider_cb, win);
410elm_slider_min_max_set(o, 0, 40);
411elm_slider_inverted_set(o, 1);
412elm_slider_value_set(o, 10);
413efl_pack(bx, o);
414efl_gfx_entity_visible_set(o, 1);
415
416
417/* outer margin */
418bx = efl_add(EFL_UI_BOX_CLASS, win,
419efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
420efl_gfx_hint_align_set(bx, 0, 0.5);
421efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
422efl_gfx_hint_weight_set(bx, 0, 1);
423efl_pack(hbox, bx);
424
425o = elm_label_add(win);
426elm_object_text_set(o, "Margin");
427efl_pack(bx, o);
428efl_gfx_entity_visible_set(o, 1);
429
430o = elm_slider_add(win);
431elm_slider_indicator_format_set(o, "%.0fpx");
432elm_slider_indicator_show_set(o, 1);
433elm_slider_horizontal_set(o, 0);
434efl_gfx_hint_align_set(o, 0.5, -1);
435efl_gfx_hint_weight_set(o, 1, 1);
436efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, margin_slider_cb, win);
437elm_slider_min_max_set(o, 0, 40);
438elm_slider_inverted_set(o, 1);
439elm_slider_value_set(o, 10);
440efl_pack(bx, o);
441efl_gfx_entity_visible_set(o, 1);
442
443
444/* Box align */
445bx = efl_add(EFL_UI_BOX_CLASS, win,
446efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
447efl_gfx_hint_align_set(bx, 0, 0.5);
448efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
449efl_gfx_hint_weight_set(bx, 1, 1);
450efl_pack(hbox, bx);
451
452o = elm_label_add(win);
453elm_object_text_set(o, "Box align");
454efl_pack(bx, o);
455efl_gfx_entity_visible_set(o, 1);
456
457o = elm_slider_add(win);
458elm_slider_indicator_format_set(o, "%.1f");
459elm_slider_indicator_show_set(o, 1);
460elm_slider_horizontal_set(o, 0);
461efl_gfx_hint_align_set(o, 0.5, -1);
462efl_gfx_hint_weight_set(o, 1, 1);
463efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, alignv_slider_cb, win);
464elm_slider_min_max_set(o, -0.1, 1.0);
465elm_slider_step_set(o, 0.1);
466elm_slider_value_set(o, 0.5);
467efl_pack(bx, o);
468efl_gfx_entity_visible_set(o, 1);
469
470o = elm_slider_add(win);
471elm_slider_indicator_format_set(o, "%.1f");
472elm_slider_indicator_show_set(o, 1);
473elm_slider_horizontal_set(o, 1);
474efl_gfx_hint_align_set(o, 0.5, -1);
475efl_gfx_hint_weight_set(o, 1, 0);
476efl_gfx_hint_size_min_set(o, EINA_SIZE2D(100, 0));
477efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, alignh_slider_cb, win);
478elm_slider_min_max_set(o, -0.1, 1.0);
479elm_slider_step_set(o, 0.1);
480elm_slider_value_set(o, 0.5);
481efl_pack(bx, o);
482efl_gfx_entity_visible_set(o, 1);
483
484/* Button align */
485bx = efl_add(EFL_UI_BOX_CLASS, win,
486efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
487efl_gfx_hint_align_set(bx, 0, 0.5);
488efl_gfx_hint_fill_set(bx, EINA_FALSE, EINA_TRUE);
489efl_gfx_hint_weight_set(bx, 1, 1);
490efl_pack(hbox, bx);
491
492o = elm_label_add(win);
493elm_object_text_set(o, "Button align");
494efl_pack(bx, o);
495efl_gfx_entity_visible_set(o, 1);
496
497o = elm_slider_add(win);
498elm_slider_indicator_format_set(o, "%.1f");
499elm_slider_indicator_show_set(o, 1);
500elm_slider_horizontal_set(o, 0);
501efl_gfx_hint_align_set(o, 0.5, -1);
502efl_gfx_hint_weight_set(o, 1, 1);
503efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, alignv_btn_slider_cb, win);
504elm_slider_min_max_set(o, 0.0, 1.0);
505elm_slider_step_set(o, 0.1);
506elm_slider_value_set(o, 0.5);
507efl_pack(bx, o);
508efl_gfx_entity_visible_set(o, 1);
509
510o = elm_slider_add(win);
511elm_slider_indicator_format_set(o, "%.1f");
512elm_slider_indicator_show_set(o, 1);
513elm_slider_horizontal_set(o, 1);
514efl_gfx_hint_align_set(o, 0.5, -1);
515efl_gfx_hint_weight_set(o, 1, 0);
516efl_gfx_hint_size_min_set(o, EINA_SIZE2D(100, 0));
517efl_event_callback_add(o, EFL_UI_RANGE_EVENT_CHANGED, alignh_btn_slider_cb, win);
518elm_slider_min_max_set(o, -0.1, 1.0);
519elm_slider_step_set(o, 0.1);
520elm_slider_value_set(o, 0.5);
521efl_pack(bx, o);
522efl_gfx_entity_visible_set(o, 1);
523
524
525/* contents */
526f = elm_frame_add(win);
527elm_object_text_set(f, "Contents");
528efl_gfx_hint_align_set(f, -1, -1);
529efl_gfx_hint_weight_set(f, 1, 1);
530efl_pack(vbox, f);
531efl_gfx_entity_visible_set(f, 1);
532
533bx = efl_add(EFL_UI_BOX_CLASS, win,
534efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
535efl_key_wref_set(win, "box", bx);
536efl_gfx_arrangement_content_padding_set(bx, 10, 10);
537efl_gfx_hint_align_set(bx, 0.5, 0.5);
538efl_gfx_hint_weight_set(bx, 1, 1);
539efl_content_set(f, bx);
540
541objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
542efl_text_set(o, "Btn1");
543efl_gfx_hint_weight_set(o, 0, 0);
544efl_gfx_hint_align_set(o, 0.5, 0.5);
545efl_gfx_hint_fill_set(o, EINA_FALSE, EINA_FALSE);
546efl_pack(bx, o);
547efl_gfx_entity_visible_set(o, 1);
548
549objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
550efl_text_set(o, "Button 2");
551efl_gfx_hint_weight_set(o, 0, 0);
552efl_pack(bx, o);
553efl_gfx_entity_visible_set(o, 1);
554
555objects[i++] = o = elm_label_add(win);
556elm_label_line_wrap_set(o, ELM_WRAP_WORD);
557elm_object_text_set(o, "This label is not marked as fill");
558efl_gfx_hint_align_set(o, 0.5, 0.5);
559efl_pack(bx, o);
560efl_gfx_entity_visible_set(o, 1);
561
562objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
563efl_text_set(o, "Min size");
564efl_gfx_hint_weight_set(o, 0, 0);
565efl_gfx_hint_fill_set(o, EINA_FALSE, EINA_FALSE);
566efl_gfx_hint_align_set(o, 0.5, 1.0);
567efl_gfx_hint_aspect_set(o, EFL_GFX_HINT_ASPECT_BOTH, EINA_SIZE2D(1, 1));
568efl_pack(bx, o);
569efl_gfx_entity_visible_set(o, 1);
570
571objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
572efl_text_set(o, "Quit!");
573efl_gfx_hint_weight_set(o, 0, 0);
574efl_gfx_hint_fill_set(o, EINA_FALSE, EINA_FALSE);
575efl_gfx_hint_align_set(o, 0.5, 0.0);
576efl_pack(bx, o);
577efl_gfx_entity_visible_set(o, 1);
578
579objects[i++] = o = elm_label_add(win);
580elm_label_line_wrap_set(o, ELM_WRAP_WORD);
581elm_object_text_set(o, "This label on the other hand<br/>is marked as align=fill.");
582efl_gfx_hint_align_set(o, -1, -1);
583efl_pack(bx, o);
584efl_gfx_entity_visible_set(o, 1);
585
586objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
587efl_key_wref_set(win, "button", o);
588efl_text_set(o, "Button with a quite long text.");
589efl_gfx_hint_weight_set(o, 0, 0);
590efl_gfx_hint_size_max_set(o, EINA_SIZE2D(200, 100));
591efl_pack(bx, o);
592efl_gfx_entity_visible_set(o, 1);
593
594objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
595efl_text_set(o, "BtnA");
596efl_gfx_hint_weight_set(o, 0, 0);
597efl_gfx_hint_fill_set(o, EINA_FALSE, EINA_FALSE);
598efl_gfx_hint_aspect_set(o, EFL_GFX_HINT_ASPECT_BOTH, EINA_SIZE2D(1, 2));
599efl_pack(bx, o);
600efl_gfx_entity_visible_set(o, 1);
601
602objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
603efl_text_set(o, "BtnB");
604efl_gfx_hint_weight_set(o, 0, 0);
605efl_gfx_hint_fill_set(o, EINA_FALSE, EINA_FALSE);
606efl_pack(bx, o);
607efl_gfx_entity_visible_set(o, 1);
608
609objects[i++] = o = efl_add(EFL_UI_BUTTON_CLASS, bx);
610efl_text_set(o, "BtnC");
611efl_gfx_hint_weight_set(o, 0, 0);
612efl_gfx_hint_fill_set(o, EINA_FALSE, EINA_FALSE);
613efl_pack(bx, o);
614efl_gfx_entity_visible_set(o, 1);
615
616assert(i == CNT);
617
618efl_gfx_entity_visible_set(win, 1);
619}
620