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
Index: elementary/src/bin/test.c
===================================================================
--- elementary/src/bin/test.c   (리비전 66617)
+++ elementary/src/bin/test.c   (작업 사본)
@@ -14,6 +14,7 @@
 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_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);
Index: elementary/src/bin/test_cnp.c
===================================================================
--- elementary/src/bin/test_cnp.c       (리비전 0)
+++ elementary/src/bin/test_cnp.c       (리비전 0)
@@ -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
Index: elementary/src/bin/Makefile.am
===================================================================
--- elementary/src/bin/Makefile.am      (리비전 66617)
+++ elementary/src/bin/Makefile.am      (작업 사본)
@@ -43,6 +43,7 @@
 test_calendar.c \
 test_check.c \
 test_clock.c \
+test_cnp.c \
 test_colorselector.c \
 test_conform.c \
 test_ctxpopup.c \
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to