EFL migration revision 67547
[framework/uifw/elementary.git] / src / bin / test_cnp.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
5 #ifndef ELM_LIB_QUICKLAUNCH
6 static void
7 _bt_copy_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
8 {
9    Evas_Object *en = (Evas_Object*)(data);
10    const char *txt = elm_object_text_get(en);
11
12    elm_cnp_selection_set(ELM_SEL_TYPE_CLIPBOARD, elm_object_parent_widget_get(en),
13                          ELM_SEL_FORMAT_TEXT, txt, strlen(txt));
14 }
15
16 static void
17 _bt_paste_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
18 {
19    Evas_Object *en = (Evas_Object*)(data);
20
21    elm_cnp_selection_get(ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT,
22                          en, NULL, NULL);
23 }
24
25 void
26 test_cnp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
27 {
28    Evas_Object *win, *bg, *gd, *bt, *en;
29
30    win = elm_win_add(NULL, "CopyPaste", ELM_WIN_BASIC);
31    elm_win_title_set(win, "CopyPaste");
32    elm_win_autodel_set(win, EINA_TRUE);
33
34    bg = elm_bg_add(win);
35    elm_win_resize_object_add(win, bg);
36    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
37    evas_object_show(bg);
38
39    gd = elm_grid_add(win);
40    elm_grid_size_set(gd, 100, 100);
41    elm_win_resize_object_add(win, gd);
42    evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
43    evas_object_show(gd);
44
45    en = elm_entry_add(win);
46    elm_entry_scrollable_set(en, EINA_TRUE);
47    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
48    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
49    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
50    elm_object_text_set(en,
51                                 "Elementary provides "
52                                 );
53    elm_grid_pack(gd, en, 10, 10, 60, 40);
54    evas_object_show(en);
55
56    bt = elm_button_add(win);
57    elm_object_text_set(bt, "Copy from left entry");
58    evas_object_smart_callback_add(bt, "clicked", _bt_copy_clicked, en);
59    elm_grid_pack(gd, bt, 70, 10, 22, 40);
60    evas_object_show(bt);
61
62    en = elm_entry_add(win);
63    elm_entry_scrollable_set(en, EINA_TRUE);
64    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
65    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
66    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
67    elm_object_text_set(en,
68                                 "rich copying and pasting functionality,"
69                                 );
70    elm_grid_pack(gd, en, 10, 50, 60, 40);
71    evas_object_show(en);
72
73    bt = elm_button_add(win);
74    elm_object_text_set(bt, "Paste to left entry");
75    evas_object_smart_callback_add(bt, "clicked", _bt_paste_clicked, en);
76    elm_grid_pack(gd, bt, 70, 50, 22, 40);
77    evas_object_show(bt);
78
79    evas_object_resize(win, 480, 140);
80    evas_object_show(win);
81 }
82 #endif