From: Hyoyoung Chang <hyoyoung@gmail.com>
authordiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Dec 2011 12:03:42 +0000 (12:03 +0000)
committerdiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Dec 2011 12:03:42 +0000 (12:03 +0000)
Subject: [E-devel] [patch] add copy&paste example to elementary_test
Date: Thu, 29 Dec 2011 18:08:48 +0900

Dear all,

It's a patch to add copy&paste example to elm test in misc section.
In this time, it contains only simple copying and paste, but i'll more extend.

Thank you

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@66629 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/Makefile.am
src/bin/test.c
src/bin/test_cnp.c [new file with mode: 0644]

index 2b53658..a815f27 100644 (file)
@@ -43,6 +43,7 @@ test_button.c \
 test_calendar.c \
 test_check.c \
 test_clock.c \
+test_cnp.c \
 test_colorselector.c \
 test_conform.c \
 test_ctxpopup.c \
index 8b39288..1373743 100644 (file)
@@ -14,6 +14,7 @@ void test_box_vert2(void *data, Evas_Object *obj, void *event_info);
 void test_box_horiz(void *data, Evas_Object *obj, void *event_info);
 void test_box_transition(void *data, Evas_Object *obj, void *event_info);
 void test_button(void *data, Evas_Object *obj, void *event_info);
+void test_cnp(void *data, Evas_Object *obj, void *event_info);
 void test_transit(void *data, Evas_Object *obj, void *event_info);
 void test_transit2(void *data, Evas_Object *obj, void *event_info);
 void test_transit3(void *data, Evas_Object *obj, void *event_info);
@@ -507,6 +508,7 @@ add_tests:
    ADD_TEST(NULL, "Helpers", "Factory", test_factory);
 
    //------------------------------//
+   ADD_TEST(NULL, "Micellaneous", "Copy And Paste", test_cnp);
    ADD_TEST(NULL, "Micellaneous", "Weather", test_weather);
    ADD_TEST(NULL, "Micellaneous", "Icon Desktops", test_icon_desktops);
    ADD_TEST(NULL, "Micellaneous", "Floating Objects", test_floating);
diff --git a/src/bin/test_cnp.c b/src/bin/test_cnp.c
new file mode 100644 (file)
index 0000000..f0408c1
--- /dev/null
@@ -0,0 +1,82 @@
+#include <Elementary.h>
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+#ifndef ELM_LIB_QUICKLAUNCH
+static void
+_bt_copy_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *en = (Evas_Object*)(data);
+   const char *txt = elm_object_text_get(en);
+
+   elm_cnp_selection_set(ELM_SEL_TYPE_CLIPBOARD, elm_object_parent_widget_get(en),
+                         ELM_SEL_FORMAT_TEXT, txt, strlen(txt));
+}
+
+static void
+_bt_paste_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *en = (Evas_Object*)(data);
+
+   elm_cnp_selection_get(ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT,
+                         en, NULL, NULL);
+}
+
+void
+test_cnp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Evas_Object *win, *bg, *gd, *bt, *en;
+
+   win = elm_win_add(NULL, "CopyPaste", ELM_WIN_BASIC);
+   elm_win_title_set(win, "CopyPaste");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   bg = elm_bg_add(win);
+   elm_win_resize_object_add(win, bg);
+   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_show(bg);
+
+   gd = elm_grid_add(win);
+   elm_grid_size_set(gd, 100, 100);
+   elm_win_resize_object_add(win, gd);
+   evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_show(gd);
+
+   en = elm_entry_add(win);
+   elm_entry_scrollable_set(en, EINA_TRUE);
+   elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
+   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_entry_entry_set(en,
+                               "Elementary provides "
+                                );
+   elm_grid_pack(gd, en, 10, 10, 60, 40);
+   evas_object_show(en);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Copy from left entry");
+   evas_object_smart_callback_add(bt, "clicked", _bt_copy_clicked, en);
+   elm_grid_pack(gd, bt, 70, 10, 22, 40);
+   evas_object_show(bt);
+
+   en = elm_entry_add(win);
+   elm_entry_scrollable_set(en, EINA_TRUE);
+   elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
+   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_entry_entry_set(en,
+                               "rich copying and pasting functionality,"
+                                );
+   elm_grid_pack(gd, en, 10, 50, 60, 40);
+   evas_object_show(en);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Paste to left entry");
+   evas_object_smart_callback_add(bt, "clicked", _bt_paste_clicked, en);
+   elm_grid_pack(gd, bt, 70, 50, 22, 40);
+   evas_object_show(bt);
+
+   evas_object_resize(win, 480, 140);
+   evas_object_show(win);
+}
+#endif