diff options
62 files changed, 1757 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..93e6ec1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,83 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(accessibility-setting C) + +SET(HEADERS) +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(EXEC_PREFIX "\${prefix}") +SET(INCLUDEDIR "\${prefix}/include") +SET(VERSION 1.0) + +SET(PACKAGE ${PROJECT_NAME}) +SET(PKGNAME "org.tizen.${PACKAGE}") +SET(PKGDIR "${TZ_SYS_RO_APP}/${PKGNAME}") +SET(BINDIR "${PKGDIR}/bin") +SET(RESDIR "${PKGDIR}/res") +SET(EDJDIR "${RESDIR}/edje") +SET(ICONDIR "${TZ_SYS_RO_ICONS}/default/small") +SET(LOCALEDIR "${RESDIR}/locale") + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED +capi-appfw-application appcore-efl elementary +efl-extension dlog vconf +) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") + SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall -fPIE") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wall -fPIE") +SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -fPIE") +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fPIE") +SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g -fPIE") + +ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") +ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") +ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"") +ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"") +ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") +ADD_DEFINITIONS("-DTZ_SYS_RO_APP_D=\"${TZ_SYS_RO_APP}\"") +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") + +SET(SRCS +src/setting-accessibility.c +src/setting-accessibility-menu.c +src/setting-accessibility-vision.c +) + +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) + +SET(dependents "elementary efl-extension dlog vconf capi-appfw-application appcore-efl ") + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED +${dependents} +) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE -Wl,-rpath,${LIBDIR}") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") + +ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-pie") +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) + +ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj + COMMAND edje_cc + ${CMAKE_SOURCE_DIR}/data/edc/${PROJECT_NAME}.edc ${PROJECT_NAME}.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/edc/${PROJECT_NAME}.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj) +INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.xml DESTINATION ${TZ_SYS_RO_PACKAGES}) + +# i18n +ADD_SUBDIRECTORY(po)
\ No newline at end of file @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/data/edc/accessibility-setting.edc b/data/edc/accessibility-setting.edc new file mode 100644 index 0000000..42edd68 --- /dev/null +++ b/data/edc/accessibility-setting.edc @@ -0,0 +1,40 @@ +collections { + + base_scale: 1.3; + + group { name: "setting/genlist/layout"; + parts { + part { + name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 255; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + } + } + part { + name: "elm.genlist"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + to: "bg"; + } + rel2 { + relative: 1.0 1.0; + to: "bg"; + } + } + } + } + } +}
\ No newline at end of file diff --git a/include/setting-accessibility-debug.h b/include/setting-accessibility-debug.h new file mode 100644 index 0000000..8e3d752 --- /dev/null +++ b/include/setting-accessibility-debug.h @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2010 Samsung Electronics, Inc. + * All rights reserved. + * + * This software is a confidential and proprietary information + * of Samsung Electronics, Inc. ("Confidential Information"). You + * shall not disclose such Confidential Information and shall use + * it only in accordance with the terms of the license agreement + * you entered into with Samsung Electronics. + */ +#define _DLOG_USED +#ifdef _DLOG_USED + +#include <dlog.h> + +#ifdef LOG_TAG +#undef LOG_TAG +#define LOG_TAG "W-ACCESSIBILITY-SETTING" +#endif + +#define DBG(fmt , args...) \ + do { \ + LOGD("[%s : %d] "fmt"", __func__, __LINE__, ##args); \ + } while (0) + +#define INFO(fmt , args...) \ + do { \ + LOGI("[%s : %d] "fmt"", __func__, __LINE__, ##args); \ + } while (0) + +#define WARN(fmt , args...) \ + do { \ + LOGI("[%s : %d] "fmt"", __func__, __LINE__, ##args); \ + } while (0) + +#define ERR(fmt , args...) \ + do { \ + LOGI("[%s : %d] "fmt"", __func__, __LINE__, ##args); \ + } while (0) + + +#define __FREE(del, arg) do { \ + if (arg) { \ + del((void *)(arg)); /*cast any argument to (void*) to avoid build warring*/\ + arg = NULL; \ + } \ + } while (0); + +#define FREE(arg) __FREE(free, arg) + +#define access_retvm_if(expr, val, fmt, arg...) do { \ + if (expr) { \ + ERR(fmt, ##arg); \ + return (val); \ + } \ + } while (0); + +#define access_retm_if(expr, fmt, arg...) do { \ + if (expr) { \ + ERR(fmt, ##arg); \ + return; \ + } \ + } while (0); + +#define access_retv_if(expr, val) do { \ + if (expr) { \ + ERR("(%s)", #expr); \ + return (val); \ + } \ +} while (0) + +#define access_ret_if(expr) do { \ + if (expr) { \ + ERR("(%s)", #expr); \ + return ; \ + } \ +} while (0) + +#endif diff --git a/include/setting-accessibility.h b/include/setting-accessibility.h new file mode 100644 index 0000000..72857a1 --- /dev/null +++ b/include/setting-accessibility.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2010 Samsung Electronics, Inc. + * All rights reserved. + * + * This software is a confidential and proprietary information + * of Samsung Electronics, Inc. ("Confidential Information"). You + * shall not disclose such Confidential Information and shall use + * it only in accordance with the terms of the license agreement + * you entered into with Samsung Electronics. + */ + +#ifndef _SETTING_ACCESSIBILITY_H_ +#define _SETTING_ACCESSIBILITY_H_ + +#include <Elementary.h> +#include <appcore-efl.h> +#include <app.h> +#include <vconf.h> +#include <vconf-keys.h> +#include <efl_extension.h> + +#define VCONFKEY_SETAPPL_ACCESSIBILITY_TTS "db/setting/accessibility/tts" +#define SETTING_ACCESSIBILITY_PACKAGE_NAME "accessibility-setting" +#define EDJE_PATH TZ_SYS_RO_APP_D"/org.tizen.accessibility-setting/res/edje/accessibility-setting.edj" +#define _(s) dgettext(SETTING_ACCESSIBILITY_PACKAGE_NAME, s) + +typedef enum { + SETTING_ACCESSIBILITY_MENU_TITLE, + SETTING_ACCESSIBILITY_MENU_VISION +} SettingAccessibilityMenu; + +typedef enum { + SETTING_ACCESSIBILITY_VISION_TITLE, + SETTING_ACCESSIBILITY_VISION_SCREEN_READER, +} SettingAccessibilityVisionMenu; + +typedef struct { + SettingAccessibilityMenu menu; + Elm_Object_Item *pObjItem; +} SettingAccessibilityMenuItemData; + +typedef struct { + SettingAccessibilityVisionMenu menu; + Elm_Object_Item *pObjItem; + Evas_Object *pObj_check; +} SettingAccessibilityVisionItemData; + +typedef struct { + Evas_Object *pObj_win_main; + Evas_Object *pObj_conform; +#ifdef FEATURE_SETTING_SUPPORT_ROTARY + Eext_Circle_Surface *pObj_circle_surface; +#endif + Evas_Object *pObj_layout_main; + Evas_Object *pObj_nf; + +} SettingAccessibilityAppData; + +Evas_Object* setting_accessibility_vision_create_view(void *data); + +Evas_Object *setting_accessibility_menu_create_view(void *data); + + +#endif /* _SETTING_ACCESSIBILITY_H_ */ diff --git a/org.tizen.accessibility-setting.manifest b/org.tizen.accessibility-setting.manifest new file mode 100644 index 0000000..97e8c31 --- /dev/null +++ b/org.tizen.accessibility-setting.manifest @@ -0,0 +1,5 @@ +<manifest> + <request> + <domain name="_"/> + </request> +</manifest> diff --git a/org.tizen.accessibility-setting.xml b/org.tizen.accessibility-setting.xml new file mode 100644 index 0000000..5e50b41 --- /dev/null +++ b/org.tizen.accessibility-setting.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.accessibility-setting" version="0.0.1" install-location="internal-only" api-version="3.0"> + <label>Accessibility Setting</label> + <description>Accessibility Setting App</description> + <ui-application appid="org.tizen.accessibility-setting" exec="accessibility-setting" nodisplay="true" multiple="false" type="capp" taskmanage="false" mainapp="true" process-pool="true" hw-acceleration="use-GL"> + <label>Accessibility Setting</label> + <label xml:lang="en-us">Accessibility Setting</label> + </ui-application> +</manifest> diff --git a/packaging/org.tizen.accessibility-setting.spec b/packaging/org.tizen.accessibility-setting.spec new file mode 100644 index 0000000..7718e7d --- /dev/null +++ b/packaging/org.tizen.accessibility-setting.spec @@ -0,0 +1,47 @@ +Name: org.tizen.accessibility-setting +Summary: Accessibility Setting Application +Version: 0.0.1 +Release: 1 +Group: UI Framework +License: Apache-2.0 +Source0: %{name}-%{version}.tar.gz + +BuildRequires: gettext-tools +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(vconf) +BuildRequires: cmake +BuildRequires: pkgconfig(libtzplatform-config) +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(appcore-common) +BuildRequires: pkgconfig(efl-extension) +BuildRequires: pkgconfig(capi-appfw-application) + +%description +Accessibility setting application. + +%prep +%setup -q +%define _pkg_dir %{TZ_SYS_RO_APP}/%{name} + +%build + +rm -rf CMakeFiles CMakeCache.txt && cmake . -DCMAKE_INSTALL_PREFIX=%{_pkg_dir}} \ + -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \ + -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \ + +make %{?jobs:-j%jobs} + +%install +%make_install + +mkdir -p %{buildroot}/%{_datadir}/license +cp %{_builddir}/%{buildsubdir}/LICENSE %{buildroot}/%{_datadir}/license/%{name} + +%files +%defattr(-,root,root,-) +%{_pkg_dir}/bin/* +%{_pkg_dir}/res/* +%{TZ_SYS_RO_PACKAGES}/%{name}.xml +%{_datadir}/license/%{name} +%manifest %{name}.manifest diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt new file mode 100644 index 0000000..a1b99b0 --- /dev/null +++ b/po/CMakeLists.txt @@ -0,0 +1,74 @@ +# for i18n + +SET(POFILES + ar.po + az.po + bg.po + ca.po + cs.po + da.po + de.po + el_GR.po + en_PH.po + en.po + en_US.po + es_ES.po + es_US.po + et.po + eu.po + fi.po + fr_CA.po + fr.po + ga.po + gl.po + hr.po + hu.po + hy.po + is.po + it_IT.po + ja_JP.po + ka.po + kk.po + ko_KR.po + lt.po + lv.po + mk.po + nb.po + nl.po + pl.po + pt_BR.po + pt_PT.po + ro.po + ru_RU.po + sk.po + sl.po + sr.po + sv.po + tr_TR.po + uk.po + uz.po + zh_CN.po + zh_HK.po + zh_TW.po +) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${pofile}") + GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE) + SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND( + OUTPUT ${moFile} + COMMAND ${MSGFMT} -o ${moFile} ${absPofile} + DEPENDS ${absPofile} + ) + INSTALL(FILES ${moFile} + DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..e010621 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "إمكانية الوصول" + +msgid "IDS_ST_HEADER_VISION" +msgstr "الرؤية" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "قارئ الشاشة" + diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..7507647 --- /dev/null +++ b/po/az.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Çıxış imkanı" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Görmə" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Ekran oxuyucusu" + diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..96ce667 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Достъпност" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Зрение" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Екранен четец" + diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..540f018 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibilitat" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Visió" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lector de pantalla" + diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..6e61f5b --- /dev/null +++ b/po/cs.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Usnadnění" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Zrak" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Čtečka displeje" + diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..2ff193f --- /dev/null +++ b/po/da.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Tilgængelighed" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Syn" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Skærmlæser" + diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..045d38d --- /dev/null +++ b/po/de.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Eingabehilfe" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Sehhilfe" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Bildschirmleseprogramm" + diff --git a/po/el_GR.po b/po/el_GR.po new file mode 100644 index 0000000..0208184 --- /dev/null +++ b/po/el_GR.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Προσβασιμότητα" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Όραση" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Εργαλείο ανάγνωσης οθόνης" + diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..f4563b7 --- /dev/null +++ b/po/en.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibility" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vision" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Screen reader" + diff --git a/po/en_PH.po b/po/en_PH.po new file mode 100644 index 0000000..f4563b7 --- /dev/null +++ b/po/en_PH.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibility" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vision" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Screen reader" + diff --git a/po/en_US.po b/po/en_US.po new file mode 100644 index 0000000..f4563b7 --- /dev/null +++ b/po/en_US.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibility" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vision" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Screen reader" + diff --git a/po/es_ES.po b/po/es_ES.po new file mode 100644 index 0000000..7449d7e --- /dev/null +++ b/po/es_ES.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accesibilidad" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Visión" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lector de pantalla" + diff --git a/po/es_US.po b/po/es_US.po new file mode 100644 index 0000000..7449d7e --- /dev/null +++ b/po/es_US.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accesibilidad" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Visión" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lector de pantalla" + diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..c4905d2 --- /dev/null +++ b/po/et.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Juurdepääs" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Nägemine" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Ekraanilugeja" + diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..d3d74e6 --- /dev/null +++ b/po/eu.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Irisgarritasuna" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Ikusmena" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Pantaila Irakurgailua" + diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..3e08f6a --- /dev/null +++ b/po/fi.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Helppo-\nkäyttöisyys" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Näkö" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Näytönlukija" + diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..7d40a41 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibilité" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vue" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lecteur d'écran" + diff --git a/po/fr_CA.po b/po/fr_CA.po new file mode 100644 index 0000000..7d40a41 --- /dev/null +++ b/po/fr_CA.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibilité" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vue" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lecteur d'écran" + diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..25254be --- /dev/null +++ b/po/ga.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Inrochtaineacht" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Radharc" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Léitheoir Scáileáin" + diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..847edd5 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accesibilidade" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Visual" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lector da pantalla" + diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..972768d --- /dev/null +++ b/po/hr.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Pristupačnost" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vid" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Čitač zaslona" + diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..e1e3113 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Kisegítő lehetőségek" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Látás" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Szövegfelolvasó" + diff --git a/po/hy.po b/po/hy.po new file mode 100644 index 0000000..b282675 --- /dev/null +++ b/po/hy.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Մատչելիություն" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Տեսողություն" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Էկրանի ընթերցիչ" + diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..5b019d1 --- /dev/null +++ b/po/is.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Aðgengi" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Sjón" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Skjálesari" + diff --git a/po/it_IT.po b/po/it_IT.po new file mode 100644 index 0000000..4a64d21 --- /dev/null +++ b/po/it_IT.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accessibilità" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vista" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Lettore Schermo" + diff --git a/po/ja_JP.po b/po/ja_JP.po new file mode 100644 index 0000000..503266f --- /dev/null +++ b/po/ja_JP.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "ユーザー補助" + +msgid "IDS_ST_HEADER_VISION" +msgstr "視覚" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "スクリーンリーダー" + diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..ec3a7c6 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "წვდომა" + +msgid "IDS_ST_HEADER_VISION" +msgstr "ხედვა" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "ეკრანის წამკითხველი" + diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..ecb14d6 --- /dev/null +++ b/po/kk.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Арнайы мүмкіндік" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Көру" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Экран оқу құралы" + diff --git a/po/ko_KR.po b/po/ko_KR.po new file mode 100644 index 0000000..1543fd6 --- /dev/null +++ b/po/ko_KR.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "접근성" + +msgid "IDS_ST_HEADER_VISION" +msgstr "시각" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "스크린 리더" + diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..a417dcf --- /dev/null +++ b/po/lt.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Pasiekiamumas" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Rega" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Ekrano skaitytuvas" + diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..967511e --- /dev/null +++ b/po/lv.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Pieejamība" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Redze" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Ekrāna lasītājs" + diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..ac5f1aa --- /dev/null +++ b/po/mk.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Пристапност" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Вид" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Екрански читач" + diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..2a1e6fc --- /dev/null +++ b/po/nb.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Tilgjengeligh." + +msgid "IDS_ST_HEADER_VISION" +msgstr "Syn" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Skjermleser" + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..cf764e5 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Toegankelijkheid" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Zicht" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Schermlezer" + diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..78eff30 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Dostępność" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Widoczność" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Czytnik ekranu" + diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..cd2c88b --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Acessibilidade" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Visão" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Leitor de tela" + diff --git a/po/pt_PT.po b/po/pt_PT.po new file mode 100644 index 0000000..f24f2c4 --- /dev/null +++ b/po/pt_PT.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Acessibilidade" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Visão" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Leitor de Ecrã" + diff --git a/po/replace_quatation.pl b/po/replace_quatation.pl new file mode 100644 index 0000000..50b5d30 --- /dev/null +++ b/po/replace_quatation.pl @@ -0,0 +1,133 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Tie::File; + +# global +my @po_list = `ls *.po`; + +# for replacing " +my $dest_char1 = "\\\\\""; +my $dest_char2 = "\\\""; +my $quatation_char = "\""; + +# function +sub replace_quatation +{ + my ($po_file) = @_; + my @po_file_line = $po_file; + + foreach (@po_file_line) { + tie my @filearray, 'Tie::File', $_ or die "Couldn't open file $_, $!"; + foreach my $line(@filearray) { + if (($line =~ /msgstr\ \"(.*)\"/)) { + my $new_line = $1; + + # quatation check + # there is no qutation, continue + if (index($new_line, "\"") != -1) { + printf "replace: $new_line\n"; + # equalizing to " + $new_line =~ s/$dest_char1/$quatation_char/g; + + # replace " with \" + $new_line =~ s/$quatation_char/$dest_char2/g; + + # write new line + $line = "msgstr\ \"$new_line\""; + } + } + } + untie @filearray; + } +} + +sub replace_another +{ + my ($po_file) = @_; + my @po_file_line = $po_file; + + foreach (@po_file_line) { + tie my @filearray, 'Tie::File', $_ or die "Couldn't open file $_, $!"; + foreach my $line(@filearray) { + if (($line =~ /msgstr\ \"(.*)\"/)) { + my $new_line = $1; + + if (index($new_line, "\\") != -1) { + printf "replace: $new_line\n"; + + # replace \n with <br> + $new_line =~ s/\\/ /g; + + # write new line + $line = "msgstr\ \"$new_line\""; + } + } + } + untie @filearray; + } +} + +sub replace_br +{ + my ($po_file) = @_; + my @po_file_line = $po_file; + + foreach (@po_file_line) { + tie my @filearray, 'Tie::File', $_ or die "Couldn't open file $_, $!"; + foreach my $line(@filearray) { + if (($line =~ /msgstr\ \"(.*)\"/)) { + my $new_line = $1; + + if (index($new_line, "<br>") != -1) { + printf "replace: $new_line\n"; + + # replace <br> with \n + $new_line =~ s/<br>/\\n/g; + + # write new line + $line = "msgstr\ \"$new_line\""; + } + } + } + untie @filearray; + } +} + +sub replace_driver_str +{ + my ($po_file) = @_; + my @po_file_line = $po_file; + + foreach (@po_file_line) { + tie my @filearray, 'Tie::File', $_ or die "Couldn't open file $_, $!"; + foreach my $line(@filearray) { + if (($line =~ /msgstr\ \"(.*)\"/)) { + my $new_line = $1; + + if (index($new_line, ":\\") != -1) { + printf "replace: $new_line\n"; + + if( index($new_line, ":\\\\") == -1 ) { + # replace <br> with \n + $new_line =~ s/:\\/:\\\\/g; + + # write new line + $line = "msgstr\ \"$new_line\""; + } + } + } + } + untie @filearray; + } +} + +# main +foreach (@po_list) { + my $file = $_; + chomp($file); + replace_quatation($file); + replace_driver_str($file); + #replace_another($file); +} diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..9be5d58 --- /dev/null +++ b/po/ro.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Accesibilitate" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vedere" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Cititor ecran" + diff --git a/po/ru_RU.po b/po/ru_RU.po new file mode 100644 index 0000000..6998e3f --- /dev/null +++ b/po/ru_RU.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Специальные возможности" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Зрение" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Чтение с экрана" + diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..9ff681e --- /dev/null +++ b/po/sk.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Zjednodušenie ovládania" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Zrak" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Čítačka obrazovky" + diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..2927289 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Dostopnost" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Okvara vida" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Bralnik zaslona" + diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..e68494d --- /dev/null +++ b/po/sr.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Pristupačnost" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Vid" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Čitač ekrana" + diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..318aeed --- /dev/null +++ b/po/sv.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Tillgänglighet" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Syn" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Skärmläsare" + diff --git a/po/tr_TR.po b/po/tr_TR.po new file mode 100644 index 0000000..b62e1e3 --- /dev/null +++ b/po/tr_TR.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Erişilebilirlik" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Görme" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Ekran Okuyucu" + diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..399846f --- /dev/null +++ b/po/uk.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Спеціальні можливості" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Зір" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Читання з екрану" + diff --git a/po/uz.po b/po/uz.po new file mode 100644 index 0000000..6776518 --- /dev/null +++ b/po/uz.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "Maxsus imkoniyat" + +msgid "IDS_ST_HEADER_VISION" +msgstr "Ko‘rish" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Ekranni o‘qish vositasi" + diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..309f5d3 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "辅助功能" + +msgid "IDS_ST_HEADER_VISION" +msgstr "视觉" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Screen Reader" + diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..1e90ffa --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "協助工具" + +msgid "IDS_ST_HEADER_VISION" +msgstr "視覺" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "螢幕閱讀器" + diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..bb027cf --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,9 @@ +msgid "IDS_ST_BODY_ACCESSIBILITY" +msgstr "協助工具" + +msgid "IDS_ST_HEADER_VISION" +msgstr "視覺" + +msgid "IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME" +msgstr "Screen Reader" + diff --git a/src/setting-accessibility-menu.c b/src/setting-accessibility-menu.c new file mode 100644 index 0000000..4aae3ec --- /dev/null +++ b/src/setting-accessibility-menu.c @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2010 Samsung Electronics, Inc. + * All rights reserved. + * + * This software is a confidential and proprietary information + * of Samsung Electronics, Inc. ("Confidential Information"). You + * shall not disclose such Confidential Information and shall use + * it only in accordance with the terms of the license agreement + * you entered into with Samsung Electronics. + */ + +#include "setting-accessibility.h" +#include "setting-accessibility-debug.h" + +static void +__setting_accessibility_menu_itc_del_cb(void *data, Evas_Object *obj) +{ + SettingAccessibilityMenuItemData *pItemData = (SettingAccessibilityMenuItemData *)data; + + if (pItemData != NULL) { + free(pItemData); + pItemData = NULL; + DBG("free(pItemData) run."); + } +} + +static char* +__setting_accessibility_menu_itc_text_get_cb(void *data, Evas_Object *obj, const char *part) +{ + SettingAccessibilityMenuItemData *pItemData = (SettingAccessibilityMenuItemData *)data; + access_retv_if(!pItemData, NULL); + + char szText[64]; + memset(szText, '\0', sizeof(szText)); + + if (!strcmp(part, "elm.text")) { + + switch (pItemData->menu) { + //Title + case SETTING_ACCESSIBILITY_MENU_TITLE: + snprintf(szText, sizeof(szText), "%s", _("IDS_ST_BODY_ACCESSIBILITY")); + break; + + //Vision + case SETTING_ACCESSIBILITY_MENU_VISION: + snprintf(szText, sizeof(szText), "%s", _("IDS_ST_HEADER_VISION")); + break; + + default: + break; + + } + + } + return strdup(szText); + +} + +static Eina_Bool +__setting_accessibility_menu_naviframe_pop_cb(void *data, Elm_Object_Item *pObjItem) +{ + // Exit App + DBG("elm_exit() run."); + elm_exit(); + + return EINA_TRUE; +} + +static void +__setting_accessibility_menu_vision_item_select_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *pObjItem = (Elm_Object_Item *)event_info; + elm_genlist_item_selected_set(pObjItem, EINA_FALSE); + DBG("API() entered. "); + SettingAccessibilityAppData *ad = data; + + access_ret_if(!ad); + + setting_accessibility_vision_create_view(ad); +} + +Evas_Object *setting_accessibility_menu_create_view(void *data) +{ + SettingAccessibilityAppData *ad = data; + access_retv_if(!ad, NULL); + + Evas_Object *pObj_layout = NULL; + SettingAccessibilityMenuItemData *pItemData = NULL; + Evas_Object *pObj_genlist = NULL; + + pObj_layout = elm_layout_add(ad->pObj_nf); + elm_layout_file_set(pObj_layout, EDJE_PATH, "setting/genlist/layout"); + evas_object_size_hint_weight_set(pObj_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + pObj_genlist = elm_genlist_add(pObj_layout); + elm_genlist_mode_set(pObj_genlist, ELM_LIST_COMPRESS); + + Elm_Genlist_Item_Class *itc_title = elm_genlist_item_class_new(); + itc_title->func.text_get = __setting_accessibility_menu_itc_text_get_cb; + itc_title->item_style = "title"; + itc_title->func.del = NULL; + + pItemData = calloc(sizeof(SettingAccessibilityMenuItemData), 1); + if (pItemData) { + pItemData->menu = SETTING_ACCESSIBILITY_MENU_TITLE; + pItemData->pObjItem = elm_genlist_item_append(pObj_genlist, itc_title, pItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, ad); + } + else + DBG("pItemData=calloc() failed."); + + Elm_Genlist_Item_Class *itc_1text = elm_genlist_item_class_new(); + itc_1text->item_style = "1text"; + itc_1text->func.text_get = __setting_accessibility_menu_itc_text_get_cb; + itc_1text->func.del = __setting_accessibility_menu_itc_del_cb; + + //Vision + pItemData = calloc(sizeof(SettingAccessibilityMenuItemData), 1); + if (pItemData) { + pItemData->menu = SETTING_ACCESSIBILITY_MENU_VISION; + pItemData->pObjItem = elm_genlist_item_append(pObj_genlist, itc_1text, pItemData, NULL, ELM_GENLIST_ITEM_NONE, __setting_accessibility_menu_vision_item_select_cb, ad); + } + else + DBG("pItemData=calloc() failed."); + + elm_genlist_item_class_free(itc_1text); + elm_genlist_item_class_free(itc_title); + + elm_object_part_content_set(pObj_layout, "elm.genlist", pObj_genlist); + + Elm_Object_Item *pObjItem_nf = NULL; + pObjItem_nf = elm_naviframe_item_push(ad->pObj_nf, "IDS_ST_BODY_ACCESSIBILITY", NULL, NULL, pObj_layout, "empty"); + elm_naviframe_item_title_enabled_set(pObjItem_nf, EINA_FALSE, EINA_FALSE); + elm_object_item_domain_text_translatable_set(pObjItem_nf, SETTING_ACCESSIBILITY_PACKAGE_NAME, EINA_TRUE); + elm_naviframe_item_pop_cb_set(pObjItem_nf, __setting_accessibility_menu_naviframe_pop_cb, NULL); // pop callback + return pObj_layout; + +} diff --git a/src/setting-accessibility-vision.c b/src/setting-accessibility-vision.c new file mode 100644 index 0000000..ba54e3c --- /dev/null +++ b/src/setting-accessibility-vision.c @@ -0,0 +1,196 @@ +#include "setting-accessibility.h" +#include "setting-accessibility-debug.h" + +static void setting_accessibility_main_chk_screenreader_vconf_update(int state, void* data); + +static char* +__setting_accessibility_vision_itc_text_get_cb(void *data, Evas_Object *obj, const char *part) +{ + SettingAccessibilityVisionItemData *pItemData = (SettingAccessibilityVisionItemData *)data; + access_retv_if(!pItemData, NULL); + char szText[50]; + + memset(szText, '\0', sizeof(szText)); + + if (!strcmp(part, "elm.text")) { + + switch (pItemData->menu) { + // Title + case SETTING_ACCESSIBILITY_VISION_TITLE: + snprintf(szText, sizeof(szText), "%s", _("IDS_ST_HEADER_VISION")); + break; + + // Screen reader + case SETTING_ACCESSIBILITY_VISION_SCREEN_READER: + snprintf(szText, sizeof(szText), "%s", _("IDS_SCR_BODY_SCREEN_READER_M_APPLICATION_NAME")); + break; + + default: + break; + } + } + + return strdup(szText); +} + +static void +__setting_accessibility_vision_itc_del_cb(void *data, Evas_Object *obj) +{ + SettingAccessibilityVisionItemData *pItemData = (SettingAccessibilityVisionItemData *)data; + + if (pItemData) { + free(pItemData); + pItemData = NULL; + } +} + +static void +__setting_accessibility_vision_chk_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + int enable = elm_check_state_get(obj); + DBG("check value=%d.", enable); + setting_accessibility_main_chk_screenreader_vconf_update(enable, NULL); +} + +static Evas_Object* +__setting_accessibility_vision_itc_content_get_cb(void *data, Evas_Object *obj, const char *part) +{ + SettingAccessibilityVisionItemData *pItemData = (SettingAccessibilityVisionItemData *)data; + access_retv_if(!pItemData, NULL); + Evas_Object *pObj_check = NULL; + int vconfValue = 0; + + if (strcmp(part, "elm.icon") == 0) { + + pObj_check = elm_check_add(obj); + elm_object_style_set(pObj_check, "on&off/list"); + evas_object_size_hint_weight_set(pObj_check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_propagate_events_set(pObj_check, EINA_FALSE); + evas_object_repeat_events_set(pObj_check, EINA_TRUE); + evas_object_smart_callback_add(pObj_check, "changed", __setting_accessibility_vision_chk_changed_cb, NULL); + pItemData->pObj_check = pObj_check; + + switch (pItemData->menu) { + case SETTING_ACCESSIBILITY_VISION_SCREEN_READER: + vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &vconfValue); + DBG("vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS)=%d.", vconfValue); + break; + + default: + break; + } + + elm_check_state_set(pObj_check, (vconfValue) ? EINA_TRUE : EINA_FALSE); + elm_atspi_accessible_relationship_append(pObj_check, ELM_ATSPI_RELATION_CONTROLLED_BY, pItemData->pObjItem); + elm_atspi_accessible_relationship_append(pItemData->pObjItem, ELM_ATSPI_RELATION_DESCRIBED_BY, pObj_check); + elm_atspi_accessible_relationship_append(pItemData->pObjItem, ELM_ATSPI_RELATION_CONTROLLER_FOR, pObj_check); + } + + return pObj_check; +} + +static void setting_accessibility_main_chk_screenreader_vconf_update(int state, void* data) +{ + if (state) vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, 1); + else vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, 0); +} + +static void +__setting_accessibility_vision_screen_reader_item_select_cb(void *data, Evas_Object *obj, void *event_info) +{ + DBG("API () enter"); + + Elm_Object_Item *pObjItem = (Elm_Object_Item *)event_info; + SettingAccessibilityVisionItemData *pItemData = (SettingAccessibilityVisionItemData *)data; + elm_genlist_item_selected_set(pObjItem, EINA_FALSE); + int state = elm_check_state_get(pItemData->pObj_check); + DBG("check value = %d", state); + setting_accessibility_main_chk_screenreader_vconf_update(!state, pItemData); + elm_genlist_item_update(pObjItem); +} + +static void +__setting_accessibility_vision_screen_reader_vconf_changed_cb(keynode_t *key, void *data) +{ + SettingAccessibilityVisionItemData *pItemData = (SettingAccessibilityVisionItemData *)data; + access_ret_if(!pItemData); + int vconfValue = 0; + + vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &vconfValue); + DBG("vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS)=%d.", vconfValue); + elm_check_state_set(pItemData->pObj_check, (vconfValue) ? EINA_TRUE : EINA_FALSE); + +} + +static Eina_Bool +__setting_accessibility_vision_naviframe_pop_cb(void *data, Elm_Object_Item *pObjItem) +{ + DBG("API() entered."); + + return EINA_TRUE; +} + +static void +__setting_accessibility_vision_layout_del_cb(void *data , Evas *e, Evas_Object *obj, void *event_info) +{ + vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, __setting_accessibility_vision_screen_reader_vconf_changed_cb); +} + +Evas_Object* +setting_accessibility_vision_create_view(void *data) +{ + DBG("API() entered."); + SettingAccessibilityAppData *ad = data; + access_retv_if(!ad, NULL); + SettingAccessibilityVisionItemData *pItemData = NULL; + Evas_Object *pObj_layout = NULL; + Evas_Object *pObj_genlist = NULL; + + pObj_layout = elm_layout_add(ad->pObj_nf); + elm_layout_file_set(pObj_layout, EDJE_PATH, "setting/genlist/layout"); + evas_object_size_hint_weight_set(pObj_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_event_callback_add(pObj_layout, EVAS_CALLBACK_DEL, __setting_accessibility_vision_layout_del_cb, NULL); + evas_object_show(pObj_layout); + + pObj_genlist = elm_genlist_add(pObj_layout); + elm_genlist_mode_set(pObj_genlist, ELM_LIST_COMPRESS); + + Elm_Genlist_Item_Class *itc_title = elm_genlist_item_class_new(); + itc_title->item_style = "title"; + itc_title->func.text_get = __setting_accessibility_vision_itc_text_get_cb; + itc_title->func.del = __setting_accessibility_vision_itc_del_cb; + + Elm_Genlist_Item_Class *itc_1text_1icon = elm_genlist_item_class_new(); + itc_1text_1icon->item_style = "1text.1icon.1"; + itc_1text_1icon->func.text_get = __setting_accessibility_vision_itc_text_get_cb; + itc_1text_1icon->func.content_get = __setting_accessibility_vision_itc_content_get_cb; + itc_1text_1icon->func.del = __setting_accessibility_vision_itc_del_cb; + + pItemData = calloc(sizeof(SettingAccessibilityVisionItemData), 1); + if (pItemData) { + pItemData->menu = SETTING_ACCESSIBILITY_VISION_TITLE; + pItemData->pObjItem = elm_genlist_item_append(pObj_genlist, itc_title, pItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, ad); + } + + pItemData = calloc(sizeof(SettingAccessibilityVisionItemData), 1); + if (pItemData) { + pItemData->menu = SETTING_ACCESSIBILITY_VISION_SCREEN_READER; + pItemData->pObjItem = elm_genlist_item_append(pObj_genlist, itc_1text_1icon, pItemData, NULL, ELM_GENLIST_ITEM_NONE, __setting_accessibility_vision_screen_reader_item_select_cb, pItemData); + vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, __setting_accessibility_vision_screen_reader_vconf_changed_cb, pItemData); + } + + elm_genlist_item_class_free(itc_title); + elm_genlist_item_class_free(itc_1text_1icon); + + elm_object_part_content_set(pObj_layout, "elm.genlist", pObj_genlist); + + Elm_Object_Item *pObjItem_nf = NULL; + pObjItem_nf = elm_naviframe_item_push(ad->pObj_nf, "IDS_ST_HEADER_VISION", NULL, NULL, pObj_layout, "empty"); + elm_naviframe_item_title_enabled_set(pObjItem_nf, EINA_FALSE, EINA_FALSE); + elm_object_item_domain_text_translatable_set(pObjItem_nf, SETTING_ACCESSIBILITY_PACKAGE_NAME, EINA_TRUE); + elm_naviframe_item_pop_cb_set(pObjItem_nf, __setting_accessibility_vision_naviframe_pop_cb, NULL); + + return pObj_layout; + +} +// diff --git a/src/setting-accessibility.c b/src/setting-accessibility.c new file mode 100644 index 0000000..c39d216 --- /dev/null +++ b/src/setting-accessibility.c @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2010 Samsung Electronics, Inc. + * All rights reserved. + * + * This software is a confidential and proprietary information + * of Samsung Electronics, Inc. ("Confidential Information"). You + * shall not disclose such Confidential Information and shall use + * it only in accordance with the terms of the license agreement + * you entered into with Samsung Electronics. + */ + +#include "setting-accessibility.h" +#include "setting-accessibility-debug.h" + +/* + * Create common view + */ +static void +__setting_accessibility_create_common_view(void *data) +{ + DBG("API() entered."); + + SettingAccessibilityAppData *ad = (SettingAccessibilityAppData *)data; + Evas_Object *pObj_bg = NULL; + + pObj_bg = elm_bg_add(ad->pObj_win_main); + access_retm_if(!pObj_bg, "elm_bg_add() error."); + + elm_win_resize_object_add(ad->pObj_win_main, pObj_bg); + evas_object_size_hint_weight_set(pObj_bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); // Sets the hints for an object's weight. + evas_object_show(pObj_bg); + + ad->pObj_conform = elm_conformant_add(ad->pObj_win_main); + access_retm_if(!ad->pObj_conform, "elm_conformant_add() error."); + + evas_object_size_hint_weight_set(ad->pObj_conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(ad->pObj_win_main, ad->pObj_conform); + evas_object_show(ad->pObj_conform); + + /* Add layout main */ + ad->pObj_layout_main = elm_layout_add(ad->pObj_conform); + access_retm_if(!ad->pObj_layout_main, "elm_layout_add() error."); + + elm_layout_theme_set(ad->pObj_layout_main, "layout", "application", "default"); + evas_object_size_hint_weight_set(ad->pObj_layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_part_content_set(ad->pObj_conform, "elm.swallow.content", ad->pObj_layout_main); + evas_object_show(ad->pObj_layout_main); + + /* Add a navigation frame */ + ad->pObj_nf = elm_naviframe_add(ad->pObj_layout_main); + access_retm_if(!ad->pObj_nf, "elm_naviframe_add() error."); + elm_naviframe_prev_btn_auto_pushed_set(ad->pObj_nf, EINA_TRUE); + elm_object_part_content_set(ad->pObj_layout_main, "elm.swallow.content", ad->pObj_nf); // Set a content to an object + evas_object_size_hint_weight_set(ad->pObj_nf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(ad->pObj_nf, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(ad->pObj_nf); + + eext_object_event_callback_add(ad->pObj_nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL); +} + +/* + * Delete window + */ +static void +__setting_accessibility_win_del_cb(void *data, Evas_Object *obj, void *event_info) +{ + DBG("API() entered."); + + DBG("elm_exit() run(start)."); + elm_exit(); +} + +/* + * Create window + */ +static Evas_Object* +__setting_accessibility_create_win(const char *name) +{ + DBG("API() entered."); + + Evas_Object *pObj = NULL; + + pObj = elm_win_add(NULL, name, ELM_WIN_BASIC); + access_retv_if(!pObj, false); + + elm_win_title_set(pObj, name); + elm_win_autodel_set(pObj, EINA_TRUE); + elm_win_conformant_set(pObj, EINA_TRUE); + + if (elm_win_wm_rotation_supported_get(pObj)) { + int rots[4] = { 0, 90, 180, 270 }; + elm_win_wm_rotation_available_rotations_set(pObj, (const int*)(&rots), 4); + } + + elm_win_indicator_mode_set(pObj, ELM_WIN_INDICATOR_HIDE); + + evas_object_smart_callback_add(pObj, "delete,request", __setting_accessibility_win_del_cb, NULL); // callback when window destroyed + + return pObj; +} + +static bool +app_create(void *data) +{ + DBG("API() entered."); + + SettingAccessibilityAppData *ad = (SettingAccessibilityAppData *)data; + ad->pObj_win_main = __setting_accessibility_create_win(SETTING_ACCESSIBILITY_PACKAGE_NAME); + access_retv_if(!ad->pObj_win_main, false); + + double scale = elm_config_scale_get(); + if (scale < 1.0) elm_config_scale_set(1.0); + + char *pLocale = NULL; + + pLocale = vconf_get_str(VCONFKEY_LANGSET); + if (pLocale) { + elm_language_set(pLocale); + free(pLocale); + pLocale = NULL; + } + + evas_object_show(ad->pObj_win_main); + + __setting_accessibility_create_common_view(ad); + + // Display accessibility menu + setting_accessibility_menu_create_view(ad); + + return true; +} + +static void +app_control(app_control_h app_control, void *data) +{ + /* Handle the launch request. */ + SettingAccessibilityAppData *ad = (SettingAccessibilityAppData *)data; + access_ret_if(!ad); + + DBG("API() entered."); + + __setting_accessibility_create_common_view(ad); + setting_accessibility_menu_create_view(ad); + elm_win_activate(ad->pObj_win_main); +} + +static void +app_pause(void *data) +{ + SettingAccessibilityAppData *ad = (SettingAccessibilityAppData *)data; + DBG(""); + /* Take necessary actions when application becomes invisible. */ +} + +static void +app_resume(void *data) +{ + SettingAccessibilityAppData *ad = (SettingAccessibilityAppData *)data; + DBG(""); + /* Take necessary actions when application becomes visible. */ +} + +static void +app_terminate(void *data) +{ + SettingAccessibilityAppData *ad = (SettingAccessibilityAppData *)data; + DBG(""); + /* Release all resources. */ + + if (!ad) + return; +} + +static void +ui_app_lang_changed(app_event_info_h event_info, void *user_data) +{ + DBG(""); + /*APP_EVENT_LANGUAGE_CHANGED*/ + char *pLocale = NULL; + + pLocale = vconf_get_str(VCONFKEY_LANGSET); + if (pLocale) { + elm_language_set(pLocale); + + free(pLocale); + pLocale = NULL; + } +} + +static void +ui_app_orient_changed(app_event_info_h event_info, void *user_data) +{ + DBG(""); + /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/ +} + +static void +ui_app_region_changed(app_event_info_h event_info, void *user_data) +{ + DBG(""); + /*APP_EVENT_REGION_FORMAT_CHANGED*/ +} + +static void +ui_app_low_battery(app_event_info_h event_info, void *user_data) +{ + DBG(""); + /*APP_EVENT_LOW_BATTERY*/ +} + +static void +ui_app_low_memory(app_event_info_h event_info, void *user_data) +{ + DBG(""); + /*APP_EVENT_LOW_MEMORY*/ +} + +int +main(int argc, char *argv[]) +{ + SettingAccessibilityAppData ad; + int ret = 0; + + ui_app_lifecycle_callback_s event_callback = {0, }; + app_event_handler_h handlers[5] = {NULL, }; + + event_callback.create = app_create; + event_callback.terminate = app_terminate; + event_callback.pause = app_pause; + event_callback.resume = app_resume; + event_callback.app_control = app_control; + + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad); + + memset(&ad, 0x0, sizeof(SettingAccessibilityAppData)); + ret = ui_app_main(argc, argv, &event_callback, &ad); + if (ret != APP_ERROR_NONE) { + LOGW("ui_app_main failed, Err=%d\n", ret); + } + + return ret; +} + |