diff options
author | Minchul Lee <slotus.lee@samsung.com> | 2016-09-29 21:01:30 +0900 |
---|---|---|
committer | Minchul Lee <slotus.lee@samsung.com> | 2016-09-29 21:02:26 +0900 |
commit | b35da07097a0742ebcc35e9faa0e946c140569a5 (patch) | |
tree | d9d03fb1109b2d2aa9b29a1d90519cf1ee536c97 | |
parent | 16e7f8c370691c9e13e1bd9bf7b2aa29d9cf0d91 (diff) | |
download | elm-demo-tizen-mobile-b35da07097a0742ebcc35e9faa0e946c140569a5.tar.gz elm-demo-tizen-mobile-b35da07097a0742ebcc35e9faa0e946c140569a5.tar.bz2 elm-demo-tizen-mobile-b35da07097a0742ebcc35e9faa0e946c140569a5.zip |
entry: apply cbhm API test
Change-Id: Ic014193a9138c98a76317825146b07a4008f26e8
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | edc_resource/default/copypaste.edc | 0 | ||||
-rw-r--r-- | edc_resource/entry.edc | 31 | ||||
-rw-r--r-- | packaging/elm-demo-tizen-mobile.spec | 1 | ||||
-rw-r--r-- | src/entry.c | 87 |
5 files changed, 119 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d137fb7..7a37e55 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ FOREACH(flag ${BASE_PKG_LDFLAGS}) SET(PKG_LDFLAGS "${PKG_LDFLAGS} ${flag}") ENDFOREACH(flag) -pkg_check_modules(TIZEN_PKG REQUIRED capi-appfw-application capi-system-system-settings appcore-efl capi-appfw-app-manager dlog vconf) +pkg_check_modules(TIZEN_PKG REQUIRED capi-appfw-application capi-system-system-settings appcore-efl capi-appfw-app-manager dlog vconf cbhm) FOREACH(flag ${TIZEN_PKG_CFLAGS}) SET(PKG_CFLAGS "${PKG_CFLAGS} ${flag}") ENDFOREACH(flag) diff --git a/edc_resource/default/copypaste.edc b/edc_resource/default/copypaste.edc new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/edc_resource/default/copypaste.edc diff --git a/edc_resource/entry.edc b/edc_resource/entry.edc index 9e0fdc4..284544c 100644 --- a/edc_resource/entry.edc +++ b/edc_resource/entry.edc @@ -14,7 +14,6 @@ * limitations under the License. * */ - group { name: "entry_layout"; parts { part { name: "bg"; @@ -34,3 +33,33 @@ group { name: "entry_layout"; } } } +group { name: "copy_paste_layout"; + styles { + style { "copy_paste_style"; + base: "font="Sans" font_size=50 text_class=entry color=#000000 valign=0.5 ellipsis=1.0 wrap=word align=center"; + } + } + parts { + part { name: "buttons"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 0 1; + min: 0 100; + rel2.relative: 1.0 0.0; + align: 0.5 0.0; + } + } + part { name:"copy_paste_textblock"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + text.text: ""; + text.style: "copy_paste_style"; + rel1.to: "buttons"; + rel1.relative: 0.00 1.00; + } + } + } +} + diff --git a/packaging/elm-demo-tizen-mobile.spec b/packaging/elm-demo-tizen-mobile.spec index c0f2966..28d039e 100644 --- a/packaging/elm-demo-tizen-mobile.spec +++ b/packaging/elm-demo-tizen-mobile.spec @@ -17,6 +17,7 @@ BuildRequires: edje-bin BuildRequires: gettext-tools BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(vconf) +BuildRequires: pkgconfig(cbhm) %description Tizen mobile theme demo diff --git a/src/entry.c b/src/entry.c index 47893ab..ce8f70b 100644 --- a/src/entry.c +++ b/src/entry.c @@ -16,6 +16,7 @@ */ #include "main.h" +#include <cbhm.h> static void entry_changed_cb(void *data, Evas_Object *obj, void *event_info) @@ -132,6 +133,91 @@ list_it_singleline_cb(void *data, Evas_Object *obj, void *event_info) elm_naviframe_item_push(nf, "Singleline Entry", NULL, NULL, scroller, NULL); } +struct PasteData { + cbhm_h cbhm_handle; + Evas_Object *layout; +}; + +static void +copy_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + struct PasteData *_paste_data = data; + char *hello_str; + + hello_str = strdup("hello"); + cbhm_selection_type_set(_paste_data->cbhm_handle, CBHM_SEL_TYPE_TEXT); + cbhm_selection_set(_paste_data->cbhm_handle, CBHM_SEL_TYPE_TEXT, hello_str, strlen(hello_str)); + + free(hello_str); +} + +static int +_selection_data_cb(cbhm_h cbhm_handle, char *buf, size_t len, void *user_data) +{ + struct PasteData *_paste_data = user_data; + elm_object_part_text_set(_paste_data->layout, "copy_paste_textblock", buf); + + return CBHM_ERROR_NONE; +} + +static void +paste_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + struct PasteData *_paste_data = data; + + cbhm_selection_get(_paste_data->cbhm_handle, CBHM_SEL_TYPE_TEXT, _selection_data_cb, _paste_data); +} + +static void +list_it_copy_paste_cb(void *data, Evas_Object *obj, void *event_info) +{ + cbhm_h cbhm_handle; + Evas_Object *layout; + Evas_Object *box; + Evas_Object *nf = data; + + layout = elm_layout_add(nf); + elm_layout_file_set(layout, ELM_DEMO_EDJ, "copy_paste_layout"); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(layout); + + box = elm_box_add(layout); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_box_horizontal_set(box, EINA_TRUE); + evas_object_show(box); + + cbhm_open_service(&cbhm_handle); + + /* FIXME: _paste_data SHOULD be destroyed later */ + struct PasteData *_paste_data = calloc(1, sizeof(struct PasteData)); + _paste_data->cbhm_handle = cbhm_handle; + _paste_data->layout = layout; + + /* button 1 */ + Evas_Object *btn = elm_button_add(box); + elm_object_text_set(btn, "Copy Text"); + evas_object_smart_callback_add(btn, "clicked", copy_btn_clicked_cb, _paste_data); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5); + evas_object_show(btn); + elm_box_pack_end(box, btn); + + /* button 2 */ + btn = elm_button_add(box); + elm_object_text_set(btn, "Paste Text"); + evas_object_smart_callback_add(btn, "clicked", paste_btn_clicked_cb, _paste_data); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5); + evas_object_show(btn); + elm_box_pack_end(box, btn); + + elm_object_part_content_set(layout, "buttons", box); + + elm_naviframe_item_push(nf, "Copy and Paste", NULL, NULL, layout, NULL); +} + static void list_selected_cb(void *data, Evas_Object *obj, void *event_info) { @@ -153,6 +239,7 @@ entry_cb(void *data, Evas_Object *obj, void *event_info) elm_list_item_append(list, "Multiline Entry", NULL, NULL, list_it_multiline_cb, nf); elm_list_item_append(list, "Password Entry", NULL, NULL, list_it_password_cb, nf); elm_list_item_append(list, "Singleline Entry", NULL, NULL, list_it_singleline_cb, nf); + elm_list_item_append(list, "Copy and Paste", NULL, NULL, list_it_copy_paste_cb, nf); elm_list_go(list); elm_naviframe_item_push(nf, "Entry", NULL, NULL, list, NULL); |