From: nazib.ullah Date: Thu, 29 Dec 2016 11:49:00 +0000 (+0600) Subject: [TBT][tizen_3.0_mobile][TBT IME Module updated, crash issue fixed] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=168df2318f8ebb8df1c9ad3bb1992785d3d22213;p=test%2Ftct%2Fnative%2Fbehavior.git [TBT][tizen_3.0_mobile][TBT IME Module updated, crash issue fixed] Change-Id: I8add2e061eb7e060baf63f6cd470c4490363ce41 Signed-off-by: nazib.ullah --- diff --git a/release/binary-aarch64/org.tizen.tbt-ime-1.0.0-aarch64.tpk b/release/binary-aarch64/org.tizen.tbt-ime-1.0.0-aarch64.tpk index 5cea85b..60594b1 100644 Binary files a/release/binary-aarch64/org.tizen.tbt-ime-1.0.0-aarch64.tpk and b/release/binary-aarch64/org.tizen.tbt-ime-1.0.0-aarch64.tpk differ diff --git a/release/binary-armv7l/org.tizen.tbt-ime-1.0.0-arm.tpk b/release/binary-armv7l/org.tizen.tbt-ime-1.0.0-arm.tpk index 0b24ffb..2a65794 100644 Binary files a/release/binary-armv7l/org.tizen.tbt-ime-1.0.0-arm.tpk and b/release/binary-armv7l/org.tizen.tbt-ime-1.0.0-arm.tpk differ diff --git a/release/binary-x86/org.tizen.tbt-ime-1.0.0-i386.tpk b/release/binary-x86/org.tizen.tbt-ime-1.0.0-i386.tpk index ab83a6d..e70e4cc 100644 Binary files a/release/binary-x86/org.tizen.tbt-ime-1.0.0-i386.tpk and b/release/binary-x86/org.tizen.tbt-ime-1.0.0-i386.tpk differ diff --git a/release/binary-x86_64/org.tizen.tbt-ime-1.0.0-x86_64.tpk b/release/binary-x86_64/org.tizen.tbt-ime-1.0.0-x86_64.tpk index 54d68a8..28c70ac 100644 Binary files a/release/binary-x86_64/org.tizen.tbt-ime-1.0.0-x86_64.tpk and b/release/binary-x86_64/org.tizen.tbt-ime-1.0.0-x86_64.tpk differ diff --git a/tbt-ime/.cproject b/tbt-ime/.cproject index 233d7b9..5b120e3 100644 --- a/tbt-ime/.cproject +++ b/tbt-ime/.cproject @@ -1,37 +1,43 @@ - - + + - - - - + + + + - - - - - - - - - - + + - - - - + + + + - - - - - - - - - + - + - + - diff --git a/tbt-ime/.exportMap b/tbt-ime/.exportMap new file mode 100644 index 0000000..43e310e --- /dev/null +++ b/tbt-ime/.exportMap @@ -0,0 +1,4 @@ +{ + global: main; + local: *; +}; diff --git a/tbt-ime/.gbs.conf b/tbt-ime/.gbs.conf deleted file mode 100644 index 5a50939..0000000 --- a/tbt-ime/.gbs.conf +++ /dev/null @@ -1,30 +0,0 @@ -[general] -buildroot=~/GBS-ROOT-TBT-MOBILE -profile = profile.device - -[profile.device] # Profile for Device -obs = obs.device -repos = repo.device - -[profile.sdk] # Profile for SDK -obs = obs.sdk -repos = repo.sdk - -[obs.device] # obs for SDK.Ref_Target -#OBS API URL pointing to a remote OBS. -url = https://168.219.209.58/ - -[obs.sdk] # obs for SDK.Emulator -#OBS API URL pointing to a remote OBS. -url = https://168.219.209.58/ - - -#device -[repo.device] # Repository for Tizen 2.4 SDK Target snapshot -url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/arm64-wayland/packages/ - -#SDK -[repo.sdk] # Repository for Tizen 2.4 SDK Emulator snapshot -url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/arm64-wayland/packages/ - - diff --git a/tbt-ime/.gitignore b/tbt-ime/.gitignore index d023e87..ffab4a7 100644 --- a/tbt-ime/.gitignore +++ b/tbt-ime/.gitignore @@ -1,4 +1,3 @@ /SA_Report /Debug /.sign -/res diff --git a/tbt-ime/.project b/tbt-ime/.project index f973c34..3409021 100644 --- a/tbt-ime/.project +++ b/tbt-ime/.project @@ -16,17 +16,31 @@ - - org.tizen.nativecore.apichecker.core.builder - - - org.eclipse.cdt.core.cnature org.eclipse.cdt.core.ccnature org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - org.tizen.nativecore.apichecker.core.tizenCppNature + + + 1483010107309 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-projectRelativePath-matches-false-false-*/.tpk + + + + 1483010107311 + + 6 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-project_def.prop + + + diff --git a/tbt-ime/.rds_delta b/tbt-ime/.rds_delta new file mode 100644 index 0000000..aecfac0 --- /dev/null +++ b/tbt-ime/.rds_delta @@ -0,0 +1,7 @@ +#delete +#add +#modify +author-signature.xml +signature1.xml +res/edje/tbt_ime.edj +bin/tbt-ime diff --git a/tbt-ime/.sdk_delta.info b/tbt-ime/.sdk_delta.info index a073878..9c4ca9a 100644 Binary files a/tbt-ime/.sdk_delta.info and b/tbt-ime/.sdk_delta.info differ diff --git a/tbt-ime/CMakeLists.txt b/tbt-ime/CMakeLists.txt deleted file mode 100644 index c2fc551..0000000 --- a/tbt-ime/CMakeLists.txt +++ /dev/null @@ -1,51 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -PROJECT(${NAME}) - -SET(project_name ${NAME}) -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) -SET(PKG_MODULES - capi-base-common - dlog - elementary - ecore-imf - evas - libscl-core - isf - capi-appfw-application - capi-ui-inputmethod -) - -INCLUDE(FindPkgConfig) -pkg_check_modules(${project_name} REQUIRED ${PKG_MODULES}) - -INCLUDE_DIRECTORIES( - ${${project_name}_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/inc -) -FILE(GLOB_RECURSE SRCS ${CMAKE_SOURCE_DIR}/src/*.c) -ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) - - -TARGET_LINK_LIBRARIES(${PROJECT_NAME} - capi-ui-inputmethod - dlog - eina - elementary - evas - -) - - -CONFIGURE_FILE(tizen-manifest.xml ${PACKAGE_NAME}.xml) -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib) -install(FILES ${CMAKE_SOURCE_DIR}/${PACKAGE_NAME}.xml DESTINATION /opt/share/packages) -install(FILES ${CMAKE_SOURCE_DIR}/shared/res/${DESKTOP_ICON} DESTINATION /opt/share/icons/default/small) -install(FILES ${CMAKE_SOURCE_DIR}/shared/res/${DESKTOP_ICON} DESTINATION /opt/usr/apps/${PACKAGE_NAME}/shared/res) - - - -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O2 -Wall -fPIC -pipe -Wl,--allow-shlib-undefined -D__DEBUG_MSG__") -SET(CMAKE_C_FLAGS " -fPIE -Wall -lstdc++") -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib -pie") - - diff --git a/tbt-ime/inc/logger.h b/tbt-ime/inc/logger.h old mode 100755 new mode 100644 index 2d92688..094bb2a --- a/tbt-ime/inc/logger.h +++ b/tbt-ime/inc/logger.h @@ -30,7 +30,7 @@ #include -#define LOG_TAG_CORE "[coretbt_dataprovider]_" +#define LOG_TAG_CORE "[TBT_IME]_" #define DLOG(prio, fmt, arg...) dlog_print(prio, LOG_TAG_CORE, "%s (Line: %d) > " fmt, __func__, __LINE__, ##arg) #define DBG(fmt, arg...) DLOG(DLOG_DEBUG, fmt, ##arg) diff --git a/tbt-ime/inc/tbt-ime.h b/tbt-ime/inc/tbt-ime.h old mode 100755 new mode 100644 index cc182ff..703effd --- a/tbt-ime/inc/tbt-ime.h +++ b/tbt-ime/inc/tbt-ime.h @@ -28,8 +28,8 @@ * */ -#ifndef _TBT-IME_H_ -#define _TBT-IME_H_ +#ifndef _TBT_IME_H_ +#define _TBT_IME_H_ #include diff --git a/tbt-ime/packaging/org.tizen.tbt-ime.spec b/tbt-ime/packaging/org.tizen.tbt-ime.spec deleted file mode 100644 index c7e9b97..0000000 --- a/tbt-ime/packaging/org.tizen.tbt-ime.spec +++ /dev/null @@ -1,78 +0,0 @@ -Name: org.tizen.tbt-ime -Version: 0.0.1 -Release: 1 -License: To be filled -Summary: TBT GBS -Group: System/Libraries -Source0: %{name}-%{version}.tar.gz - -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig -BuildRequires: cmake -BuildRequires: pkgconfig(capi-base-common) -BuildRequires: pkgconfig(dlog) -BuildRequires: pkgconfig(elementary) -BuildRequires: pkgconfig(ecore-imf) -BuildRequires: pkgconfig(libscl-core) -BuildRequires: pkgconfig(isf) -BuildRequires: pkgconfig(capi-ui-inputmethod) -BuildRequires: pkgconfig(evas) -BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(eina) - -%description -Platform Project - -%define _shortname tbt-ime -%define _optdir /opt -%define _usrdir /opt/usr -%define _appdir /opt/usr/apps -%define _pkgdir %{_appdir}/%{name} -%define _bindir %{_pkgdir}/bin -%define _libdir %{_pkgdir}/lib -%define _resdir %{_pkgdir}/res -%define _shareddir %{_pkgdir}/shared -%define _sharedreddir %{_pkgdir}/shared/res -%define _manifestdir /opt/share/packages -%define _desktopicondir /opt/share/icons/default/small -%define _desktopicon %{_shortname}.png - -%prep -%setup -q - -%build -cmake \ - -DCMAKE_INSTALL_PREFIX=%{_pkgdir} \ - -DPACKAGE_NAME=%{name} \ - -DBINDIR=%{_bindir} \ - -DLIBDIR=%{_libdir} \ - -DRESDIR=%{_resdir} \ - -DMANIFESTDIR=%{_manifestdir} \ - -DSHAREDDIR=%{_sharedreddir} \ - -DDESKTOP_ICONDIR=%{_desktopicondir} \ - -DDESKTOP_ICON=%{_desktopicon} \ - -DNAME=%{_shortname} \ - -DVERSION=%{version} \ - -DCMAKE_BUILD_TYPE=%{BUILD_TYPE} \ - -make %{?jobs:-j%jobs} - -%install -%make_install -mkdir -p %{buildroot}%{_appdir}/%{name} -%clean -rm -rf %{buildroot} - -%post -chown -R 5000:5000 %{_resdir} -chsmack -a %{name} %{_resdir} -%postun - -%files -%{_manifestdir}/%{name}.xml -%{_desktopicondir}/%{_desktopicon} -%{_sharedreddir}/%{_desktopicon} -%{_libdir}/lib%{_shortname}.so - - - diff --git a/tbt-ime/project_def.prop b/tbt-ime/project_def.prop index 4e53d4b..b2ec897 100644 --- a/tbt-ime/project_def.prop +++ b/tbt-ime/project_def.prop @@ -1,9 +1,9 @@ APPNAME = tbt-ime -type = sharedLib -profile = mobile-2.4 +type = app +profile = mobile-3.0 -USER_SRCS = src/tbt-ime.c +USER_SRCS = src/*.c USER_DEFS = USER_INC_DIRS = inc USER_OBJS = diff --git a/tbt-ime/res/edje/tbt_ime.edc b/tbt-ime/res/edje/tbt_ime.edc new file mode 100644 index 0000000..5298482 --- /dev/null +++ b/tbt-ime/res/edje/tbt_ime.edc @@ -0,0 +1,953 @@ +collections { + base_scale: 1.0; + group { "main"; + + parts { + part { + name:"panel.bg"; + type: RECT; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + color: 59 89 152 255; + } + } + + + part { + name: "btn_00"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1/5 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_01"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/5 0.0; + } + rel2 { + relative: 2/5 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_02"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/5 0.0; + } + rel2 { + relative: 3/5 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_03"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 3/5 0.0; + } + rel2 { + relative: 5/5 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_10"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 1/4; + } + rel2 { + relative: 1/5 2/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_11"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/5 1/4; + } + rel2 { + relative: 2/5 2/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_12"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/5 1/4; + } + rel2 { + relative: 3/5 2/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_13"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 3/5 1/4; + } + rel2 { + relative: 4/5 2/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_14"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 4/5 1/4; + } + rel2 { + relative: 5/5 2/4; + } + fixed: 1 1; + } + } + + + part { + name: "btn_20"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 2/4; + } + rel2 { + relative: 1/5 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_21"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/5 2/4; + } + rel2 { + relative: 2/5 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_22"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/5 2/4; + } + rel2 { + relative: 3/5 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_23"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 3/5 2/4; + } + rel2 { + relative: 4/5 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_24"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 4/5 2/4; + } + rel2 { + relative: 5/5 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_30"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 3/4; + } + rel2 { + relative: 5/5 4/4; + } + fixed: 1 1; + } + } + } + } + + group { "group_1"; + + parts { + part { + name:"panel.bg"; + type: RECT; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + color: 59 89 152 255; + } + } + + + part { + name: "btn_00"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1/3 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_01"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/3 0.0; + } + rel2 { + relative: 2/3 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_02"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/3 0.0; + } + rel2 { + relative: 3/3 1/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_10"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 1/4; + } + rel2 { + relative: 1/3 2/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_11"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/3 1/4; + } + rel2 { + relative: 2/3 2/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_12"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/3 1/4; + } + rel2 { + relative: 3/3 2/4; + } + fixed: 1 1; + } + } + + + part { + name: "btn_20"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 2/4; + } + rel2 { + relative: 1/3 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_21"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/3 2/4; + } + rel2 { + relative: 2/3 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_22"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/3 2/4; + } + rel2 { + relative: 3/3 3/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_30"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 3/4; + } + rel2 { + relative: 1/3 4/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_31"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 1/3 3/4; + } + rel2 { + relative: 2/3 4/4; + } + fixed: 1 1; + } + } + + part { + name: "btn_32"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 2/3 3/4; + } + rel2 { + relative: 3/3 4/4; + } + fixed: 1 1; + } + } + } + } + + group { "group_2"; + + parts { + part { + name:"panel.bg"; + type: RECT; + description{ + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + color: 59 89 152 255; + } + } + + part { + name: "btn_00"; + type:SWALLOW; + description{ + state: "default" 0.0; + rel1 { + relative: 0 0; + } + rel2 { + relative: 1 1; + } + fixed: 1 1; + } + } + } + } + group { name: "elm/button/base/transparent"; + data { + item: "focus_highlight" "on"; + } + images { + image: image_normal COMP; + } + script { + public mouse_down = 0; + public multi_down = 0; + } + parts { + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + } + } + part { name: "over2"; + type: RECT; + repeat_events: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + part { name: "over3"; + type: RECT; + repeat_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { name: "button_press"; + signal: "mouse,down,1*"; + source: "over2"; + script { + if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) + { + set_int(mouse_down, 1); + emit("elm,action,press", ""); + } + } + } + program { name: "button_unpress"; + signal: "mouse,up,1*"; + source: "over3"; + script { + if (get_int(mouse_down) == 1) + { + set_int(mouse_down, 0); + emit("elm,action,unpress", ""); + } + } + } + program { name: "button_click"; + signal: "mouse,clicked,1"; + source: "over2"; + script { + if (get_int(multi_down) == 0) { + emit("elm,action,click", ""); + } + } + } + program { name: "multi_down"; + signal: "elm,action,multi,down"; + source: "elm"; + script { + set_int(multi_down, 1); + } + } + program { + name: "multi_up"; + signal: "elm,action,multi,up"; + source: "elm"; + script { + set_int(multi_down, 0); + } + } + } + } + + group { name: "elm/button/base/chucknorris"; + + alias: "elm/button/base/default"; + + parts { + + part { name: "border"; + + type: RECT; + + description { state: "default" 0.0; + + color: 0 0 0 255; + + } + + description { state: "in" 0.0; + + color: 50 180 180 255; + + } + + } + + part { name: "base"; + + type: RECT; + + mouse_events: 1; + + description { state: "default" 0.0; + + rel1.to: "border"; + + rel1.offset: 1 1; + + rel2.to: "border"; + + rel2.offset: -2 -2; + color: 59 89 152 255; + + } + + description { state: "disabled" 0.0; + + inherit: "default" 0.0; + + color: 59 89 152 255; + + } + + } + + part { name: "elm.swallow.content"; + + type: SWALLOW; + + mouse_events: 0; + + description { state: "default" 0.0; + + fixed: 1 0; + + visible: 0; + + align: 0.0 0.5; + + rel1.offset: 4 4; + + rel2.offset: 3 -5; + + rel2.relative: 0.0 1.0; + + } + + description { state: "visible" 0.0; + + inherit: "default" 0.0; + + visible: 1; + + aspect: 1.0 1.0; + + aspect_preference: VERTICAL; + + rel2.offset: 4 -5; + + } + + description { state: "icononly" 0.0; + + inherit: "default" 0.0; + + fixed: 0 0; + + visible: 1; + + align: 0.5 0.5; + + aspect: 1.0 1.0; + + aspect_preference: VERTICAL; + + rel2.offset: -5 -5; + + rel2.relative: 1.0 1.0; + + } + + } + + part { name: "elm.text"; + + type: TEXT; + + mouse_events: 0; + + scale: 1; + + description { state: "default" 0.0; + + visible: 0; + + rel1.to_x: "elm.swallow.content"; + + rel1.relative: 1.0 0.0; + + rel1.offset: 0 4; + + rel2.offset: -5 -5; + + color: 255 255 255 255; + + text { + + font: "Sans"; + + size: 10; + + min: 0 0; + + text_class: "button"; + + } + + } + + description { state: "visible" 0.0; + + inherit: "default" 0.0; + + visible: 1; + + text.min: 1 1; + + } + + description { state: "disabled" 0.0; + + inherit: "default" 0.0; + + } + + description { state: "disabled_visible" 0.0; + + inherit: "default" 0.0; + + visible: 1; + + text.min: 1 1; + + } + + } + + programs { + + program { name: "button_mouse_in"; + + signal: "mouse,in"; + + source: "base"; + + action: STATE_SET "in" 0.0; + + target: "border"; + + } + + program { name: "button_mouse_out"; + + signal: "mouse,out"; + + source: "base"; + + action: STATE_SET "default" 0.0; + + target: "border"; + + } + + program { name: "button_unclick"; + + signal: "mouse,up,1"; + + source: "base"; + + action: SIGNAL_EMIT "elm,action,click" ""; + + } + + program { name: "button_click"; + + signal: "mouse,down,1"; + + source: "base"; + + } + + program { name: "text_show"; + + signal: "elm,state,text,visible"; + + source: "elm"; + + script { + + new st[31]; + + new Float:vl; + + get_state(PART:"elm.swallow.content", st, 30, vl); + + if (!strcmp(st, "icononly")) + + set_state(PART:"elm.swallow.content", "visible", 0.0); + + set_state(PART:"elm.text", "visible", 0.0); + + } + + } + + program { name: "text_hide"; + + signal: "elm,state,text,hidden"; + + source: "elm"; + + script { + + new st[31]; + + new Float:vl; + + get_state(PART:"elm.swallow.content", st, 30, vl); + + if (!strcmp(st, "visible")) + + set_state(PART:"elm.swallow.content", "icononly", 0.0); + + set_state(PART:"elm.text", "default", 0.0); + + } + + } + + program { name: "icon_show"; + + signal: "elm,state,icon,visible"; + + source: "elm"; + + script { + + new st[31]; + + new Float:vl; + + get_state(PART:"elm.text", st, 30, vl); + + if (!strcmp(st, "visible")) + + set_state(PART:"elm.swallow.content", "visible", 0.0); + + else + + set_state(PART:"elm.swallow.content", "icononly", 0.0); + + } + + } + + program { name: "icon_hide"; + + signal: "elm,state,icon,hidden"; + + source: "elm"; + + action: STATE_SET "default" 0.0; + + target: "elm.swallow.content"; + + } + + program { name: "disable"; + + signal: "elm,state,disabled"; + + source: "elm"; + + action: STATE_SET "disabled" 0.0; + + target: "base"; + + after: "disable_text"; + + } + + program { name: "disable_text"; + + script { + + new st[31]; + + new Float:vl; + + get_state(PART:"elm.text", st, 30, vl); + + if (!strcmp(st, "visible")) + + set_state(PART:"elm.text", "disabled_visible", 0.0); + + else + + set_state(PART:"elm.text", "disabled", 0.0); + + } + + } + + program { name: "enable"; + + signal: "elm,state,enabled"; + + source: "elm"; + + action: STATE_SET "default" 0.0; + + target: "base"; + + after: "enable_text"; + + } + + program { name: "enable_text"; + + script { + + new st[31]; + + new Float:vl; + + get_state(PART:"elm.text", st, 30, vl); + + if (!strcmp(st, "disabled_visible")) + + set_state(PART:"elm.text", "visible", 0.0); + + else + + set_state(PART:"elm.text", "default", 0.0); + + } + + } + + } + + } + + } +} + diff --git a/tbt-ime/src/tbt-ime.c b/tbt-ime/src/tbt-ime.c old mode 100755 new mode 100644 index c1193cd..24fd00e --- a/tbt-ime/src/tbt-ime.c +++ b/tbt-ime/src/tbt-ime.c @@ -15,8 +15,6 @@ * */ - - #include #include #include @@ -24,13 +22,16 @@ #include #include "tbt-ime.h" #include "logger.h" +#include +#include -#ifdef LOG_TAG -#undef LOG_TAG -#endif -#define LOG_TAG "IME_TBT" +#define SAFE_DELETE(a) if( (a) != NULL ) free (a); (a) = NULL; +#define EDJ_FILE "edje/tbt_ime.edj" +#define GRP_MAIN "main" +#define GRP_1 "group_1" +#define GRP_2 "group_2" -static Evas_Object *info; +static Evas_Object* layout = NULL; static char MSG[100]; static int Mlayout = -1; static int Mlvar = -1; @@ -50,6 +51,8 @@ typedef struct _ime_data Elm_Input_Panel_Layout ime_layout; Evas_Object *option_window; Eina_List *list; + bool is_device_input_event_set; + Evas_Object* rotation_info_btn; }ime_data; @@ -57,7 +60,6 @@ static void ise_template_create_cb(void *user_data); static void ise_template_terminate_cb(void *user_data); static void ise_template_show_cb(int ic, ime_context_h context, void *user_data); static void ise_template_hide_cb(int ic, void *user_data); - static void ise_template_cursor_position_updated_cb(int cursor_pos, void *user_data); static void ise_template_surrounding_text_updated_cb(int ic, const char *text, int cursor, void *user_data); static void ise_template_focus_out_cb(int ic, void *user_data); @@ -76,6 +78,10 @@ static void ise_template_imdata_set_cb(void *data, unsigned int data_length, voi static void ise_template_accessibility_state_changed_cb(bool state, void *user_data); static void ise_template_option_window_created_cb(Evas_Object *window, ime_option_window_type_e type, void *user_data); static void ise_template_option_window_destroyed_cb(Evas_Object *window, void *user_data); +static char *format_string(const char *format, ...); +static char* get_ecore_imf_device_subclass(Ecore_IMF_Device_Subclass e); +static char* get_ecore_imf_device_class(Ecore_IMF_Device_Class e); +static void _enter_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); /** @@ -87,26 +93,20 @@ static void ise_template_option_window_destroyed_cb(Evas_Object *window, void *u */ static char* _get_ime_error(int ret) { - -switch(ret) -{ + switch (ret) + { case IME_ERROR_INVALID_PARAMETER: - return "IME_ERROR_INVALID_PARAMETER"; - + return "IME_ERROR_INVALID_PARAMETER"; case IME_ERROR_NO_CALLBACK_FUNCTION: - return "IME_ERROR_NO_CALLBACK_FUNCTION"; - + return "IME_ERROR_NO_CALLBACK_FUNCTION"; case IME_ERROR_PERMISSION_DENIED: - return "IME_ERROR_PERMISSION_DENIED"; - + return "IME_ERROR_PERMISSION_DENIED"; case IME_ERROR_NOT_RUNNING: - return "IME_ERROR_NOT_RUNNING"; - + return "IME_ERROR_NOT_RUNNING"; case IME_ERROR_NONE: - return "IME_ERROR_NONE"; - + return "IME_ERROR_NONE"; case IME_ERROR_OPERATION_FAILED: - return "IME_ERROR_OPERATION_FAILED"; + return "IME_ERROR_OPERATION_FAILED"; } return NULL; @@ -123,33 +123,10 @@ switch(ret) static void _button_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { int result; - char *str = elm_object_text_get(obj); - - int i; - int start = -1; - int end = -1; - int index = 0 ; - char txt[10]; - for(i = 0; i < strlen(str); i++) - { - if(str[i] == '>') - { - start = i +1 ; - int j; - for(j =start; str[j]!= '<'; j++) - { - dlog_print(DLOG_DEBUG, LOG_TAG,"Comitting: %c",str[j]); - txt[index++] = str[j]; - } - txt[index] = '\0'; - dlog_print(DLOG_DEBUG, LOG_TAG,"Comit str: %s",txt); - break; - } - } - - result = ime_commit_string(txt); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_commit_string %s",_get_ime_error(result)); - + const char *str = elm_object_text_get(obj); + DBG("text: %s", str); + result = ime_commit_string(str); + DBG("ime_commit_string %s",_get_ime_error(result)); } @@ -163,13 +140,10 @@ static void _button_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *even static void _back_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { int ret = ime_create_option_window(); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_create_option_window :%s",_get_ime_error(ret)); RETM_IF(IME_ERROR_NONE!=ret, "ime_create_option_window fails :%s",_get_ime_error(ret)); ret = ime_send_key_event(IME_KEY_BackSpace, IME_KEY_MASK_PRESSED, false); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); ret = ime_send_key_event(IME_KEY_BackSpace, IME_KEY_MASK_RELEASED, false); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); } @@ -184,35 +158,13 @@ static void _back_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *ev static void _space_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { int ret = ime_create_option_window(); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_create_option_window :%d",ret); _get_ime_error(ret); ret = ime_send_key_event(IME_KEY_space, IME_KEY_MASK_PRESSED, true); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); ret = ime_send_key_event(IME_KEY_space, IME_KEY_MASK_RELEASED, true); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); } -/** - * @function _enter_key_clicked - * @since_tizen 2.3 - * @description Enter Key Clicked - * @parameter void*: Void Pointer, Evas_Object*: Evas Object Pointer, void*: Void Pointer - * @return static void - */ -static void _enter_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - int ret = ime_create_option_window(); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_create_option_window :%d",ret); - _get_ime_error(ret); - ret = ime_send_key_event(IME_KEY_Return, IME_KEY_MASK_PRESSED, true); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); - RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); - ret = ime_send_key_event(IME_KEY_Return, IME_KEY_MASK_RELEASED, true); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); - RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); -} /** * @function _get_surrounding_key_clicked @@ -223,7 +175,7 @@ static void _enter_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *e */ static void _get_surrounding_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - dlog_print(DLOG_DEBUG, LOG_TAG,"Get surrounding text"); + DBG("Get surrounding text"); int ret = ime_request_surrounding_text(-1, -1); RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); } @@ -238,10 +190,9 @@ static void _get_surrounding_key_clicked(void *data, Evas_Object *obj EINA_UNUSE */ static void _delete_surrounding_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - dlog_print(DLOG_DEBUG, LOG_TAG,"Delete surrounding text"); - int ret = ime_delete_surrounding_text(-1, 1); - dlog_print(DLOG_DEBUG, LOG_TAG, "ime_send_key_event :%s",_get_ime_error(ret)); - RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); + DBG("Delete surrounding text"); + int ret = ime_delete_surrounding_text(-1, 1); + RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); } @@ -254,47 +205,45 @@ static void _delete_surrounding_key_clicked(void *data, Evas_Object *obj EINA_UN */ static void _preedit_on_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - dlog_print(DLOG_DEBUG, LOG_TAG,"On Preedit text"); - ime_data *this = (ime_data*)data; - RETM_IF(!this, "data is NULL"); - int ret; - ret = ime_show_preedit_string(); - dlog_print(DLOG_DEBUG, LOG_TAG , " ime_show_preedit_string : %s", _get_ime_error(ret)); - RETM_IF(IME_ERROR_NONE!=ret, "ime_show_preedit_string fails :%s",_get_ime_error(ret)); - this->list = NULL; - - ime_preedit_attribute *attr = calloc(1, sizeof (ime_preedit_attribute)); - RETM_IF(!attr, "calloc failed"); - attr->start = 0; - attr->length = 1; - attr->type = IME_ATTR_FONTSTYLE; - attr->value = IME_ATTR_FONTSTYLE_UNDERLINE; - this->list = eina_list_append(this->list, attr); - - attr = calloc(1, sizeof (ime_preedit_attribute)); - RETM_IF(!attr, "calloc failed"); - attr->start = 1; - attr->length = 1; - attr->type = IME_ATTR_FONTSTYLE; - attr->value = IME_ATTR_FONTSTYLE_HIGHLIGHT; - this->list = eina_list_append(this->list, attr); - - attr = calloc(1, sizeof (ime_preedit_attribute)); - RETM_IF(!attr, "calloc failed"); - attr->start = 2; - attr->length = 1; - attr->type = IME_ATTR_FONTSTYLE; - attr->value = IME_ATTR_FONTSTYLE_REVERSAL; - this->list = eina_list_append(this->list, attr); - - ret = ime_update_preedit_string("abcd", this->list); - dlog_print(DLOG_DEBUG, LOG_TAG , " ime_update_preedit_string : %s",_get_ime_error(ret)); - RETM_IF(IME_ERROR_NONE!=ret, "ime_update_preedit_string fails :%s",_get_ime_error(ret)); - if (ret != IME_ERROR_NONE) { - - EINA_LIST_FREE(this->list, attr) - free(attr); - } + DBG("On Preedit text"); + ime_data *this = (ime_data*)data; + RETM_IF(!this, "data is NULL"); + int ret; + ret = ime_show_preedit_string(); + RETM_IF(IME_ERROR_NONE!=ret, "ime_show_preedit_string fails :%s",_get_ime_error(ret)); + this->list = NULL; + + ime_preedit_attribute *attr = calloc(1, sizeof (ime_preedit_attribute)); + RETM_IF(!attr, "calloc failed"); + attr->start = 0; + attr->length = 1; + attr->type = IME_ATTR_FONTSTYLE; + attr->value = IME_ATTR_FONTSTYLE_UNDERLINE; + this->list = eina_list_append(this->list, attr); + + attr = calloc(1, sizeof (ime_preedit_attribute)); + RETM_IF(!attr, "calloc failed"); + attr->start = 1; + attr->length = 1; + attr->type = IME_ATTR_FONTSTYLE; + attr->value = IME_ATTR_FONTSTYLE_HIGHLIGHT; + this->list = eina_list_append(this->list, attr); + + attr = calloc(1, sizeof (ime_preedit_attribute)); + RETM_IF(!attr, "calloc failed"); + attr->start = 2; + attr->length = 1; + attr->type = IME_ATTR_FONTSTYLE; + attr->value = IME_ATTR_FONTSTYLE_REVERSAL; + this->list = eina_list_append(this->list, attr); + + ret = ime_update_preedit_string("abcd", this->list); + RETM_IF(IME_ERROR_NONE!=ret, "ime_update_preedit_string fails :%s",_get_ime_error(ret)); + if (ret != IME_ERROR_NONE) + { + EINA_LIST_FREE(this->list, attr) + SAFE_DELETE(attr); + } } @@ -308,9 +257,8 @@ static void _preedit_on_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, vo */ static void _preedit_off_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - dlog_print(DLOG_DEBUG, LOG_TAG,"On Preedit text"); + DBG("On Preedit text"); int ret = ime_hide_preedit_string(); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_hide_preedit_string %s",_get_ime_error(ret)); RETM_IF(IME_ERROR_NONE!=ret, "ime_hide_preedit_string fails :%s",_get_ime_error(ret)); } @@ -324,30 +272,75 @@ static void _preedit_off_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, v */ static Evas_Object *_create_key_button(Evas_Object *parent, char *str) { + DBG("_create_key_button"); char *markup_str = NULL; - Evas_Object *btn = elm_button_add(parent); + elm_object_style_set(btn, "default"); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); - if (str) { + if (str) + { markup_str = elm_entry_utf8_to_markup(str); - - if (markup_str) { - char buf[100] ; - snprintf(buf, sizeof(buf), "%s", markup_str); - elm_object_text_set(btn, buf); - free(markup_str); - markup_str = NULL; + if (markup_str) + { + elm_object_text_set(btn, markup_str); + SAFE_DELETE(markup_str); } } - - //elm_object_focus_allow_set(btn, EINA_FALSE); evas_object_show(btn); - return btn; } +void view_init_keypad_theme(char *th) +{ + elm_theme_overlay_add(NULL, th); + elm_theme_extension_add(NULL, th); +} + + +void data_get_resource_path(const char *file_in, char *file_path_out, int file_path_max) +{ + char *res_path = app_get_resource_path(); + if (res_path) { + snprintf(file_path_out, file_path_max, "%s%s", res_path, file_in); + free(res_path); + } +} + +static Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data) +{ + DBG("view_create_layout"); + Evas_Object *layout = NULL; + if (parent == NULL) + { + dlog_print(DLOG_ERROR, LOG_TAG, "parent is NULL."); + return NULL; + } + /* Create layout by EDC(edje file) */ + layout = elm_layout_add(parent); + elm_layout_file_set(layout, file_path, group_name); + /* Layout size setting */ + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + if (cb_function) + eext_object_event_callback_add(layout, EEXT_CALLBACK_BACK, cb_function, user_data); + evas_object_show(layout); + + return layout; +} + +static void _enter_key_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + int ret = ime_create_option_window(); + DBG("ime_create_option_window :%d",ret); + _get_ime_error(ret); + ret = ime_send_key_event(IME_KEY_Return, IME_KEY_MASK_PRESSED, true); + DBG("ime_send_key_event :%s",_get_ime_error(ret)); + RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); + ret = ime_send_key_event(IME_KEY_Return, IME_KEY_MASK_RELEASED, true); + DBG("ime_send_key_event :%s",_get_ime_error(ret)); + RETM_IF(IME_ERROR_NONE!=ret, "ime_send_key_event fails :%s",_get_ime_error(ret)); +} + /** * @function ise_template_create_cb @@ -358,211 +351,270 @@ static Evas_Object *_create_key_button(Evas_Object *parent, char *str) */ static void ise_template_create_cb(void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"Create"); + DBG("Create"); ime_data *data = (ime_data*)user_data; unsigned int i = 0; - - Evas_Object *btn = NULL; - int w, h; - int ret; - - Evas_Object *ime_win = ime_get_main_window(); - if (!ime_win) { - DBG("Can't get main window: %d", get_last_result); - return; - } - - elm_win_screen_size_get(ime_win, NULL, NULL, &w, &h); - evas_object_resize(ime_win, w, h); - //evas_object_resize(ime_win, 480, 800); - - ret = ime_set_size(w, h*2/5, h, w*3/5); - RETM_IF(IME_ERROR_NONE!=ret, "ime_set_size failed %s:",_get_ime_error(ret)); - dlog_print(DLOG_DEBUG, LOG_TAG,"w=%d, h=%d", w, h); - - Evas_Object *bg = elm_bg_add(ime_win); - evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_win_resize_object_add(ime_win, bg); - evas_object_show(bg); - - Evas_Object *table = elm_table_add(ime_win); - evas_object_move(table, 20, h*2/5); - elm_win_resize_object_add(ime_win, table); - - if(data->ime_layout == ELM_INPUT_PANEL_LAYOUT_NUMBER) + Evas_Object *btn = NULL; + int w, h; + char* str; + Evas_Object *ime_win; + ime_win = ime_get_main_window(); + RETM_IF(!ime_win, "Can't get main window: %d", get_last_result()); + elm_win_screen_size_get(ime_win, NULL, NULL, &w, &h); + ime_set_size(w, h*2/5, h, w*2/5); + + Evas_Object *bg = elm_bg_add(ime_win); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(ime_win, bg); + evas_object_show(bg); + + data->is_device_input_event_set = false; + + char file_path[PATH_MAX] = { 0, }; + /* Get the path of EDJ file */ + data_get_resource_path(EDJ_FILE, file_path, sizeof(file_path)); + DBG("EDC FILE PATH: %s", file_path); + /* Initialize the new theme using EDJ file */ + view_init_keypad_theme(file_path); + + + if(data->ime_layout == ELM_INPUT_PANEL_LAYOUT_NUMBER) { + layout = view_create_layout(ime_win, file_path, GRP_MAIN, NULL, NULL); // row 1 - // char *keypad_row1[] = {"q", "w", "e", "r", "t", "y", "u"}; char *keypad_row1[] = {"1", "2", "3"}; - for (i=0; i < sizeof(keypad_row1)/sizeof(keypad_row1[0]); i++) { - btn = _create_key_button(table, keypad_row1[i]); + for (i=0; i < sizeof(keypad_row1)/sizeof(keypad_row1[0]); i++) + { + btn = _create_key_button(layout, keypad_row1[i]); evas_object_smart_callback_add(btn, "clicked", _button_clicked, NULL); - elm_table_pack(table, btn, i, 0, 1, 1); + str = format_string("%s%d%d", "btn_", 0, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } - - btn = _create_key_button(table, "<-BACK"); + btn = _create_key_button(layout, "←"); evas_object_smart_callback_add(btn, "clicked", _back_key_clicked, NULL); - elm_table_pack(table, btn, i, 0, 2, 1); + str = format_string("%s%d%d", "btn_", 0, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // row 2 - //char *keypad_row2[] = {"a", "s", "d", "f", "g", "h", "j", "k", "l"}; char *keypad_row2[] = {"4", "5", "6", "0"}; - for (i=0; i < sizeof(keypad_row2)/sizeof(keypad_row2[0]); i++) { - btn = _create_key_button(table, keypad_row2[i]); + for (i=0; i < sizeof(keypad_row2)/sizeof(keypad_row2[0]); i++) + { + btn = _create_key_button(layout, keypad_row2[i]); evas_object_smart_callback_add(btn, "clicked", _button_clicked, NULL); - elm_table_pack(table, btn, i, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } // Add get surrounding text key - btn = _create_key_button(table, "GS"); + btn = _create_key_button(layout, "GS"); evas_object_smart_callback_add(btn, "clicked", _get_surrounding_key_clicked, NULL); - elm_table_pack(table, btn, i, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // row 3 - //char *keypad_row3[] = {"z", "x", "c", "v", "b", "n", "m"}; char *keypad_row3[] = {"7", "8", "9"}; - for (i=0; i < sizeof(keypad_row3)/sizeof(keypad_row3[0]); i++) { - Evas_Object *btn = _create_key_button(table, keypad_row3[i]); + for (i=0; i < sizeof(keypad_row3)/sizeof(keypad_row3[0]); i++) + { + Evas_Object *btn = _create_key_button(layout, keypad_row3[i]); evas_object_smart_callback_add(btn, "clicked", _button_clicked, NULL); - elm_table_pack(table, btn, i, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } // Add delete surrounding text key - btn = _create_key_button(table, "DS"); + btn = _create_key_button(layout, "DS"); evas_object_smart_callback_add(btn, "clicked", _delete_surrounding_key_clicked, NULL); - elm_table_pack(table, btn, 3, 2, 1, 1); - + str = format_string("%s%d%d", "btn_", 2, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // Add space key - btn = _create_key_button(table, "Spc"); + btn = _create_key_button(layout, "␣"); evas_object_smart_callback_add(btn, "clicked", _space_key_clicked, NULL); - elm_table_pack(table, btn, 4, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i+1); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // row 4 - - btn = _create_key_button(table, (data->info_msg == NULL)?"INFO":data->info_msg); - elm_table_pack(table, btn, 0, 3, 5, 1); + btn = _create_key_button(layout, (data->info_msg == NULL)?"INFO":data->info_msg); + str = format_string("%s%d%d", "btn_", 3, 0); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } else if(data->ime_layout == ELM_INPUT_PANEL_LAYOUT_NORMAL) { + layout = view_create_layout(ime_win, file_path, GRP_MAIN, NULL, NULL); // row 1 - // char *keypad_row1[] = {"q", "w", "e", "r", "t", "y", "u"}; char *keypad_row1[] = {"a", "b", "c"}; - for (i=0; i < sizeof(keypad_row1)/sizeof(keypad_row1[0]); i++) { - btn = _create_key_button(table, keypad_row1[i]); + for (i=0; i < sizeof(keypad_row1)/sizeof(keypad_row1[0]); i++) + { + btn = _create_key_button(layout, keypad_row1[i]); evas_object_smart_callback_add(btn, "clicked", _button_clicked, NULL); - elm_table_pack(table, btn, i, 0, 1, 1); + str = format_string("%s%d%d", "btn_", 0, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } - // Add backspace key - btn = _create_key_button(table, "<-BACK"); + btn = _create_key_button(layout, "←"); evas_object_smart_callback_add(btn, "clicked", _back_key_clicked, NULL); - elm_table_pack(table, btn, i, 0, 2, 1); + str = format_string("%s%d%d", "btn_", 0, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // row 2 - //char *keypad_row2[] = {"a", "s", "d", "f", "g", "h", "j", "k", "l"}; char *keypad_row2[] = {"d", "e", "f"}; - for (i=0; i < sizeof(keypad_row2)/sizeof(keypad_row2[0]); i++) { - btn = _create_key_button(table, keypad_row2[i]); + for (i=0; i < sizeof(keypad_row2)/sizeof(keypad_row2[0]); i++) + { + btn = _create_key_button(layout, keypad_row2[i]); evas_object_smart_callback_add(btn, "clicked", _button_clicked, NULL); - elm_table_pack(table, btn, i, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } - // Add delete surrounding text key - btn = _create_key_button(table, "Enter"); + + //Add get return text key + btn = _create_key_button(layout, "⏎"); evas_object_smart_callback_add(btn, "clicked", _enter_key_clicked, NULL); - elm_table_pack(table, btn, i++, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + // Add get surrounding text key - btn = _create_key_button(table, "Prid On"); + btn = _create_key_button(layout, "Prid On"); evas_object_smart_callback_add(btn, "clicked", _preedit_on_key_clicked, data); - elm_table_pack(table, btn, i, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i+1); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // row 3 - //char *keypad_row3[] = {"z", "x", "c", "v", "b", "n", "m"}; char *keypad_row3[] = {"h", "i", "t"}; - for (i=0; i < sizeof(keypad_row3)/sizeof(keypad_row3[0]); i++) { - Evas_Object *btn = _create_key_button(table, keypad_row3[i]); + for (i=0; i < sizeof(keypad_row3)/sizeof(keypad_row3[0]); i++) + { + Evas_Object *btn = _create_key_button(layout, keypad_row3[i]); evas_object_smart_callback_add(btn, "clicked", _button_clicked, NULL); - elm_table_pack(table, btn, i, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } // Add delete surrounding text key - btn = _create_key_button(table, "Prid Off"); + btn = _create_key_button(layout, "Prid Off"); evas_object_smart_callback_add(btn, "clicked", _preedit_off_key_clicked, NULL); - elm_table_pack(table, btn, i++, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // Add space key - btn = _create_key_button(table, "Spc"); + btn = _create_key_button(layout, "␣"); evas_object_smart_callback_add(btn, "clicked", _space_key_clicked, NULL); - elm_table_pack(table, btn, i, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i+1); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); // row 4 - - btn = _create_key_button(table, (data->info_msg == NULL)?"INFO":data->info_msg); - //btn = _create_key_button(table, (MSG == NULL)?"INFO":MSG); - elm_table_pack(table, btn, 0, 3, 5, 1); + btn = _create_key_button(layout, (data->info_msg == NULL)?"INFO":data->info_msg); + str = format_string("%s%d%d", "btn_", 3, 0); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } else if(data->ime_layout == ELM_INPUT_PANEL_LAYOUT_IP) { + layout = view_create_layout(ime_win, file_path, GRP_2, NULL, NULL); if(data->info_msg) { - dlog_print(DLOG_DEBUG, LOG_TAG,"MSG ;%s", MSG); + DBG("MSG :%s", MSG); } - //btn = _create_key_button(table, (data->info_msg == NULL)?"INFO":data->info_msg); - btn = _create_key_button(table, (MSG[0] == NULL)?"INFO":MSG); - elm_table_pack(table, btn, 0, 0, 1, 1); + RETM_IF(NULL == data->info_msg, "Message is NULL"); + btn = _create_key_button(layout, ((char*)MSG == NULL || strlen(MSG) == 0)?data->info_msg:MSG); + str = format_string("%s%d%d", "btn_", 0, 0); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); } else if(data->ime_layout == ELM_INPUT_PANEL_LAYOUT_HEX) { - // char *keypad_row1[] = {"q", "w", "e", "r", "t", "y", "u"}; - + layout = view_create_layout(ime_win, file_path, GRP_1, NULL, NULL); //row 1 i = 0; - - btn = _create_key_button(table, (Mlayout >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 0, 1, 1); - - - btn = _create_key_button(table, (Mlvar >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 0, 1, 1); - - btn = _create_key_button(table, (Mcursor >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 0, 1, 1); + btn = _create_key_button(layout, (Mlayout >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 0, 1, 1); + str = format_string("%s%d%d", "btn_", 0, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Mlvar >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 0, 1, 1); + str = format_string("%s%d%d", "btn_", 0, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Mcursor >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 0, 1, 1); + str = format_string("%s%d%d", "btn_", 0, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); //row 2 i = 0; - btn = _create_key_button(table, (Mautocap >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 1, 1, 1); - - btn = _create_key_button(table, (Mrkeytype >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 1, 1, 1); - - btn = _create_key_button(table, (Mrkeystate >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 1, 1, 1); - + btn = _create_key_button(layout, (Mautocap >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Mrkeytype >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Mrkeystate >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 1, 1, 1); + str = format_string("%s%d%d", "btn_", 1, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); //row 3 i = 0; - btn = _create_key_button(table, (Mpred >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 2, 1, 1); - - btn = _create_key_button(table, (Mpassmod >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 2, 1, 1); - - btn = _create_key_button(table, (Minhint >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 2, 1, 1); + btn = _create_key_button(layout, (Mpred >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Mpassmod >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Minhint >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 2, 1, 1); + str = format_string("%s%d%d", "btn_", 2, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); //row 4 i = 0; - btn = _create_key_button(table, (Mbidi >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 3, 1, 1); - - btn = _create_key_button(table, (Mlanguage >= 0)?"Pass":"Fail"); - elm_table_pack(table, btn, i++, 3, 1, 1); - - btn = _create_key_button(table, "Pass"); - elm_table_pack(table, btn, i++, 3, 1, 1); + btn = _create_key_button(layout, (Mbidi >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 3, 1, 1); + str = format_string("%s%d%d", "btn_", 3, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, (Mlanguage >= 0)?"Pass":"Fail"); + //elm_table_pack(table, btn, i++, 3, 1, 1); + str = format_string("%s%d%d", "btn_", 3, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + btn = _create_key_button(layout, "Pass"); + //elm_table_pack(table, btn, i++, 3, 1, 1); + str = format_string("%s%d%d", "btn_", 3, i++); + elm_object_part_content_set(layout, str, btn); + SAFE_DELETE(str); + } + if(layout) + { + elm_win_resize_object_add(ime_win, layout); + evas_object_show(layout); } - evas_object_show(table); } + /** * @function ise_template_terminate_cb * @since_tizen 2.3 @@ -572,15 +624,18 @@ static void ise_template_create_cb(void *user_data) */ static void ise_template_terminate_cb(void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"Terminate"); + DBG("Terminate"); ime_data *data = (ime_data *) user_data; // Release the resources + int ret; + if(data->option_window) { - int ret = ime_destroy_option_window(data->option_window); + ret = ime_destroy_option_window(data->option_window); RETM_IF(IME_ERROR_NONE != ret, "ime_destroy_option_window failed: %s",_get_ime_error(ret)); } eina_list_free(data->list); + } @@ -604,14 +659,12 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) Ecore_IMF_BiDi_Direction bidi; Ecore_IMF_Input_Panel_Lang language; - - dlog_print(DLOG_DEBUG, LOG_TAG,"Show: %d", ic); - + DBG("Show: %d", ic); int ret; if ((ret = ime_context_get_layout(context, &layout)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"layout: %d", layout); + DBG("layout: %d", layout); Mlayout = layout; } else @@ -620,7 +673,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_layout_variation(context, &layout_variation)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"layout variation: %d", layout_variation); + DBG("layout variation: %d", layout_variation); Mlvar = layout_variation; } else @@ -629,7 +682,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_cursor_position(context, &cursor_pos)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"cursor position: %d", cursor_pos); + DBG("cursor position: %d", cursor_pos); Mcursor = cursor_pos; } else @@ -638,7 +691,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_autocapital_type(context, &autocapital_type)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"autocapital_type: %d", autocapital_type); + DBG("autocapital_type: %d", autocapital_type); Mautocap = autocapital_type; } else @@ -647,7 +700,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_return_key_type(context, &return_key_type)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"return_key_type: %d", return_key_type); + DBG("return_key_type: %d", return_key_type); Mrkeytype = return_key_type; } else @@ -656,7 +709,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_return_key_state(context, &return_key_state)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"return_key_state: %d", return_key_state); + DBG("return_key_state: %d", return_key_state); Mrkeystate = return_key_state; } else @@ -665,7 +718,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_prediction_mode(context, &prediction_mode)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"prediction_mode: %d", prediction_mode); + DBG("prediction_mode: %d", prediction_mode); Mpred = prediction_mode; } else @@ -674,7 +727,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_password_mode(context, &password_mode)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"password_mode: %d", password_mode); + DBG("password_mode: %d", password_mode); Mpassmod = password_mode; } else @@ -683,7 +736,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_input_hint(context, &input_hint)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"input_hint: 0x%04x", input_hint); + DBG("input_hint: 0x%04x", input_hint); Minhint = input_hint; } else @@ -692,7 +745,7 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_bidi_direction(context, &bidi)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"bidi: %d", bidi); + DBG("bidi: %d", bidi); Mbidi = bidi; } else @@ -701,10 +754,10 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } if ((ret = ime_context_get_language(context, &language)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"language: %d", language); + DBG("language: %d", language); Mlanguage = language; //sprintf(data->info_msg_lang, "language: %d", (int)language); - data->ime_layout = layout; + data->ime_layout = (Elm_Input_Panel_Layout)layout; if(layout != ELM_INPUT_PANEL_LAYOUT_IP) { @@ -727,8 +780,8 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) } Evas_Object *ime_win = ime_get_main_window(); RETM_IF(NULL == ime_win, "ime_get_main_window failed"); - dlog_print(DLOG_DEBUG, LOG_TAG,"Ingoing MSG: %s", data->info_msg); - dlog_print(DLOG_DEBUG, LOG_TAG,"In going static MSG: %s", MSG); + DBG("Ingoing MSG: %s", data->info_msg); + DBG("In going static MSG: %s", MSG); ise_template_create_cb(data); evas_object_show(ime_win); } @@ -743,12 +796,8 @@ static void ise_template_show_cb(int ic, ime_context_h context, void *user_data) */ static void ise_template_hide_cb(int ic, void *user_data) { - ime_data *data = (ime_data*)user_data; - dlog_print(DLOG_DEBUG, LOG_TAG,"Hide: %d", ic); - + DBG("Hide: %d", ic); Evas_Object *ime_win = ime_get_main_window(); - RETM_IF(NULL == ime_win, "ime_get_main_window failed"); - evas_object_hide(ime_win); } @@ -762,8 +811,7 @@ static void ise_template_hide_cb(int ic, void *user_data) */ static void ise_template_cursor_position_updated_cb(int cursor_pos, void *user_data) { - ime_data *data = (ime_data*)user_data; - dlog_print(DLOG_DEBUG, LOG_TAG,"cursor position: %d", cursor_pos); + DBG("cursor position: %d", cursor_pos); } @@ -776,8 +824,7 @@ static void ise_template_cursor_position_updated_cb(int cursor_pos, void *user_d */ static void ise_template_surrounding_text_updated_cb(int ic, const char *text, int cursor, void *user_data) { - ime_data *data = (ime_data*)user_data; - dlog_print(DLOG_DEBUG, LOG_TAG,"text: %s, cursor: %d", text, cursor); + DBG("text: %s, cursor: %d", text, cursor); } @@ -790,8 +837,7 @@ static void ise_template_surrounding_text_updated_cb(int ic, const char *text, i */ static void ise_template_focus_out_cb(int ic, void *user_data) { - ime_data *data = (ime_data*)user_data; - dlog_print(DLOG_DEBUG, LOG_TAG,"focus out: %d", ic); + DBG("focus out: %d", ic); } @@ -804,8 +850,7 @@ static void ise_template_focus_out_cb(int ic, void *user_data) */ static void ise_template_focus_in_cb(int ic, void *user_data) { - ime_data *data = (ime_data*)user_data; - dlog_print(DLOG_DEBUG, LOG_TAG,"focus in: %d", ic); + DBG("focus in: %d", ic); } @@ -832,7 +877,7 @@ static void ise_template_return_key_type_set_cb(Ecore_IMF_Input_Panel_Return_Key */ static void ise_template_return_key_state_set_cb(bool disabled, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"Return key disabled: %d", disabled); + DBG("Return key disabled: %d", disabled); // Do a proper action } @@ -846,7 +891,7 @@ static void ise_template_return_key_state_set_cb(bool disabled, void *user_data) */ static void ise_template_layout_set_cb(Ecore_IMF_Input_Panel_Layout layout, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"layout: %d", layout); + DBG("layout: %d", layout); // Do a proper action } @@ -860,11 +905,14 @@ static void ise_template_layout_set_cb(Ecore_IMF_Input_Panel_Layout layout, void */ static bool ise_template_process_key_event_cb(ime_key_code_e keycode, ime_key_mask_e keymask, ime_device_info_h dev_info, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"keycode=0x%x, keymask=0x%x", keycode, keymask); + DBG("keycode=0x%x, keymask=0x%x", keycode, keymask); - if ((keymask & IME_KEY_MASK_CONTROL) || (keymask & IME_KEY_MASK_ALT) || (keymask & IME_KEY_MASK_META) || - - (keymask & IME_KEY_MASK_WIN) || (keymask & IME_KEY_MASK_HYPER)) { + if ((keymask & IME_KEY_MASK_CONTROL) || + (keymask & IME_KEY_MASK_ALT) || + (keymask & IME_KEY_MASK_META) || + (keymask & IME_KEY_MASK_WIN) || + (keymask & IME_KEY_MASK_HYPER)) + { return false; } @@ -872,29 +920,20 @@ static bool ise_template_process_key_event_cb(ime_key_code_e keycode, ime_key_ma Ecore_IMF_Device_Class dev_class; Ecore_IMF_Device_Subclass dev_subclass; int ret; - if ((ret = ime_device_info_get_name(dev_info, &dev_name)) == IME_ERROR_NONE) { + ret = ime_device_info_get_name(dev_info, &dev_name); + RETVM_IF(ret != IME_ERROR_NONE, false, "ime_device_info_get_name fails : %s", _get_ime_error(ret)); + DBG("dev_name: %s", dev_name==NULL?"NULL":dev_name); + SAFE_DELETE(dev_name); - dlog_print(DLOG_DEBUG, LOG_TAG,"dev_name: \"%s\"", dev_name==NULL?"NULL":dev_name); - free(dev_name); - } - else - { - RETVM_IF(true,false,"ime_device_info_get_name fails :",_get_ime_error(ret)); - } - if ((ret = ime_device_info_get_class(dev_info, &dev_class)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"dev_class: \"%s\"", dev_class==NULL?"NULL":dev_class); - } - else - { - RETVM_IF(true,false,"ime_device_info_get_class fails :",_get_ime_error(ret)); - } - if ((ret = ime_device_info_get_subclass(dev_info, &dev_subclass)) == IME_ERROR_NONE) { - dlog_print(DLOG_DEBUG, LOG_TAG,"dev_subclass: \"%s\"", dev_subclass==NULL?"NULL":dev_subclass); - } - else - { - RETVM_IF(true,false,"ime_device_info_get_subclass fails :",_get_ime_error(ret)); - } + // return false; + + ret = ime_device_info_get_class(dev_info, &dev_class); + RETVM_IF(ret!=IME_ERROR_NONE, false, "ime_device_info_get_class fails : %s", _get_ime_error(ret)); + DBG("dev_class: %s", get_ecore_imf_device_class(dev_class)); + + ret = ime_device_info_get_subclass(dev_info, &dev_subclass); + RETVM_IF(ret, false, "ime_device_info_get_subclass fails : %s", _get_ime_error(ret)); + DBG("dev_subclass: %s", get_ecore_imf_device_subclass(dev_subclass)); return false; } @@ -909,21 +948,18 @@ static bool ise_template_process_key_event_cb(ime_key_code_e keycode, ime_key_ma */ static void ise_template_display_language_changed_cb(const char *language, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_display_language_changed_cb language: %s", language); + DBG("ise_template_display_language_changed_cb language: %s", language); ime_data *data = (ime_data*)user_data; // Do a proper action - - // strcat(info_txt, language); if(data->ime_layout == ELM_INPUT_PANEL_LAYOUT_IP) { - data->info_msg = language; + data->info_msg = (char*)language; snprintf(MSG, sizeof(MSG), "Language changed:%s",data->info_msg); ise_template_create_cb(data); - dlog_print(DLOG_DEBUG, LOG_TAG,"Setting msg: %s", MSG); + DBG("Setting msg: %s", MSG); } } - /** * @function ise_template_input_context_reset_cb * @since_tizen 2.3 @@ -933,7 +969,7 @@ static void ise_template_display_language_changed_cb(const char *language, void */ static void ise_template_input_context_reset_cb(void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_input_context_reset_cb called"); + DBG("ime_input_context_reset_cb called"); } @@ -946,7 +982,7 @@ static void ise_template_input_context_reset_cb(void *user_data) */ static void ise_template_rotation_degree_changed_cb(int degree, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"degree=%d", degree); + DBG("degree=%d", degree); // Do a proper action } @@ -960,10 +996,9 @@ static void ise_template_rotation_degree_changed_cb(int degree, void *user_data) */ static void ise_template_language_set_cb(Ecore_IMF_Input_Panel_Lang language, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_language_set_cb"); + DBG("ise_template_language_set_cb"); // Do a proper action - char *info_txt = "Language is set by Entry."; - //strcat(info_txt, language); + //char *info_txt = "Language is set by Entry."; } @@ -976,9 +1011,9 @@ static void ise_template_language_set_cb(Ecore_IMF_Input_Panel_Lang language, vo */ static void ise_template_language_requested_cb(void *user_data, char **lang_code) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_language_requested_cb"); - // Do a proper action - char *info_txt = "Language is requested.."; + DBG("ise_template_language_requested_cb"); + // Do a proper action + //char *info_txt = "Language is requested.."; } @@ -992,10 +1027,7 @@ static void ise_template_language_requested_cb(void *user_data, char **lang_code */ static void ise_template_geometry_requested_cb(void *user_data, int *x, int *y, int *w, int *h) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_geometry_requested_cb x:%d y:%d w:%d h:%d", x, y, w, h); - // char *info_text = "\0"; - // strcat(info_text, sprintf("%d %d", x, y)); - //elm_object_text_set(info, info_txt); + DBG("ise_template_geometry_requested_cb x:%d y:%d w:%d h:%d", x, y, w, h); } @@ -1008,7 +1040,7 @@ static void ise_template_geometry_requested_cb(void *user_data, int *x, int *y, */ static void ise_template_imdata_set_cb(void *data, unsigned int data_length, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_imdata_set_cb "); + DBG("ise_template_imdata_set_cb "); } @@ -1021,7 +1053,7 @@ static void ise_template_imdata_set_cb(void *data, unsigned int data_length, voi */ static void ise_template_accessibility_state_changed_cb(bool state, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_accessibility_state_changed_cb %d", state); + DBG("ise_template_accessibility_state_changed_cb %d", state); } @@ -1034,7 +1066,7 @@ static void ise_template_accessibility_state_changed_cb(bool state, void *user_d */ static void ise_template_option_window_created_cb(Evas_Object *window, ime_option_window_type_e type, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_option_window_created_cb"); + DBG("ise_template_option_window_created_cb"); } @@ -1047,7 +1079,7 @@ static void ise_template_option_window_created_cb(Evas_Object *window, ime_optio */ static void ise_template_option_window_destroyed_cb(Evas_Object *window, void *user_data) { - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_option_window_destroyed_cb"); + DBG("ise_template_option_window_destroyed_cb"); ime_data *data = (ime_data*) user_data; data->option_window = window; Evas_Object *button = _create_key_button(window, "Option"); @@ -1067,7 +1099,7 @@ static void ise_template_option_window_destroyed_cb(Evas_Object *window, void *u */ void ime_app_main(int argc, char **argv) { - dlog_print(DLOG_DEBUG, LOG_TAG,"Start! TBT IME template"); + DBG("Start! TBT IME template"); ime_data *data = NULL; data = calloc(1, sizeof(ime_data)); ime_callback_s basic_callback = { @@ -1079,41 +1111,139 @@ void ime_app_main(int argc, char **argv) int result; // Set the necessary callback functions result = ime_event_set_focus_in_cb(ise_template_focus_in_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_focus_in_cb =%d", result); + DBG("ime_event_set_focus_in_cb =%d", result); result = ime_event_set_focus_out_cb(ise_template_focus_out_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_focus_out_cb =%d", result); + DBG("ise_template_focus_out_cb =%d", result); result = ime_event_set_surrounding_text_updated_cb(ise_template_surrounding_text_updated_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_surrounding_text_updated_cb =%d", result); + DBG("ime_event_set_surrounding_text_updated_cb =%d", result); result = ime_event_set_cursor_position_updated_cb(ise_template_cursor_position_updated_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_cursor_position_updated_cb =%d", result); + DBG("ime_event_set_cursor_position_updated_cb =%d", result); result = ime_event_set_layout_set_cb(ise_template_layout_set_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_layout_set_cb =%d", result); + DBG("ime_event_set_layout_set_cb =%d", result); result = ime_event_set_return_key_type_set_cb(ise_template_return_key_type_set_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_return_key_type_set_cb =%d", result); + DBG("ime_event_set_return_key_type_set_cb =%d", result); result = ime_event_set_return_key_state_set_cb(ise_template_return_key_state_set_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_return_key_state_set_cb =%d", result); + DBG("ime_event_set_return_key_state_set_cb =%d", result); result = ime_event_set_process_key_event_cb(ise_template_process_key_event_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_process_key_event_cb =%d", result); + DBG("ime_event_set_process_key_event_cb =%d", result); result = ime_event_set_display_language_changed_cb(ise_template_display_language_changed_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_display_language_changed_cb =%d", result); + DBG("ime_event_set_display_language_changed_cb =%d", result); result = ime_event_set_rotation_degree_changed_cb(ise_template_rotation_degree_changed_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_rotation_degree_changed_cb =%d", result); + DBG("ime_event_set_rotation_degree_changed_cb =%d", result); result = ime_event_set_input_context_reset_cb(ise_template_input_context_reset_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_input_context_reset_cb =%d", result); + DBG("ime_event_set_input_context_reset_cb =%d", result); result = ime_event_set_language_set_cb(ise_template_language_set_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_language_set_cb =%d", result); + DBG("ime_event_set_language_set_cb =%d", result); result = ime_event_set_language_requested_cb(ise_template_language_requested_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ise_template_language_requested_cb =%d", result); + DBG("ise_template_language_requested_cb =%d", result); result = ime_event_set_geometry_requested_cb(ise_template_geometry_requested_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_geometry_requested_cb =%d", result); + DBG("ime_event_set_geometry_requested_cb =%d", result); result = ime_event_set_imdata_set_cb(ise_template_imdata_set_cb,data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_imdata_set_cb =%d", result); + DBG("ime_event_set_imdata_set_cb =%d", result); result = ime_event_set_accessibility_state_changed_cb(ise_template_accessibility_state_changed_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_accessibility_state_changed_cb =%d", result); + DBG("ime_event_set_accessibility_state_changed_cb =%d", result); result = ime_event_set_option_window_created_cb(ise_template_option_window_created_cb, data); - dlog_print(DLOG_DEBUG, LOG_TAG,"ime_event_set_option_window_created_cb =%d", result); + DBG("ime_event_set_option_window_created_cb =%d", result); result = ime_event_set_option_window_destroyed_cb(ise_template_option_window_destroyed_cb, data); // Start IME ime_run(&basic_callback, data); +} + +static char* get_ecore_imf_device_class(Ecore_IMF_Device_Class e) +{ + char* str = NULL; + switch(e) + { + case ECORE_IMF_DEVICE_CLASS_NONE: + str = "ECORE_IMF_DEVICE_CLASS_NONE"; + break; + case ECORE_IMF_DEVICE_CLASS_SEAT: + str = "ECORE_IMF_DEVICE_CLASS_SEAT"; + break; + case ECORE_IMF_DEVICE_CLASS_KEYBOARD: + str = "ECORE_IMF_DEVICE_CLASS_KEYBOARD"; + break; + case ECORE_IMF_DEVICE_CLASS_MOUSE: + str = "ECORE_IMF_DEVICE_CLASS_MOUSE"; + break; + case ECORE_IMF_DEVICE_CLASS_TOUCH: + str = "ECORE_IMF_DEVICE_CLASS_TOUCH"; + break; + case ECORE_IMF_DEVICE_CLASS_PEN: + str = "ECORE_IMF_DEVICE_CLASS_PEN"; + break; + case ECORE_IMF_DEVICE_CLASS_POINTER: + str = "ECORE_IMF_DEVICE_CLASS_POINTER"; + break; + case ECORE_IMF_DEVICE_CLASS_GAMEPAD: + str = "ECORE_IMF_DEVICE_CLASS_GAMEPAD"; + break; + default: + str = "UNKWON_CLASS"; + break; + } + return str; +} + +static char* get_ecore_imf_device_subclass(Ecore_IMF_Device_Subclass e) +{ + char* str = NULL; + switch(e) + { + case ECORE_IMF_DEVICE_SUBCLASS_NONE: + str = "ECORE_IMF_DEVICE_SUBCLASS_NONE"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_FINGER: + str = "ECORE_IMF_DEVICE_SUBCLASS_FINGER"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_FINGERNAIL: + str = "ECORE_IMF_DEVICE_SUBCLASS_FINGERNAIL"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_KNUCKLE: + str = "ECORE_IMF_DEVICE_SUBCLASS_KNUCKLE"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_PALM: + str = "ECORE_IMF_DEVICE_SUBCLASS_PALM"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_HAND_SIZE: + str = "ECORE_IMF_DEVICE_SUBCLASS_HAND_SIZE"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_HAND_FLAT: + str = "ECORE_IMF_DEVICE_SUBCLASS_HAND_FLAT"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_PEN_TIP: + str = "ECORE_IMF_DEVICE_SUBCLASS_PEN_TIP"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_TRACKPAD: + str = "ECORE_IMF_DEVICE_SUBCLASS_TRACKPAD"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_TRACKPOINT: + str = "ECORE_IMF_DEVICE_SUBCLASS_TRACKPOINT"; + break; + case ECORE_IMF_DEVICE_SUBCLASS_TRACKBALL: + str = "ECORE_IMF_DEVICE_SUBCLASS_TRACKBALL"; + break; + default: + str = "UNKNWON_SUBCLASS"; + break; + } + return str; +} +static char *format_string(const char *format, ...) +{ + va_list arg; + char* chTemp; + chTemp= (char*)malloc(1024 * sizeof(char)); + RETVM_IF(!chTemp, NULL,"malloc failed."); + va_start(arg,format); + vsnprintf(chTemp,1024,format,arg); + va_end(arg); + return chTemp; +} + +int main(int argc, char *argv[]) +{ + ime_app_main(argc, argv); + return 0; } diff --git a/tbt-ime/tizen-manifest.xml b/tbt-ime/tizen-manifest.xml index 3dda7e0..911f1bb 100644 --- a/tbt-ime/tizen-manifest.xml +++ b/tbt-ime/tizen-manifest.xml @@ -1,12 +1,13 @@ - - + + tbt-ime.png + http://tizen.org/privilege/haptic http://tizen.org/privilege/ime