summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinchul Lee <slotus.lee@samsung.com>2016-09-29 21:01:30 +0900
committerMinchul Lee <slotus.lee@samsung.com>2016-09-29 21:02:26 +0900
commitb35da07097a0742ebcc35e9faa0e946c140569a5 (patch)
treed9d03fb1109b2d2aa9b29a1d90519cf1ee536c97
parent16e7f8c370691c9e13e1bd9bf7b2aa29d9cf0d91 (diff)
downloadelm-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.txt2
-rw-r--r--edc_resource/default/copypaste.edc0
-rw-r--r--edc_resource/entry.edc31
-rw-r--r--packaging/elm-demo-tizen-mobile.spec1
-rw-r--r--src/entry.c87
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);