From: Hyoyoung Chang <hyoyoung@gmail.com>

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


SVN revision: 66629
This commit is contained in:
Hyoyoung Chang 2011-12-29 12:03:42 +00:00 committed by Mike Blumenkrantz
parent 5b6e858db2
commit 11e658ec2b
3 changed files with 85 additions and 0 deletions

View 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 \

View 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);

View File

@ -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