[JungWooHyun] doing merge job ~
[framework/uifw/elementary.git] / src / examples / entry_example.c
1 /*
2  * gcc -o entry_example entry_example.c `pkg-config --cflags --libs elementary`
3  */
4 #include <Elementary.h>
5 #ifdef HAVE_CONFIG_H
6 # include "elementary_config.h"
7 #else
8 # define __UNUSED__ __attribute__((unused))
9 #endif
10
11 typedef struct
12 {
13    Evas_Object *win;
14    Evas_Object *edit_buffer;
15 } App_Data;
16
17 typedef struct
18 {
19    Evas_Object *inwin;
20 <<<<<<< HEAD
21    Evas_Object *pager;
22 =======
23    Evas_Object *naviframe;
24 >>>>>>> remotes/origin/upstream
25    Evas_Object *grid;
26    Evas_Object *settings;
27
28    int size;
29    int vsize;
30    int width, height;
31
32    const char *emo;
33
34    App_Data *ad;
35 } App_Inwin_Data;
36
37 static void
38 _edit_buffer_insert(Evas_Object *e, const char *text)
39 {
40    elm_entry_entry_insert(e, text);
41 <<<<<<< HEAD
42    elm_object_focus(e);
43 =======
44    elm_object_focus_set(e, EINA_TRUE);
45 >>>>>>> remotes/origin/upstream
46 }
47
48 static void
49 _it_sel_cb(void *data, Evas_Object *obj __UNUSED__, void *event)
50 {
51    App_Inwin_Data *aid = data;
52 <<<<<<< HEAD
53    Elm_Gengrid_Item *it = event;
54
55    aid->emo = elm_gengrid_item_data_get(it);
56
57    elm_pager_content_promote(aid->pager, aid->settings);
58 =======
59    Elm_Object_Item *gg_it = event;
60
61    aid->emo = elm_object_item_data_get(gg_it);
62
63    elm_naviframe_item_simple_promote(aid->naviframe, aid->settings);
64 >>>>>>> remotes/origin/upstream
65 }
66
67 static char *
68 _emo_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
69 {
70    return strdup(data);
71 }
72
73 static Evas_Object *
74 _emo_content_get(void *data, Evas_Object *obj, const char *part)
75 {
76    Evas_Object *o;
77
78    if (strcmp(part, "elm.swallow.icon"))
79      return NULL;
80    o = elm_layout_add(obj);
81    elm_layout_theme_set(o, "entry/emoticon", data, "default");
82    return o;
83 }
84
85 static void
86 _emo_del(void *data, Evas_Object *obj __UNUSED__)
87 {
88    free(data);
89 }
90
91 static Evas_Object *
92 _page_grid_add(Evas_Object *parent, App_Inwin_Data *aid)
93 {
94    Evas_Object *grid;
95    char *theme, *emo;
96    Eina_List *emos, *it;
97    static Elm_Gengrid_Item_Class it_class = {
98         "default",
99         {
100            _emo_label_get,
101            _emo_content_get,
102            NULL,
103            _emo_del
104         }
105    };
106
107    theme = elm_theme_list_item_path_get("default", NULL);
108    if (!theme) return NULL;
109    emos = edje_file_collection_list(theme);
110    free(theme);
111    if (!emos) return NULL;
112
113    grid = elm_gengrid_add(parent);
114    elm_gengrid_item_size_set(grid, 64, 80);
115    evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
116    evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
117
118    EINA_LIST_FOREACH(emos, it, emo)
119      {
120         char name[512];
121
122         if (strncmp(emo, "elm/entry/emoticon/", 19))
123           continue;
124         sscanf(emo, "elm/entry/emoticon/%[^/]/default", name);
125         elm_gengrid_item_append(grid, &it_class, strdup(name), _it_sel_cb, aid);
126      }
127    edje_file_collection_list_free(emos);
128
129    return grid;
130 }
131
132 static void
133 _btn_insert_cb(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
134 {
135    App_Inwin_Data *aid = data;
136    const char *size[] = {
137         "size",
138         "absize",
139         "relsize"
140    };
141    const char *vsize[] = {
142         "full",
143         "ascent"
144    };
145    char buf[512];
146
147    snprintf(buf, sizeof(buf), "<item %s=%dx%d vsize=%s href=emoticon/%s>"
148             "</item>", size[aid->size], aid->width, aid->height,
149             vsize[aid->vsize], aid->emo);
150    _edit_buffer_insert(aid->ad->edit_buffer, buf);
151
152    evas_object_del(aid->inwin);
153 }
154
155 static void
156 _width_changed_cb(void *data, Evas_Object *obj, void *event __UNUSED__)
157 {
158    App_Inwin_Data *aid = data;
159
160    aid->width = atoi(elm_object_text_get(obj));
161 }
162
163 static void
164 _height_changed_cb(void *data, Evas_Object *obj, void *event __UNUSED__)
165 {
166    App_Inwin_Data *aid = data;
167
168    aid->height = atoi(elm_object_text_get(obj));
169 }
170
171 static Evas_Object *
172 _page_settings_add(Evas_Object *parent, App_Inwin_Data *aid)
173 {
174    Evas_Object *box, *sizeopts, *box2, *sizebox, *vsizebox,
175                *rsize, *rabsize, *rrelsize, *rvfull, *rvascent,
176                *fwidth, *ewidth, *fheight, *eheight,
177                *binsert;
178    char buf[100];
179    static Elm_Entry_Filter_Accept_Set accept_set = {
180         .accepted = "0123456789",
181         .rejected = NULL
182    };
183    static Elm_Entry_Filter_Limit_Size limit_size = {
184         .max_char_count = 5,
185         .max_byte_count = 0
186    };
187
188    box = elm_box_add(parent);
189    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
190    evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
191
192    sizeopts = elm_frame_add(parent);
193    elm_object_text_set(sizeopts, "Size");
194    evas_object_size_hint_weight_set(sizeopts, EVAS_HINT_EXPAND, 0.0);
195    evas_object_size_hint_align_set(sizeopts, EVAS_HINT_FILL, EVAS_HINT_FILL);
196    elm_box_pack_end(box, sizeopts);
197    evas_object_show(sizeopts);
198
199    box2 = elm_box_add(parent);
200    evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
201    evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, EVAS_HINT_FILL);
202    elm_object_content_set(sizeopts, box2);
203    evas_object_show(box2);
204
205    sizebox = elm_box_add(parent);
206    elm_box_horizontal_set(sizebox, EINA_TRUE);
207    evas_object_size_hint_weight_set(sizebox, EVAS_HINT_EXPAND,
208                                     EVAS_HINT_EXPAND);
209    evas_object_size_hint_align_set(sizebox, EVAS_HINT_FILL, EVAS_HINT_FILL);
210    elm_box_pack_end(box2, sizebox);
211    evas_object_show(sizebox);
212
213    rsize = elm_radio_add(parent);
214    elm_object_text_set(rsize, "Scale adjusted (size)");
215    elm_radio_state_value_set(rsize, 0);
216    elm_radio_value_pointer_set(rsize, &aid->size);
217    elm_box_pack_end(sizebox, rsize);
218    evas_object_show(rsize);
219
220    rabsize = elm_radio_add(parent);
221    elm_object_text_set(rabsize, "Absolute size (absize)");
222    elm_radio_state_value_set(rabsize, 1);
223    elm_radio_value_pointer_set(rabsize, &aid->size);
224    elm_radio_group_add(rabsize, rsize);
225    elm_box_pack_end(sizebox, rabsize);
226    evas_object_show(rabsize);
227
228    rrelsize = elm_radio_add(parent);
229    elm_object_text_set(rrelsize, "Relative to line (relsize)");
230    elm_radio_state_value_set(rrelsize, 2);
231    elm_radio_value_pointer_set(rrelsize, &aid->size);
232    elm_radio_group_add(rrelsize, rsize);
233    elm_box_pack_end(sizebox, rrelsize);
234    evas_object_show(rrelsize);
235
236    vsizebox = elm_box_add(parent);
237    elm_box_horizontal_set(vsizebox, EINA_TRUE);
238    evas_object_size_hint_weight_set(vsizebox, EVAS_HINT_EXPAND,
239                                     EVAS_HINT_EXPAND);
240    evas_object_size_hint_align_set(vsizebox, EVAS_HINT_FILL, EVAS_HINT_FILL);
241    elm_box_pack_end(box2, vsizebox);
242    evas_object_show(vsizebox);
243
244    rvfull = elm_radio_add(parent);
245    elm_object_text_set(rvfull, "Full height (vsize=full)");
246    elm_radio_state_value_set(rvfull, 0);
247    elm_radio_value_pointer_set(rvfull, &aid->vsize);
248    elm_box_pack_end(vsizebox, rvfull);
249    evas_object_show(rvfull);
250
251    rvascent = elm_radio_add(parent);
252    elm_object_text_set(rvascent, "Ascent only (vsize=ascent)");
253    elm_radio_state_value_set(rvascent, 1);
254    elm_radio_value_pointer_set(rvascent, &aid->vsize);
255    elm_radio_group_add(rvascent, rvfull);
256    elm_box_pack_end(vsizebox, rvascent);
257    evas_object_show(rvascent);
258
259    fwidth = elm_frame_add(parent);
260    elm_object_text_set(fwidth, "Width");
261    evas_object_size_hint_weight_set(fwidth, EVAS_HINT_EXPAND, 0.0);
262    evas_object_size_hint_align_set(fwidth, EVAS_HINT_FILL, EVAS_HINT_FILL);
263    elm_box_pack_end(box2, fwidth);
264    evas_object_show(fwidth);
265
266    snprintf(buf, sizeof(buf), "%d", aid->width);
267    ewidth = elm_entry_add(parent);
268    elm_entry_single_line_set(ewidth, EINA_TRUE);
269 <<<<<<< HEAD
270    elm_entry_text_filter_append(ewidth, elm_entry_filter_accept_set,
271                                 &accept_set);
272    elm_entry_text_filter_append(ewidth, elm_entry_filter_limit_size,
273 =======
274    elm_entry_markup_filter_append(ewidth, elm_entry_filter_accept_set,
275                                 &accept_set);
276    elm_entry_markup_filter_append(ewidth, elm_entry_filter_limit_size,
277 >>>>>>> remotes/origin/upstream
278                                 &limit_size);
279    elm_object_text_set(ewidth, buf);
280    evas_object_size_hint_weight_set(ewidth, EVAS_HINT_EXPAND, 0.0);
281    evas_object_size_hint_align_set(ewidth, EVAS_HINT_FILL, EVAS_HINT_FILL);
282    elm_object_content_set(fwidth, ewidth);
283    evas_object_show(ewidth);
284
285    evas_object_smart_callback_add(ewidth, "changed", _width_changed_cb, aid);
286
287    fheight = elm_frame_add(parent);
288    elm_object_text_set(fheight, "Height");
289    evas_object_size_hint_weight_set(fheight, EVAS_HINT_EXPAND, 0.0);
290    evas_object_size_hint_align_set(fheight, EVAS_HINT_FILL, EVAS_HINT_FILL);
291    elm_box_pack_end(box2, fheight);
292    evas_object_show(fheight);
293
294    snprintf(buf, sizeof(buf), "%d", aid->height);
295    eheight = elm_entry_add(parent);
296    elm_entry_single_line_set(eheight, EINA_TRUE);
297 <<<<<<< HEAD
298    elm_entry_text_filter_append(eheight, elm_entry_filter_accept_set,
299                                 &accept_set);
300    elm_entry_text_filter_append(eheight, elm_entry_filter_limit_size,
301 =======
302    elm_entry_markup_filter_append(eheight, elm_entry_filter_accept_set,
303                                 &accept_set);
304    elm_entry_markup_filter_append(eheight, elm_entry_filter_limit_size,
305 >>>>>>> remotes/origin/upstream
306                                 &limit_size);
307    elm_object_text_set(eheight, buf);
308    evas_object_size_hint_weight_set(eheight, EVAS_HINT_EXPAND, 0.0);
309    evas_object_size_hint_align_set(eheight, EVAS_HINT_FILL, EVAS_HINT_FILL);
310    elm_object_content_set(fheight, eheight);
311    evas_object_show(eheight);
312
313    evas_object_smart_callback_add(eheight, "changed", _height_changed_cb, aid);
314
315    binsert = elm_button_add(parent);
316    elm_object_text_set(binsert, "Insert");
317    elm_box_pack_end(box, binsert);
318    evas_object_show(binsert);
319
320    evas_object_smart_callback_add(binsert, "clicked", _btn_insert_cb, aid);
321
322    return box;
323 }
324
325 static void
326 _insert_cancel_cb(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
327 {
328    App_Inwin_Data *aid = data;
329
330    evas_object_del(aid->inwin);
331 }
332
333 static void
334 _inwin_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
335 {
336    free(data);
337 }
338
339 static void
340 _image_insert_cb(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
341 {
342    App_Data *ad = data;
343    App_Inwin_Data *aid;
344 <<<<<<< HEAD
345    Evas_Object *inwin, *box, *box2, *pager, *o;
346 =======
347    Evas_Object *inwin, *box, *box2, *naviframe, *o;
348 >>>>>>> remotes/origin/upstream
349
350    aid = calloc(1, sizeof(App_Inwin_Data));
351    if (!aid) return;
352
353    aid->ad = ad;
354    aid->size = 1;
355    aid->vsize = 1;
356    aid->width = 64;
357    aid->height = 64;
358
359    inwin = elm_win_inwin_add(ad->win);
360    evas_object_size_hint_weight_set(inwin, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
361    evas_object_size_hint_align_set(inwin, EVAS_HINT_FILL, EVAS_HINT_FILL);
362    evas_object_show(inwin);
363
364    evas_object_event_callback_add(inwin, EVAS_CALLBACK_DEL, _inwin_del_cb,
365                                   aid);
366
367    box = elm_box_add(ad->win);
368    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
369    evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
370    elm_win_inwin_content_set(inwin, box);
371    evas_object_show(box);
372
373 <<<<<<< HEAD
374    pager = elm_pager_add(ad->win);
375    evas_object_size_hint_weight_set(pager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
376    evas_object_size_hint_align_set(pager, EVAS_HINT_FILL, EVAS_HINT_FILL);
377    elm_box_pack_end(box, pager);
378    evas_object_show(pager);
379
380    o = _page_grid_add(ad->win, aid);
381    elm_pager_content_push(pager, o);
382    aid->grid = o;
383
384    o = _page_settings_add(ad->win, aid);
385    elm_pager_content_push(pager, o);
386    aid->settings = o;
387
388    elm_pager_content_promote(pager, aid->grid);
389 =======
390    naviframe = elm_naviframe_add(ad->win);
391    evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
392    evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
393    elm_box_pack_end(box, naviframe);
394    evas_object_show(naviframe);
395
396    o = _page_grid_add(ad->win, aid);
397    elm_naviframe_item_simple_push(naviframe, o);
398    aid->grid = o;
399
400    o = _page_settings_add(ad->win, aid);
401    elm_naviframe_item_simple_push(naviframe, o);
402    aid->settings = o;
403
404    elm_naviframe_item_simple_promote(naviframe, aid->grid);
405 >>>>>>> remotes/origin/upstream
406
407    box2 = elm_box_add(ad->win);
408    elm_box_horizontal_set(box2, EINA_TRUE);
409    evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0.0);
410    evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, EVAS_HINT_FILL);
411    elm_box_pack_end(box, box2);
412    evas_object_show(box2);
413
414    o = elm_button_add(ad->win);
415    elm_object_text_set(o, "Cancel");
416    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
417    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
418    elm_box_pack_end(box2, o);
419    evas_object_show(o);
420
421    evas_object_smart_callback_add(o, "clicked", _insert_cancel_cb, aid);
422
423    aid->inwin = inwin;
424 <<<<<<< HEAD
425    aid->pager = pager;
426 =======
427    aid->naviframe = naviframe;
428 >>>>>>> remotes/origin/upstream
429 }
430
431 static void
432 _format_change_cb(void *data, Evas_Object *obj, void *event __UNUSED__)
433 {
434    App_Data *ad = data;
435    char fmt_open[5], fmt_close[6];
436    const char *sel;
437    int cursor;
438    char *s;
439    const char *ptr, *what;
440    Eina_Strbuf *buf = NULL;
441
442    sel = elm_object_text_get(obj);
443    snprintf(fmt_open, sizeof(fmt_open), "<%s>", sel);
444    snprintf(fmt_close, sizeof(fmt_close), "</%s>", sel);
445
446    buf = eina_strbuf_new();
447
448    cursor = elm_entry_cursor_pos_get(ad->edit_buffer);
449    elm_entry_cursor_begin_set(ad->edit_buffer);
450    elm_entry_cursor_selection_begin(ad->edit_buffer);
451    elm_entry_cursor_pos_set(ad->edit_buffer, cursor);
452    elm_entry_cursor_selection_end(ad->edit_buffer);
453    sel = elm_entry_selection_get(ad->edit_buffer);
454    if (!sel || !sel[0])
455      {
456         eina_strbuf_append(buf, fmt_open);
457         goto all_done;
458      }
459    what = fmt_open;
460    ptr = sel;
461    while ((s = strstr(ptr, what)))
462      {
463         ptr = s + strlen(what);
464         if (what == fmt_open) what = fmt_close;
465         else what = fmt_open;
466      }
467    eina_strbuf_append(buf, what);
468    if (what == fmt_close)
469      {
470         elm_entry_cursor_selection_begin(ad->edit_buffer);
471         elm_entry_cursor_end_set(ad->edit_buffer);
472         elm_entry_cursor_selection_end(ad->edit_buffer);
473         sel = elm_entry_selection_get(ad->edit_buffer);
474         if (sel)
475           {
476              Eina_Strbuf *buf2 = eina_strbuf_new();
477              eina_strbuf_append(buf2, sel);
478              eina_strbuf_replace_first(buf2, fmt_close, "");
479              elm_entry_entry_insert(ad->edit_buffer,
480                                     eina_strbuf_string_get(buf2));
481              eina_strbuf_free(buf2);
482           }
483      }
484    elm_entry_select_none(ad->edit_buffer);
485    elm_entry_cursor_pos_set(ad->edit_buffer, cursor);
486
487 all_done:
488    _edit_buffer_insert(ad->edit_buffer, eina_strbuf_string_get(buf));
489    eina_strbuf_free(buf);
490 }
491
492 static void
493 _autosave_change_cb(void *data, Evas_Object *obj, void *event __UNUSED__)
494 {
495    App_Data *ad = data;
496    Eina_Bool state = elm_check_state_get(obj);
497
498    elm_entry_autosave_set(ad->edit_buffer, state);
499    if (state) elm_entry_file_save(ad->edit_buffer);
500 }
501
502 static void
503 _edit_dblclick_cb(void *data __UNUSED__, Evas_Object *obj, void *event __UNUSED__)
504 {
505    int current_cursor;
506
507    current_cursor = elm_entry_cursor_pos_get(obj);
508
509    while (elm_entry_cursor_prev(obj))
510      {
511         const char *content;
512         if (elm_entry_cursor_is_visible_format_get(obj))
513           break;
514         content = elm_entry_cursor_content_get(obj);
515         if (content && (content[0] == ' '))
516           break;
517      }
518
519    if (current_cursor == elm_entry_cursor_pos_get(obj))
520      return;
521
522    elm_entry_cursor_next(obj);
523    elm_entry_cursor_selection_begin(obj);
524    elm_entry_cursor_pos_set(obj, current_cursor);
525    while (elm_entry_cursor_next(obj))
526      {
527         const char *content;
528         if (elm_entry_cursor_is_visible_format_get(obj))
529           break;
530         content = elm_entry_cursor_content_get(obj);
531         if (content && (content[0] == ' '))
532           break;
533      }
534    elm_entry_cursor_selection_end(obj);
535 }
536
537 static void
538 _edit_tplclick_cb(void *data __UNUSED__, Evas_Object *obj, void *event __UNUSED__)
539 {
540    elm_entry_cursor_line_begin_set(obj);
541    elm_entry_cursor_selection_begin(obj);
542    elm_entry_cursor_line_end_set(obj);
543    elm_entry_cursor_selection_end(obj);
544 }
545
546 static void
547 _win_del_cb(void *data __UNUSED__, Evas_Object *obj, void *event __UNUSED__)
548 {
549    evas_object_del(obj);
550    elm_exit();
551 }
552
553 int
554 elm_main(int argc __UNUSED__, char *argv[] __UNUSED__)
555 {
556    Evas_Object *win, *bg, *box, *tb, *en, *o, *icon;
557    App_Data app;
558
559    memset(&app, 0, sizeof(app));
560
561    win = elm_win_add(NULL, "entry-example", ELM_WIN_BASIC);
562    elm_win_title_set(win, "Emacs Lite");
563    evas_object_show(win);
564
565    bg = elm_bg_add(win);
566    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
567    elm_win_resize_object_add(win, bg);
568    evas_object_show(bg);
569
570    box = elm_box_add(win);
571    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
572    elm_win_resize_object_add(win, box);
573    evas_object_show(box);
574
575    tb = elm_box_add(win);
576    elm_box_horizontal_set(tb, EINA_TRUE);
577    evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, 0.0);
578    evas_object_size_hint_weight_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
579    elm_box_pack_end(box, tb);
580    evas_object_show(tb);
581
582    o = elm_check_add(win);
583    elm_check_state_set(o, EINA_FALSE);
584    elm_object_text_set(o, "Autosave");
585    elm_box_pack_end(tb, o);
586    evas_object_show(o);
587
588    evas_object_smart_callback_add(o, "changed", _autosave_change_cb, &app);
589
590    o = elm_button_add(win);
591    elm_object_text_set(o, "b");
592    elm_box_pack_end(tb, o);
593    evas_object_show(o);
594
595    evas_object_smart_callback_add(o, "clicked", _format_change_cb, &app);
596
597    o = elm_button_add(win);
598    elm_object_text_set(o, "em");
599    elm_box_pack_end(tb, o);
600    evas_object_show(o);
601
602    evas_object_smart_callback_add(o, "clicked", _format_change_cb, &app);
603
604    o = elm_button_add(win);
605    elm_box_pack_end(tb, o);
606    evas_object_show(o);
607
608    icon = elm_layout_add(win);
609    elm_layout_theme_set(icon, "entry", "emoticon/haha", "default");
610    elm_object_part_content_set(o, "icon", icon);
611
612    evas_object_smart_callback_add(o, "clicked", _image_insert_cb, &app);
613
614    en = elm_entry_add(win);
615    elm_entry_autosave_set(en, EINA_FALSE);
616    elm_entry_file_set(en, "/tmp/da_test.txt", ELM_TEXT_FORMAT_MARKUP_UTF8);
617    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
618    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
619    elm_box_pack_end(box, en);
620    evas_object_show(en);
621
622    app.win = win;
623    app.edit_buffer = en;
624
625    evas_object_smart_callback_add(en, "clicked,double", _edit_dblclick_cb,
626                                   NULL);
627    evas_object_smart_callback_add(en, "clicked,triple", _edit_tplclick_cb,
628                                   NULL);
629
630    evas_object_smart_callback_add(win, "delete,request", _win_del_cb, &app);
631
632 <<<<<<< HEAD
633    elm_object_focus(app.edit_buffer);
634 =======
635    elm_object_focus_set(app.edit_buffer, EINA_TRUE);
636 >>>>>>> remotes/origin/upstream
637
638    evas_object_resize(win, 300, 780);
639
640    elm_run();
641
642    return 0;
643 }
644 ELM_MAIN();