From f0f2a70519e109c7999adc84036d98dc13269d7e Mon Sep 17 00:00:00 2001 From: hoejoo lee Date: Thu, 11 Jun 2015 14:48:48 +0900 Subject: [PATCH] merge from 2.4 , block compile error Change-Id: I2408a20ba7ce2de87ec104341cdb6cb2923017e8 --- CMakeLists.txt | 184 +- LICENSE | 204 ++ LICENSE.Flora | 206 -- NOTICE | 4 +- daemon/accessibility.c | 114 + daemon/accessibility.h | 35 + daemon/common.c | 340 ++- daemon/common.h | 46 +- daemon/common_uic.c | 375 +++ daemon/common_uic.h | 43 + daemon/common_uic_x11.c | 364 +++ daemon/datetime/datetime.c | 346 +++ daemon/datetime/datetime.h | 26 + daemon/datetime/util-time.c | 1392 ++++++++++ daemon/datetime/util-time.h | 28 + daemon/dbus_utility.c | 59 + daemon/dbus_utility.h | 23 + daemon/device/brightness.c | 762 ++++-- daemon/handler_controller.c | 81 + daemon/handler_controller.h | 31 + daemon/idletxt/idletxt.c | 599 ----- daemon/list_util.c | 614 ++++- daemon/list_util.h | 24 +- daemon/media.c | 319 ++- daemon/media.h | 29 +- daemon/minictrl/minictrl.c | 446 +++- daemon/minictrl/minictrl.h | 24 + daemon/modules.c | 99 +- daemon/modules.h | 28 +- daemon/notifications/activenoti.c | 1328 +++++++++ daemon/notifications/animated_image.c | 66 +- daemon/notifications/animated_image.h | 14 +- daemon/notifications/noti.c | 1251 +++++---- daemon/notifications/noti.h | 30 +- daemon/notifications/noti_box.c | 1131 ++++++-- daemon/notifications/noti_box.h | 55 +- daemon/notifications/noti_gridbox.c | 874 ++++-- daemon/notifications/noti_gridbox.h | 32 +- daemon/notifications/noti_list_item.c | 958 +++---- daemon/notifications/noti_list_item.h | 80 +- daemon/notifications/noti_listbox.c | 924 +++++-- daemon/notifications/noti_listbox.h | 40 +- daemon/notifications/noti_node.c | 60 +- daemon/notifications/noti_node.h | 23 +- daemon/notifications/noti_section.c | 144 +- daemon/notifications/noti_section.h | 19 +- daemon/notifications/noti_util.c | 268 +- daemon/notifications/noti_util.h | 16 +- daemon/notifications/noti_view.c | 201 ++ daemon/notifications/noti_view.h | 26 + daemon/notifications/noti_view_boxtype.c | 1016 +++++++ daemon/notifications/noti_view_listype.c | 362 +++ daemon/notifications/noti_view_ongoing.c | 513 ++++ daemon/notifications/noti_win.c | 220 +- daemon/notifications/noti_win.h | 14 +- daemon/notifications/noti_win_x11.c | 307 +++ daemon/notifications/status_msg.c | 315 --- daemon/notifications/ticker.c | 841 ------ daemon/page/page_base.c | 317 +++ daemon/page/page_base.h | 29 + daemon/page/page_edit.c | 302 +++ daemon/page/page_edit.h | 31 + daemon/page/page_setting_all.c | 289 ++ daemon/page/page_setting_all.h | 32 + daemon/page/pager.c | 559 ++++ daemon/page/pager.h | 51 + daemon/page/pager_common.c | 190 ++ daemon/page/pager_common.h | 34 + daemon/page/pager_common_x11.c | 189 ++ daemon/preference.c | 183 ++ daemon/preference.h | 41 + daemon/quickpanel-ui.c | 1346 +++++----- daemon/quickpanel-ui.h | 88 +- daemon/quickpanel-ui_x11.c | 957 +++++++ daemon/service/animated_icon.c | 93 + daemon/service/animated_icon.h | 35 + daemon/service/configuration.c | 86 + daemon/service/configuration.h | 28 + daemon/service/emergency_mode.c | 317 +++ daemon/service/emergency_mode.h | 32 + daemon/service/keyboard.c | 160 ++ daemon/service/keyboard.h | 29 + daemon/service/keyboard_x.c | 333 +++ daemon/service/keyboard_x.h | 29 + daemon/service/keyboard_x_x11.c | 322 +++ daemon/service/noti_led.c | 409 ++- daemon/service/noti_led.h | 29 +- daemon/service/reminder.c | 302 +++ daemon/service/reminder.h | 27 + daemon/service/smart_alert.c | 85 + daemon/service/smart_alert.h | 37 + daemon/service/uninstall.c | 147 + daemon/service/uninstall.h | 27 + daemon/settings/modules/assistive_light.c | 183 ++ daemon/settings/modules/bluetooth.c | 241 ++ daemon/settings/modules/flightmode.c | 424 +++ daemon/settings/modules/gps.c | 372 +++ daemon/settings/modules/mobile_data.c | 493 ++++ daemon/settings/modules/rotate-lock.c | 214 ++ daemon/settings/modules/sound-profile.c | 300 +++ daemon/settings/modules/tethering.c | 461 ++++ daemon/settings/modules/ultra_power_saving.c | 255 ++ daemon/settings/modules/wifi.c | 579 ++++ daemon/settings/setting_module_api.c | 291 ++ daemon/settings/setting_module_api.h | 57 + daemon/settings/setting_utils.c | 632 +++++ daemon/settings/setting_utils.h | 73 + daemon/settings/setting_utils_x11.c | 629 +++++ daemon/settings/settings.c | 479 ++++ daemon/settings/settings.h | 113 + daemon/settings/settings_gridbox.c | 490 ++++ daemon/settings/settings_gridbox.h | 36 + daemon/settings/settings_icon_common.c | 259 ++ daemon/settings/settings_icon_common.h | 29 + daemon/settings/settings_ipc.c | 202 ++ daemon/settings/settings_ipc.h | 25 + daemon/settings/settings_view_all.c | 286 ++ daemon/settings/settings_view_all.h | 24 + daemon/settings/settings_view_featured.c | 390 +++ daemon/settings/settings_view_featured.h | 27 + daemon/sim_controller.c | 769 ++++++ daemon/sim_controller.h | 29 + daemon/vi/vi_manager.c | 468 ++++ daemon/vi/vi_manager.h | 103 + data/CMakeLists.txt | 28 +- data/color_classes.edc | 379 +++ data/images/B31_help_tap_1_default.png | Bin 0 -> 8374 bytes data/images/B32_help_start_right_01.png | Bin 0 -> 3369 bytes data/images/B32_help_start_right_02.png | Bin 0 -> 3382 bytes data/images/B32_help_start_right_03.png | Bin 0 -> 3388 bytes data/images/B32_help_start_right_04.png | Bin 0 -> 3391 bytes data/images/B32_notification_tray_effect_bg_01.png | Bin 0 -> 31895 bytes data/images/B32_notification_tray_effect_l_bg.png | Bin 0 -> 31014 bytes data/images/bg_press.#.png | Bin 0 -> 975 bytes data/images/core_activity_Indicator_medium_00.png | Bin 0 -> 1796 bytes data/images/core_activity_Indicator_medium_01.png | Bin 0 -> 1788 bytes data/images/core_activity_Indicator_medium_02.png | Bin 0 -> 1786 bytes data/images/core_activity_Indicator_medium_03.png | Bin 0 -> 1778 bytes data/images/core_activity_Indicator_medium_04.png | Bin 0 -> 1769 bytes data/images/core_activity_Indicator_medium_05.png | Bin 0 -> 1776 bytes data/images/core_activity_Indicator_medium_06.png | Bin 0 -> 1767 bytes data/images/core_activity_Indicator_medium_07.png | Bin 0 -> 1765 bytes data/images/core_activity_Indicator_medium_08.png | Bin 0 -> 1778 bytes data/images/core_activity_Indicator_medium_09.png | Bin 0 -> 1789 bytes data/images/core_activity_Indicator_medium_10.png | Bin 0 -> 1783 bytes data/images/core_activity_Indicator_medium_11.png | Bin 0 -> 1781 bytes data/images/core_activity_Indicator_medium_12.png | Bin 0 -> 1771 bytes data/images/core_activity_Indicator_medium_13.png | Bin 0 -> 1777 bytes data/images/core_activity_Indicator_medium_14.png | Bin 0 -> 1791 bytes data/images/core_activity_Indicator_medium_15.png | Bin 0 -> 1793 bytes data/images/core_activity_Indicator_medium_16.png | Bin 0 -> 1794 bytes data/images/core_activity_Indicator_medium_17.png | Bin 0 -> 1780 bytes data/images/core_activity_Indicator_medium_18.png | Bin 0 -> 1798 bytes data/images/core_activity_Indicator_medium_19.png | Bin 0 -> 1790 bytes data/images/core_activity_Indicator_medium_20.png | Bin 0 -> 1789 bytes data/images/core_activity_Indicator_medium_21.png | Bin 0 -> 1778 bytes data/images/core_activity_Indicator_medium_22.png | Bin 0 -> 1789 bytes data/images/core_activity_Indicator_medium_23.png | Bin 0 -> 1786 bytes data/images/core_activity_Indicator_medium_24.png | Bin 0 -> 1777 bytes data/images/core_activity_Indicator_medium_25.png | Bin 0 -> 1770 bytes data/images/core_activity_Indicator_medium_26.png | Bin 0 -> 1789 bytes data/images/core_activity_Indicator_medium_27.png | Bin 0 -> 1788 bytes data/images/core_activity_Indicator_medium_28.png | Bin 0 -> 1791 bytes data/images/core_activity_Indicator_medium_29.png | Bin 0 -> 1809 bytes data/images/core_icon_badge_container.#.png | Bin 0 -> 1422 bytes data/images/core_list_button_bg.#.png | Bin 0 -> 1722 bytes data/images/core_probress_bar.#.png | Bin 0 -> 1063 bytes data/images/core_probress_bar.png | Bin 0 -> 1008 bytes data/images/core_probressbar_bg.#.png | Bin 0 -> 1063 bytes data/images/core_progress_bar.#.png | Bin 0 -> 1008 bytes data/images/core_progress_bar.png | Bin 0 -> 1008 bytes data/images/core_progressbar_bg.#.png | Bin 0 -> 1011 bytes data/images/core_progressbar_bg.png | Bin 0 -> 1011 bytes data/images/core_slider_center_point_bg.png | Bin 0 -> 944 bytes data/images/core_slider_handle_normal.png | Bin 0 -> 1331 bytes data/images/core_slider_handle_press.png | Bin 0 -> 1745 bytes data/images/core_theme_bg_01.png | Bin 0 -> 57845 bytes data/images/handler_bg.#.png | Bin 0 -> 968 bytes data/images/handler_bg_ef.#.png | Bin 0 -> 2838 bytes data/images/handler_btn.png | Bin 0 -> 1138 bytes data/images/handler_btn_02.png | Bin 0 -> 1428 bytes data/images/icon_arrow_down.png | Bin 0 -> 3094 bytes data/images/icon_arrow_up.png | Bin 0 -> 3088 bytes data/images/icon_bg.png | Bin 0 -> 3807 bytes data/images/icon_bg_press.png | Bin 0 -> 3924 bytes data/images/icon_bg_small.png | Bin 0 -> 3069 bytes data/images/icon_edit.png | Bin 0 -> 3505 bytes data/images/icon_indicator_setting.png | Bin 0 -> 1705 bytes data/images/icon_search.png | Bin 0 -> 3448 bytes data/images/icon_settings.png | Bin 0 -> 3524 bytes data/images/line_indicator_divider.png | Bin 0 -> 926 bytes data/images/quick_btn_close_white_dim.png | Bin 0 -> 1227 bytes data/images/quick_btn_close_white_nor.png | Bin 0 -> 1250 bytes data/images/quick_btn_close_white_press.png | Bin 0 -> 2108 bytes data/images/quick_button_each_bg.png | Bin 0 -> 3067 bytes data/images/quick_button_each_bg_land.png | Bin 0 -> 3059 bytes data/images/quick_button_each_ef.png | Bin 0 -> 3104 bytes data/images/quick_button_each_ef_land.png | Bin 0 -> 4876 bytes data/images/quick_button_over.png | Bin 0 -> 1216 bytes data/images/quick_button_over_land.png | Bin 0 -> 3073 bytes data/images/quick_handle.png | Bin 0 -> 3209 bytes data/images/quick_icon_brightness.png | Bin 0 -> 2099 bytes data/images/quick_icon_brightness_00.png | Bin 0 -> 1810 bytes data/images/quick_icon_brightness_01.png | Bin 0 -> 1728 bytes data/images/quick_icon_brightness_02.png | Bin 0 -> 1762 bytes data/images/quick_icon_brightness_03.png | Bin 0 -> 1764 bytes data/images/quick_icon_brightness_04.png | Bin 0 -> 1758 bytes data/images/quick_icon_brightness_05.png | Bin 0 -> 1736 bytes data/images/quick_icon_brightness_06.png | Bin 0 -> 1727 bytes data/images/quick_icon_brightness_07.png | Bin 0 -> 1751 bytes data/images/quick_icon_brightness_08.png | Bin 0 -> 1713 bytes data/images/quick_icon_brightness_09.png | Bin 0 -> 1696 bytes data/images/quick_icon_brightness_10.png | Bin 0 -> 1684 bytes data/images/quick_icon_brightness_11.png | Bin 0 -> 1643 bytes data/images/quick_menu_divide.png | Bin 0 -> 2803 bytes data/images/quick_menu_divide_highlight.png | Bin 0 -> 2803 bytes data/images/quick_menu_touch.png | Bin 0 -> 2989 bytes data/images/quick_standard_btn_focus.9.png | Bin 0 -> 1544 bytes data/images/quick_standard_btn_nor.9.png | Bin 0 -> 429 bytes data/images/quick_standard_btn_nor.png | Bin 0 -> 648 bytes data/images/quick_standard_btn_press.9.png | Bin 0 -> 1322 bytes data/images/toggle_mw_bg_nor.png | Bin 0 -> 4500 bytes data/images/toggle_mw_bg_touch.png | Bin 0 -> 6471 bytes .../Q02_Notification_brightness.png | Bin data/images_icon/Q02_Notification_multi_window.png | Bin 0 -> 1593 bytes data/images_icon/Q02_Notification_update.png | Bin 0 -> 980 bytes data/images_icon/btn_mw_circlization_dim.png | Bin 0 -> 7124 bytes data/images_icon/btn_mw_circlization_nor.png | Bin 0 -> 7175 bytes data/images_icon/btn_mw_circlization_press.png | Bin 0 -> 5715 bytes data/images_icon/btn_mw_close_nor.png | Bin 0 -> 4936 bytes data/images_icon/btn_mw_close_press.png | Bin 0 -> 3761 bytes data/images_icon/btn_mw_squarization_dim.png | Bin 0 -> 7357 bytes data/images_icon/btn_mw_squarization_nor.png | Bin 0 -> 7405 bytes data/images_icon/btn_mw_squarization_press.png | Bin 0 -> 5853 bytes data/images_icon/noti_download_01.png | Bin 0 -> 1283 bytes data/images_icon/noti_download_02.png | Bin 0 -> 1295 bytes data/images_icon/noti_download_03.png | Bin 0 -> 1297 bytes data/images_icon/noti_download_04.png | Bin 0 -> 1288 bytes data/images_icon/noti_download_05.png | Bin 0 -> 1290 bytes data/images_icon/noti_download_complete.png | Bin 0 -> 1292 bytes data/images_icon/noti_install_01.png | Bin 0 -> 11299 bytes data/images_icon/noti_install_02.png | Bin 0 -> 11299 bytes data/images_icon/noti_install_03.png | Bin 0 -> 11299 bytes data/images_icon/noti_install_04.png | Bin 0 -> 11299 bytes data/images_icon/noti_install_05.png | Bin 0 -> 11299 bytes data/images_icon/noti_install_complete.png | Bin 0 -> 11299 bytes data/images_icon/noti_upload_01.png | Bin 0 -> 1265 bytes data/images_icon/noti_upload_02.png | Bin 0 -> 1275 bytes data/images_icon/noti_upload_03.png | Bin 0 -> 1274 bytes data/images_icon/noti_upload_04.png | Bin 0 -> 1273 bytes data/images_icon/noti_upload_05.png | Bin 0 -> 1265 bytes data/images_icon/noti_upload_complete.png | Bin 0 -> 1271 bytes data/images_icon/quick_button_icon_bg.png | Bin 0 -> 1110 bytes data/images_icon/quick_icon_allshare.png | Bin 0 -> 3965 bytes data/images_icon/quick_icon_auto_rotate.png | Bin 0 -> 1959 bytes data/images_icon/quick_icon_blocking_mode.png | Bin 0 -> 1624 bytes data/images_icon/quick_icon_bluetooth.png | Bin 0 -> 1914 bytes data/images_icon/quick_icon_command.png | Bin 0 -> 1911 bytes .../images_icon/quick_icon_downloadbooster_off.png | Bin 0 -> 1501 bytes data/images_icon/quick_icon_driving.png | Bin 0 -> 4347 bytes data/images_icon/quick_icon_flightmode.png | Bin 0 -> 1907 bytes data/images_icon/quick_icon_glovemode.png | Bin 0 -> 1661 bytes data/images_icon/quick_icon_gps.png | Bin 0 -> 1576 bytes data/images_icon/quick_icon_location.png | Bin 0 -> 1860 bytes data/images_icon/quick_icon_mirroring.png | Bin 0 -> 1473 bytes data/images_icon/quick_icon_mobile_data.png | Bin 0 -> 1709 bytes data/images_icon/quick_icon_multi_window.png | Bin 0 -> 1121 bytes data/images_icon/quick_icon_nfc.png | Bin 0 -> 1826 bytes data/images_icon/quick_icon_personal_mode.png | Bin 0 -> 1372 bytes data/images_icon/quick_icon_power_saving.png | Bin 0 -> 1567 bytes data/images_icon/quick_icon_private_mode.png | Bin 0 -> 1199 bytes data/images_icon/quick_icon_ready_to_share.png | Bin 0 -> 1392 bytes data/images_icon/quick_icon_sbeam.png | Bin 0 -> 1625 bytes data/images_icon/quick_icon_sf_vf.png | Bin 0 -> 1602 bytes data/images_icon/quick_icon_sf_vn.png | Bin 0 -> 2034 bytes data/images_icon/quick_icon_smart_stay.png | Bin 0 -> 2060 bytes data/images_icon/quick_icon_sn_vf.png | Bin 0 -> 1872 bytes data/images_icon/quick_icon_sn_vn.png | Bin 0 -> 1602 bytes data/images_icon/quick_icon_sync.png | Bin 0 -> 1696 bytes data/images_icon/quick_icon_torch.png | Bin 0 -> 1772 bytes data/images_icon/quick_icon_ultra_power_saving.png | Bin 0 -> 1358 bytes data/images_icon/quick_icon_wifi.png | Bin 0 -> 2055 bytes data/images_icon/quick_icon_wifi_tethering.png | Bin 0 -> 1682 bytes .../quick_standard_btn_nor.png | Bin .../quick_standard_btn_press.png | Bin data/images_icon/toggle_mw_hide_nor.png | Bin 0 -> 7232 bytes data/images_icon/toggle_mw_hide_press.png | Bin 0 -> 5735 bytes data/images_icon/toggle_mw_show_nor.png | Bin 0 -> 8061 bytes data/images_icon/toggle_mw_show_press.png | Bin 0 -> 6465 bytes .../Account/noti_account_samsung.png | Bin 0 -> 1801 bytes .../Account/noti_account_tizen.png | Bin 0 -> 1898 bytes .../images_noti_icons/Bluetooth/noti_bluetooth.png | Bin 0 -> 1601 bytes .../Bluetooth/noti_bluetooth_activated.png | Bin 0 -> 1746 bytes .../Bluetooth/noti_bluetooth_fail.png | Bin 0 -> 1821 bytes .../Bluetooth/noti_bluetooth_not_connected.png | Bin 0 -> 1650 bytes data/images_noti_icons/Calendar/noti_calendar.png | Bin 0 -> 1196 bytes .../Calendar/noti_calendar_alarm.png | Bin 0 -> 1801 bytes data/images_noti_icons/Clock/noti_clock_snooze.png | Bin 0 -> 1883 bytes data/images_noti_icons/Common/noti_download_01.png | Bin 0 -> 1283 bytes data/images_noti_icons/Common/noti_download_02.png | Bin 0 -> 1295 bytes data/images_noti_icons/Common/noti_download_03.png | Bin 0 -> 1297 bytes data/images_noti_icons/Common/noti_download_04.png | Bin 0 -> 1288 bytes data/images_noti_icons/Common/noti_download_05.png | Bin 0 -> 1290 bytes .../Common/noti_download_complete.png | Bin 0 -> 1292 bytes .../Common/noti_download_failed.png | Bin 0 -> 1612 bytes data/images_noti_icons/Common/noti_syncing.png | Bin 0 -> 3519 bytes data/images_noti_icons/Common/noti_upload_01.png | Bin 0 -> 1265 bytes data/images_noti_icons/Common/noti_upload_02.png | Bin 0 -> 1275 bytes data/images_noti_icons/Common/noti_upload_03.png | Bin 0 -> 1274 bytes data/images_noti_icons/Common/noti_upload_04.png | Bin 0 -> 1273 bytes data/images_noti_icons/Common/noti_upload_05.png | Bin 0 -> 1265 bytes .../Common/noti_upload_complete.png | Bin 0 -> 1271 bytes .../Common/noti_upload_failed.png | Bin 0 -> 1643 bytes .../Contact/noti_contact_default.png | Bin 0 -> 1980 bytes data/images_noti_icons/Drop box/moti_dropbox.png | Bin 0 -> 1808 bytes data/images_noti_icons/E-mail/noti_email.png | Bin 0 -> 1834 bytes .../E-mail/noti_email_delivery_report.png | Bin 0 -> 1727 bytes .../E-mail/noti_email_read_report.png | Bin 0 -> 1749 bytes .../E-mail/noti_email_scheduled.png | Bin 0 -> 1839 bytes data/images_noti_icons/E-mail/noti_email_sent.png | Bin 0 -> 1652 bytes .../Etc/Icon_tethering_unknown_usb_fail.png | Bin 0 -> 1745 bytes .../Etc/noti_accessory_connected.png | Bin 0 -> 1802 bytes data/images_noti_icons/Etc/noti_all_connected.png | Bin 0 -> 1726 bytes data/images_noti_icons/Etc/noti_auto_rejected.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_backup.png | Bin 0 -> 1776 bytes data/images_noti_icons/Etc/noti_battery_charge.png | Bin 0 -> 1378 bytes .../images_noti_icons/Etc/noti_battery_loading.png | Bin 0 -> 1166 bytes .../Etc/noti_bluetooth_download.png | Bin 0 -> 1713 bytes .../Etc/noti_camera_connected.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_chat.png | Bin 0 -> 11299 bytes .../Etc/noti_data_usage_warning.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_desktop_mode.png | Bin 0 -> 1208 bytes data/images_noti_icons/Etc/noti_dormant_mode.png | Bin 0 -> 11299 bytes .../Etc/noti_download_booster.png | Bin 0 -> 1350 bytes data/images_noti_icons/Etc/noti_ecb_mode.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_error.png | Bin 0 -> 11299 bytes .../Etc/noti_firewall_activated.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_fm_radio.png | Bin 0 -> 1406 bytes data/images_noti_icons/Etc/noti_fota.png | Bin 0 -> 11299 bytes .../images_noti_icons/Etc/noti_fota_completion.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_fota_postpone.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_gqs_on.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_gqs_searching.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_im.png | Bin 0 -> 1379 bytes data/images_noti_icons/Etc/noti_install_01.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_install_02.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_install_03.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_install_04.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_install_05.png | Bin 0 -> 11299 bytes .../Etc/noti_install_complete.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_install_failed.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_keyboard.png | Bin 0 -> 1192 bytes .../Etc/noti_keyboard_connected.png | Bin 0 -> 11299 bytes .../Etc/noti_mms_delivery_report.png | Bin 0 -> 1656 bytes data/images_noti_icons/Etc/noti_mms_failed.png | Bin 0 -> 1792 bytes data/images_noti_icons/Etc/noti_mms_problem.png | Bin 0 -> 1768 bytes data/images_noti_icons/Etc/noti_multi_email.png | Bin 0 -> 1572 bytes data/images_noti_icons/Etc/noti_multi_window.png | Bin 0 -> 1116 bytes .../Etc/noti_multiple_devices_connected.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_near_by_device.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_no_sim_full.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_print.png | Bin 0 -> 1430 bytes data/images_noti_icons/Etc/noti_print_waiting.png | Bin 0 -> 1641 bytes data/images_noti_icons/Etc/noti_rcs_chat.png | Bin 0 -> 1641 bytes .../Etc/noti_rcs_file_transfer.png | Bin 0 -> 1800 bytes data/images_noti_icons/Etc/noti_safe_mode.png | Bin 0 -> 1510 bytes .../images_noti_icons/Etc/noti_screen_recorder.png | Bin 0 -> 11299 bytes .../Etc/noti_screen_recorder_dim.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_sd_card.png | Bin 0 -> 11299 bytes .../Etc/noti_sd_card_decryption.png | Bin 0 -> 11299 bytes .../Etc/noti_sd_card_encryption.png | Bin 0 -> 11299 bytes .../Etc/noti_sd_card_encryption_error.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_sd_card_error.png | Bin 0 -> 11299 bytes .../images_noti_icons/Etc/noti_sd_card_prepare.png | Bin 0 -> 11299 bytes .../images_noti_icons/Etc/noti_sd_card_removed.png | Bin 0 -> 11299 bytes .../Etc/noti_shareshot_receive.png | Bin 0 -> 11299 bytes .../Etc/noti_shareshot_receive_problem.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_shareshot_send.png | Bin 0 -> 11299 bytes .../Etc/noti_shareshot_send_problem.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_side_sync.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_sim_toolkit.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_smart_stay.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_smemo_sync.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_spen.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_sync_error.png | Bin 0 -> 11299 bytes .../Etc/noti_tethering_usb_fail.png | Bin 0 -> 1693 bytes data/images_noti_icons/Etc/noti_tty_mode.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_tv.png | Bin 0 -> 11299 bytes .../Etc/noti_updated_complete.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_updated_failed.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_usb_connected.png | Bin 0 -> 1466 bytes data/images_noti_icons/Etc/noti_usb_fail.png | Bin 0 -> 1659 bytes .../Etc/noti_usb_mass_storage_connected.png | Bin 0 -> 1656 bytes .../Etc/noti_usb_unknown_fail.png | Bin 0 -> 1732 bytes data/images_noti_icons/Etc/noti_video.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_voice_mail.png | Bin 0 -> 1496 bytes data/images_noti_icons/Etc/noti_voice_mail_01.png | Bin 0 -> 1885 bytes data/images_noti_icons/Etc/noti_voice_mail_02.png | Bin 0 -> 1916 bytes data/images_noti_icons/Etc/noti_voice_mail_03.png | Bin 0 -> 1977 bytes data/images_noti_icons/Etc/noti_voice_memo.png | Bin 0 -> 11299 bytes .../Etc/noti_voice_recorder_paused.png | Bin 0 -> 11299 bytes .../Etc/noti_voice_recorder_play.png | Bin 0 -> 11299 bytes data/images_noti_icons/Etc/noti_wifi_translate.png | Bin 0 -> 1906 bytes data/images_noti_icons/FOTA/noti_fota.png | Bin 0 -> 1311 bytes .../FOTA/noti_fota_completion.png | Bin 0 -> 1286 bytes data/images_noti_icons/FOTA/noti_fota_diagmon.png | Bin 0 -> 1603 bytes .../FOTA/noti_fota_diagmon_completion.png | Bin 0 -> 1563 bytes data/images_noti_icons/FOTA/noti_fota_postpone.png | Bin 0 -> 1426 bytes data/images_noti_icons/Facebook/noti_facebook.png | Bin 0 -> 1648 bytes .../Facebook/noti_facebook_female_default.png | Bin 0 -> 1894 bytes .../Facebook/noti_facebook_male_default.png | Bin 0 -> 1980 bytes .../Find my mobile/noti_FMM_call_log.png | Bin 0 -> 1359 bytes .../Find my mobile/noti_FMM_device_located.png | Bin 0 -> 1459 bytes .../Find my mobile/noti_FMM_device_unlocked.png | Bin 0 -> 1386 bytes .../Gallery/noti_gallery_image.png | Bin 0 -> 1383 bytes .../Gallery/noti_gallery_image_error.png | Bin 0 -> 1644 bytes .../Internet/noti_internet_flightmode.png | Bin 0 -> 1657 bytes .../images_noti_icons/Lock screen/noti_message.png | Bin 0 -> 1470 bytes .../Lock screen/noti_missed_call.png | Bin 0 -> 1649 bytes .../noti_battery_fully_charging.png | Bin 0 -> 1398 bytes .../noti_charging_battery_low.png | Bin 0 -> 1229 bytes .../noti_charging_cable_disconnected.png | Bin 0 -> 1347 bytes data/images_noti_icons/Message/noti_message.png | Bin 0 -> 1470 bytes .../images_noti_icons/Message/noti_message_OTA.png | Bin 0 -> 1817 bytes .../Message/noti_message_cb-msg.png | Bin 0 -> 1350 bytes .../Message/noti_message_delivery_report.png | Bin 0 -> 1656 bytes .../Message/noti_message_failed.png | Bin 0 -> 1597 bytes .../Message/noti_message_mms_failed.png | Bin 0 -> 1792 bytes .../Message/noti_message_mms_problem.png | Bin 0 -> 1768 bytes .../Message/noti_message_read_report.png | Bin 0 -> 1773 bytes .../Message/noti_message_reply.png | Bin 0 -> 1756 bytes .../Message/noti_message_scheduled.png | Bin 0 -> 1743 bytes .../Message/noti_message_sending.png | Bin 0 -> 1725 bytes .../Message/noti_message_sim-card.png | Bin 0 -> 1697 bytes data/images_noti_icons/Message/noti_mms.png | Bin 0 -> 1481 bytes data/images_noti_icons/Message/noti_voice_mail.png | Bin 0 -> 1496 bytes data/images_noti_icons/Multi SIM/noti_no_sim.png | Bin 0 -> 1544 bytes data/images_noti_icons/Multi SIM/noti_sim_full.png | Bin 0 -> 1559 bytes .../Patterns/noti_cooling_down.png | Bin 0 -> 1385 bytes .../Patterns/noti_screen_captured.png | Bin 0 -> 1383 bytes .../Private mode/noti_private_mode.png | Bin 0 -> 1195 bytes .../Send help messages/noti_icon_emergency.png | Bin 0 -> 1446 bytes .../Send help messages/noti_send_emergency_msg.png | Bin 0 -> 1807 bytes .../Share with contents/noti_icon_Id_default.png | Bin 0 -> 2002 bytes .../images_noti_icons/Tethering/noti_tethering.png | Bin 0 -> 1440 bytes .../Tethering/noti_tethering_all.png | Bin 0 -> 1786 bytes .../Tethering/noti_tethering_bt.png | Bin 0 -> 1845 bytes .../Tethering/noti_tethering_usb.png | Bin 0 -> 1888 bytes .../Tethering/noti_tethering_wifi.png | Bin 0 -> 1989 bytes .../Tizen store/noti_tizen_store.png | Bin 0 -> 1864 bytes data/images_noti_icons/Wi-Fi/noti_wifi.png | Bin 0 -> 3613 bytes .../Wi-Fi/noti_wifi_availablility_check1.png | Bin 0 -> 1954 bytes data/images_noti_icons/Wi-Fi/noti_wifi_direct.png | Bin 0 -> 1914 bytes .../Wi-Fi/noti_wifi_direct_auto_off.png | Bin 0 -> 1914 bytes .../images_noti_icons/Wi-Fi/noti_wifi_in_range.png | Bin 0 -> 3873 bytes .../Wi-Fi/noti_wifi_network_available.png | Bin 0 -> 3613 bytes .../Wi-Fi/noti_wifi_no_detected.png | Bin 0 -> 1954 bytes data/images_noti_icons/Wi-Fi/noti_wifi_no_sign.png | Bin 0 -> 3873 bytes .../Wi-Fi/noti_wifi_translate.png | Bin 0 -> 1906 bytes data/quickpanel | 1 + data/quickpanel.edc | 449 +++- data/quickpanel.png | Bin 5759 -> 0 bytes data/quickpanel.sh.in | 1 + data/quickpanel.xml.in | 4 +- data/quickpanel_activenoti.edc | 630 +++++ data/quickpanel_animated_icon.edc | 515 ++++ data/quickpanel_brightness.edc | 646 +++-- data/quickpanel_datetime.edc | 391 +++ data/quickpanel_def.h | 146 +- data/quickpanel_images.edc | 77 + data/quickpanel_listbox.edc | 104 +- data/quickpanel_listitem_noti.edc | 680 +++++ data/quickpanel_listitem_noti_legacy.edc | 2814 ++++++++++++++++++++ data/quickpanel_listitem_ongoing.edc | 1208 +++++++++ data/quickpanel_minictrl.edc | 154 +- data/quickpanel_noti_section.edc | 640 ++++- data/quickpanel_notibox.edc | 1508 ++++------- data/quickpanel_page_edit.edc | 636 +++++ data/quickpanel_page_setting_all.edc | 163 ++ data/quickpanel_setting.edc | 784 ++++++ data/quickpanel_spn.edc | 157 -- data/quickpanel_textblock_slide_style.edc | 155 ++ data/quickpanel_theme.edc | 291 +- data/quickpanel_theme_element.edc | 1928 -------------- data/quickpanel_theme_progressbar.edc | 145 + data/quickpanel_theme_slider.edc | 694 +++++ data/sip.wav | Bin 8832 -> 0 bytes debian/changelog | 8 - debian/compat | 1 - debian/control | 17 - debian/org.tizen.quickpanel.install.in | 6 - debian/org.tizen.quickpanel.postinst.in | 13 - debian/rules | 114 - icons/settings_noti_panel.png | Bin 0 -> 6408 bytes org.tizen.quickpanel.efl | 97 + org.tizen.quickpanel.manifest | 11 + packaging/org.tizen.quickpanel.changes | 5 - packaging/org.tizen.quickpanel.manifest | 8 - packaging/org.tizen.quickpanel.spec | 115 +- packaging/quickpanel-system.service | 15 + packaging/quickpanel.service | 11 - po/CMakeLists.txt | 3 +- po/ar.po | 225 +- po/az.po | 223 +- po/bg.po | 219 +- po/ca.po | 221 +- po/cs.po | 219 +- po/da.po | 221 +- po/de.po | 186 ++ po/de_DE.po | 123 - po/el_GR.po | 221 +- po/en.po | 221 +- po/en_PH.po | 221 +- po/en_US.po | 221 +- po/es_ES.po | 221 +- po/es_MX.po | 123 - po/es_US.po | 186 ++ po/et.po | 219 +- po/eu.po | 221 +- po/fi.po | 219 +- po/fr.po | 186 ++ po/fr_CA.po | 221 +- po/fr_FR.po | 123 - po/ga.po | 219 +- po/gl.po | 221 +- po/hi.po | 223 +- po/hr.po | 221 +- po/hu.po | 221 +- po/hy.po | 223 +- po/is.po | 223 +- po/it_IT.po | 219 +- po/ja_JP.po | 223 +- po/ka.po | 221 +- po/kk.po | 223 +- po/ko_KR.po | 207 +- po/lt.po | 221 +- po/lv.po | 221 +- po/mk.po | 219 +- po/nb.po | 221 +- po/nl.po | 186 ++ po/nl_NL.po | 123 - po/pl.po | 219 +- po/pt_BR.po | 223 +- po/pt_PT.po | 223 +- po/ro.po | 221 +- po/ru_RU.po | 219 +- po/sk.po | 223 +- po/sl.po | 221 +- po/sr.po | 223 +- po/sv.po | 223 +- po/tr_TR.po | 221 +- po/uk.po | 219 +- po/uz.po | 225 +- po/zh_CN.po | 221 +- po/zh_HK.po | 221 +- po/zh_SG.po | 123 - po/zh_TW.po | 219 +- test/quickpanel_debug_util.c | 15 +- test/quickpanel_debug_util.h | 8 +- 559 files changed, 47805 insertions(+), 13560 deletions(-) create mode 100644 LICENSE delete mode 100644 LICENSE.Flora create mode 100644 daemon/accessibility.c create mode 100644 daemon/accessibility.h create mode 100644 daemon/common_uic.c create mode 100644 daemon/common_uic.h create mode 100644 daemon/common_uic_x11.c create mode 100644 daemon/datetime/datetime.c create mode 100644 daemon/datetime/datetime.h create mode 100644 daemon/datetime/util-time.c create mode 100644 daemon/datetime/util-time.h create mode 100644 daemon/dbus_utility.c create mode 100644 daemon/dbus_utility.h create mode 100644 daemon/handler_controller.c create mode 100644 daemon/handler_controller.h delete mode 100755 daemon/idletxt/idletxt.c create mode 100644 daemon/minictrl/minictrl.h create mode 100644 daemon/notifications/activenoti.c create mode 100644 daemon/notifications/noti_view.c create mode 100644 daemon/notifications/noti_view.h create mode 100644 daemon/notifications/noti_view_boxtype.c create mode 100644 daemon/notifications/noti_view_listype.c create mode 100644 daemon/notifications/noti_view_ongoing.c create mode 100644 daemon/notifications/noti_win_x11.c delete mode 100755 daemon/notifications/status_msg.c delete mode 100755 daemon/notifications/ticker.c create mode 100644 daemon/page/page_base.c create mode 100644 daemon/page/page_base.h create mode 100644 daemon/page/page_edit.c create mode 100644 daemon/page/page_edit.h create mode 100644 daemon/page/page_setting_all.c create mode 100644 daemon/page/page_setting_all.h create mode 100644 daemon/page/pager.c create mode 100644 daemon/page/pager.h create mode 100644 daemon/page/pager_common.c create mode 100644 daemon/page/pager_common.h create mode 100644 daemon/page/pager_common_x11.c create mode 100644 daemon/preference.c create mode 100644 daemon/preference.h create mode 100644 daemon/quickpanel-ui_x11.c create mode 100644 daemon/service/animated_icon.c create mode 100644 daemon/service/animated_icon.h create mode 100644 daemon/service/configuration.c create mode 100644 daemon/service/configuration.h create mode 100644 daemon/service/emergency_mode.c create mode 100644 daemon/service/emergency_mode.h create mode 100644 daemon/service/keyboard.c create mode 100644 daemon/service/keyboard.h create mode 100644 daemon/service/keyboard_x.c create mode 100644 daemon/service/keyboard_x.h create mode 100644 daemon/service/keyboard_x_x11.c create mode 100644 daemon/service/reminder.c create mode 100644 daemon/service/reminder.h create mode 100644 daemon/service/smart_alert.c create mode 100644 daemon/service/smart_alert.h create mode 100644 daemon/service/uninstall.c create mode 100644 daemon/service/uninstall.h create mode 100644 daemon/settings/modules/assistive_light.c create mode 100644 daemon/settings/modules/bluetooth.c create mode 100644 daemon/settings/modules/flightmode.c create mode 100644 daemon/settings/modules/gps.c create mode 100644 daemon/settings/modules/mobile_data.c create mode 100644 daemon/settings/modules/rotate-lock.c create mode 100644 daemon/settings/modules/sound-profile.c create mode 100644 daemon/settings/modules/tethering.c create mode 100644 daemon/settings/modules/ultra_power_saving.c create mode 100644 daemon/settings/modules/wifi.c create mode 100644 daemon/settings/setting_module_api.c create mode 100644 daemon/settings/setting_module_api.h create mode 100644 daemon/settings/setting_utils.c create mode 100644 daemon/settings/setting_utils.h create mode 100644 daemon/settings/setting_utils_x11.c create mode 100644 daemon/settings/settings.c create mode 100644 daemon/settings/settings.h create mode 100644 daemon/settings/settings_gridbox.c create mode 100644 daemon/settings/settings_gridbox.h create mode 100644 daemon/settings/settings_icon_common.c create mode 100644 daemon/settings/settings_icon_common.h create mode 100644 daemon/settings/settings_ipc.c create mode 100644 daemon/settings/settings_ipc.h create mode 100644 daemon/settings/settings_view_all.c create mode 100644 daemon/settings/settings_view_all.h create mode 100644 daemon/settings/settings_view_featured.c create mode 100644 daemon/settings/settings_view_featured.h create mode 100644 daemon/sim_controller.c create mode 100644 daemon/sim_controller.h create mode 100644 daemon/vi/vi_manager.c create mode 100644 daemon/vi/vi_manager.h create mode 100644 data/color_classes.edc create mode 100644 data/images/B31_help_tap_1_default.png create mode 100644 data/images/B32_help_start_right_01.png create mode 100644 data/images/B32_help_start_right_02.png create mode 100644 data/images/B32_help_start_right_03.png create mode 100644 data/images/B32_help_start_right_04.png create mode 100644 data/images/B32_notification_tray_effect_bg_01.png create mode 100644 data/images/B32_notification_tray_effect_l_bg.png create mode 100644 data/images/bg_press.#.png create mode 100644 data/images/core_activity_Indicator_medium_00.png create mode 100644 data/images/core_activity_Indicator_medium_01.png create mode 100644 data/images/core_activity_Indicator_medium_02.png create mode 100644 data/images/core_activity_Indicator_medium_03.png create mode 100644 data/images/core_activity_Indicator_medium_04.png create mode 100644 data/images/core_activity_Indicator_medium_05.png create mode 100644 data/images/core_activity_Indicator_medium_06.png create mode 100644 data/images/core_activity_Indicator_medium_07.png create mode 100644 data/images/core_activity_Indicator_medium_08.png create mode 100644 data/images/core_activity_Indicator_medium_09.png create mode 100644 data/images/core_activity_Indicator_medium_10.png create mode 100644 data/images/core_activity_Indicator_medium_11.png create mode 100644 data/images/core_activity_Indicator_medium_12.png create mode 100644 data/images/core_activity_Indicator_medium_13.png create mode 100644 data/images/core_activity_Indicator_medium_14.png create mode 100644 data/images/core_activity_Indicator_medium_15.png create mode 100644 data/images/core_activity_Indicator_medium_16.png create mode 100644 data/images/core_activity_Indicator_medium_17.png create mode 100644 data/images/core_activity_Indicator_medium_18.png create mode 100644 data/images/core_activity_Indicator_medium_19.png create mode 100644 data/images/core_activity_Indicator_medium_20.png create mode 100644 data/images/core_activity_Indicator_medium_21.png create mode 100644 data/images/core_activity_Indicator_medium_22.png create mode 100644 data/images/core_activity_Indicator_medium_23.png create mode 100644 data/images/core_activity_Indicator_medium_24.png create mode 100644 data/images/core_activity_Indicator_medium_25.png create mode 100644 data/images/core_activity_Indicator_medium_26.png create mode 100644 data/images/core_activity_Indicator_medium_27.png create mode 100644 data/images/core_activity_Indicator_medium_28.png create mode 100644 data/images/core_activity_Indicator_medium_29.png create mode 100644 data/images/core_icon_badge_container.#.png create mode 100644 data/images/core_list_button_bg.#.png create mode 100644 data/images/core_probress_bar.#.png create mode 100644 data/images/core_probress_bar.png create mode 100644 data/images/core_probressbar_bg.#.png create mode 100644 data/images/core_progress_bar.#.png create mode 100644 data/images/core_progress_bar.png create mode 100644 data/images/core_progressbar_bg.#.png create mode 100644 data/images/core_progressbar_bg.png create mode 100644 data/images/core_slider_center_point_bg.png create mode 100644 data/images/core_slider_handle_normal.png create mode 100644 data/images/core_slider_handle_press.png create mode 100644 data/images/core_theme_bg_01.png create mode 100644 data/images/handler_bg.#.png create mode 100644 data/images/handler_bg_ef.#.png create mode 100644 data/images/handler_btn.png create mode 100644 data/images/handler_btn_02.png create mode 100644 data/images/icon_arrow_down.png create mode 100644 data/images/icon_arrow_up.png create mode 100644 data/images/icon_bg.png create mode 100644 data/images/icon_bg_press.png create mode 100644 data/images/icon_bg_small.png create mode 100644 data/images/icon_edit.png create mode 100644 data/images/icon_indicator_setting.png create mode 100644 data/images/icon_search.png create mode 100644 data/images/icon_settings.png create mode 100644 data/images/line_indicator_divider.png create mode 100644 data/images/quick_btn_close_white_dim.png create mode 100644 data/images/quick_btn_close_white_nor.png create mode 100644 data/images/quick_btn_close_white_press.png create mode 100644 data/images/quick_button_each_bg.png create mode 100644 data/images/quick_button_each_bg_land.png create mode 100644 data/images/quick_button_each_ef.png create mode 100644 data/images/quick_button_each_ef_land.png create mode 100644 data/images/quick_button_over.png create mode 100644 data/images/quick_button_over_land.png create mode 100644 data/images/quick_handle.png create mode 100644 data/images/quick_icon_brightness.png create mode 100644 data/images/quick_icon_brightness_00.png create mode 100644 data/images/quick_icon_brightness_01.png create mode 100644 data/images/quick_icon_brightness_02.png create mode 100644 data/images/quick_icon_brightness_03.png create mode 100644 data/images/quick_icon_brightness_04.png create mode 100644 data/images/quick_icon_brightness_05.png create mode 100644 data/images/quick_icon_brightness_06.png create mode 100644 data/images/quick_icon_brightness_07.png create mode 100644 data/images/quick_icon_brightness_08.png create mode 100644 data/images/quick_icon_brightness_09.png create mode 100644 data/images/quick_icon_brightness_10.png create mode 100644 data/images/quick_icon_brightness_11.png create mode 100644 data/images/quick_menu_divide.png create mode 100644 data/images/quick_menu_divide_highlight.png create mode 100644 data/images/quick_menu_touch.png create mode 100644 data/images/quick_standard_btn_focus.9.png create mode 100644 data/images/quick_standard_btn_nor.9.png create mode 100644 data/images/quick_standard_btn_nor.png create mode 100644 data/images/quick_standard_btn_press.9.png create mode 100644 data/images/toggle_mw_bg_nor.png create mode 100644 data/images/toggle_mw_bg_touch.png rename data/{icons => images_icon}/Q02_Notification_brightness.png (100%) mode change 100755 => 100644 create mode 100644 data/images_icon/Q02_Notification_multi_window.png create mode 100644 data/images_icon/Q02_Notification_update.png create mode 100644 data/images_icon/btn_mw_circlization_dim.png create mode 100644 data/images_icon/btn_mw_circlization_nor.png create mode 100644 data/images_icon/btn_mw_circlization_press.png create mode 100644 data/images_icon/btn_mw_close_nor.png create mode 100644 data/images_icon/btn_mw_close_press.png create mode 100644 data/images_icon/btn_mw_squarization_dim.png create mode 100644 data/images_icon/btn_mw_squarization_nor.png create mode 100644 data/images_icon/btn_mw_squarization_press.png create mode 100644 data/images_icon/noti_download_01.png create mode 100644 data/images_icon/noti_download_02.png create mode 100644 data/images_icon/noti_download_03.png create mode 100644 data/images_icon/noti_download_04.png create mode 100644 data/images_icon/noti_download_05.png create mode 100644 data/images_icon/noti_download_complete.png create mode 100644 data/images_icon/noti_install_01.png create mode 100644 data/images_icon/noti_install_02.png create mode 100644 data/images_icon/noti_install_03.png create mode 100644 data/images_icon/noti_install_04.png create mode 100644 data/images_icon/noti_install_05.png create mode 100644 data/images_icon/noti_install_complete.png create mode 100644 data/images_icon/noti_upload_01.png create mode 100644 data/images_icon/noti_upload_02.png create mode 100644 data/images_icon/noti_upload_03.png create mode 100644 data/images_icon/noti_upload_04.png create mode 100644 data/images_icon/noti_upload_05.png create mode 100644 data/images_icon/noti_upload_complete.png create mode 100644 data/images_icon/quick_button_icon_bg.png create mode 100644 data/images_icon/quick_icon_allshare.png create mode 100644 data/images_icon/quick_icon_auto_rotate.png create mode 100644 data/images_icon/quick_icon_blocking_mode.png create mode 100644 data/images_icon/quick_icon_bluetooth.png create mode 100644 data/images_icon/quick_icon_command.png create mode 100644 data/images_icon/quick_icon_downloadbooster_off.png create mode 100644 data/images_icon/quick_icon_driving.png create mode 100644 data/images_icon/quick_icon_flightmode.png create mode 100644 data/images_icon/quick_icon_glovemode.png create mode 100644 data/images_icon/quick_icon_gps.png create mode 100644 data/images_icon/quick_icon_location.png create mode 100644 data/images_icon/quick_icon_mirroring.png create mode 100644 data/images_icon/quick_icon_mobile_data.png create mode 100644 data/images_icon/quick_icon_multi_window.png create mode 100644 data/images_icon/quick_icon_nfc.png create mode 100644 data/images_icon/quick_icon_personal_mode.png create mode 100644 data/images_icon/quick_icon_power_saving.png create mode 100644 data/images_icon/quick_icon_private_mode.png create mode 100644 data/images_icon/quick_icon_ready_to_share.png create mode 100644 data/images_icon/quick_icon_sbeam.png create mode 100644 data/images_icon/quick_icon_sf_vf.png create mode 100644 data/images_icon/quick_icon_sf_vn.png create mode 100644 data/images_icon/quick_icon_smart_stay.png create mode 100644 data/images_icon/quick_icon_sn_vf.png create mode 100644 data/images_icon/quick_icon_sn_vn.png create mode 100644 data/images_icon/quick_icon_sync.png create mode 100644 data/images_icon/quick_icon_torch.png create mode 100644 data/images_icon/quick_icon_ultra_power_saving.png create mode 100644 data/images_icon/quick_icon_wifi.png create mode 100644 data/images_icon/quick_icon_wifi_tethering.png rename data/{icons => images_icon}/quick_standard_btn_nor.png (100%) mode change 100755 => 100644 rename data/{icons => images_icon}/quick_standard_btn_press.png (100%) mode change 100755 => 100644 create mode 100644 data/images_icon/toggle_mw_hide_nor.png create mode 100644 data/images_icon/toggle_mw_hide_press.png create mode 100644 data/images_icon/toggle_mw_show_nor.png create mode 100644 data/images_icon/toggle_mw_show_press.png create mode 100644 data/images_noti_icons/Account/noti_account_samsung.png create mode 100644 data/images_noti_icons/Account/noti_account_tizen.png create mode 100644 data/images_noti_icons/Bluetooth/noti_bluetooth.png create mode 100644 data/images_noti_icons/Bluetooth/noti_bluetooth_activated.png create mode 100644 data/images_noti_icons/Bluetooth/noti_bluetooth_fail.png create mode 100644 data/images_noti_icons/Bluetooth/noti_bluetooth_not_connected.png create mode 100644 data/images_noti_icons/Calendar/noti_calendar.png create mode 100644 data/images_noti_icons/Calendar/noti_calendar_alarm.png create mode 100644 data/images_noti_icons/Clock/noti_clock_snooze.png create mode 100644 data/images_noti_icons/Common/noti_download_01.png create mode 100644 data/images_noti_icons/Common/noti_download_02.png create mode 100644 data/images_noti_icons/Common/noti_download_03.png create mode 100644 data/images_noti_icons/Common/noti_download_04.png create mode 100644 data/images_noti_icons/Common/noti_download_05.png create mode 100644 data/images_noti_icons/Common/noti_download_complete.png create mode 100644 data/images_noti_icons/Common/noti_download_failed.png create mode 100644 data/images_noti_icons/Common/noti_syncing.png create mode 100644 data/images_noti_icons/Common/noti_upload_01.png create mode 100644 data/images_noti_icons/Common/noti_upload_02.png create mode 100644 data/images_noti_icons/Common/noti_upload_03.png create mode 100644 data/images_noti_icons/Common/noti_upload_04.png create mode 100644 data/images_noti_icons/Common/noti_upload_05.png create mode 100644 data/images_noti_icons/Common/noti_upload_complete.png create mode 100644 data/images_noti_icons/Common/noti_upload_failed.png create mode 100644 data/images_noti_icons/Contact/noti_contact_default.png create mode 100644 data/images_noti_icons/Drop box/moti_dropbox.png create mode 100644 data/images_noti_icons/E-mail/noti_email.png create mode 100644 data/images_noti_icons/E-mail/noti_email_delivery_report.png create mode 100644 data/images_noti_icons/E-mail/noti_email_read_report.png create mode 100644 data/images_noti_icons/E-mail/noti_email_scheduled.png create mode 100644 data/images_noti_icons/E-mail/noti_email_sent.png create mode 100644 data/images_noti_icons/Etc/Icon_tethering_unknown_usb_fail.png create mode 100644 data/images_noti_icons/Etc/noti_accessory_connected.png create mode 100644 data/images_noti_icons/Etc/noti_all_connected.png create mode 100644 data/images_noti_icons/Etc/noti_auto_rejected.png create mode 100644 data/images_noti_icons/Etc/noti_backup.png create mode 100644 data/images_noti_icons/Etc/noti_battery_charge.png create mode 100644 data/images_noti_icons/Etc/noti_battery_loading.png create mode 100644 data/images_noti_icons/Etc/noti_bluetooth_download.png create mode 100644 data/images_noti_icons/Etc/noti_camera_connected.png create mode 100644 data/images_noti_icons/Etc/noti_chat.png create mode 100644 data/images_noti_icons/Etc/noti_data_usage_warning.png create mode 100644 data/images_noti_icons/Etc/noti_desktop_mode.png create mode 100644 data/images_noti_icons/Etc/noti_dormant_mode.png create mode 100644 data/images_noti_icons/Etc/noti_download_booster.png create mode 100644 data/images_noti_icons/Etc/noti_ecb_mode.png create mode 100644 data/images_noti_icons/Etc/noti_error.png create mode 100644 data/images_noti_icons/Etc/noti_firewall_activated.png create mode 100644 data/images_noti_icons/Etc/noti_fm_radio.png create mode 100644 data/images_noti_icons/Etc/noti_fota.png create mode 100644 data/images_noti_icons/Etc/noti_fota_completion.png create mode 100644 data/images_noti_icons/Etc/noti_fota_postpone.png create mode 100644 data/images_noti_icons/Etc/noti_gqs_on.png create mode 100644 data/images_noti_icons/Etc/noti_gqs_searching.png create mode 100644 data/images_noti_icons/Etc/noti_im.png create mode 100644 data/images_noti_icons/Etc/noti_install_01.png create mode 100644 data/images_noti_icons/Etc/noti_install_02.png create mode 100644 data/images_noti_icons/Etc/noti_install_03.png create mode 100644 data/images_noti_icons/Etc/noti_install_04.png create mode 100644 data/images_noti_icons/Etc/noti_install_05.png create mode 100644 data/images_noti_icons/Etc/noti_install_complete.png create mode 100644 data/images_noti_icons/Etc/noti_install_failed.png create mode 100644 data/images_noti_icons/Etc/noti_keyboard.png create mode 100644 data/images_noti_icons/Etc/noti_keyboard_connected.png create mode 100644 data/images_noti_icons/Etc/noti_mms_delivery_report.png create mode 100644 data/images_noti_icons/Etc/noti_mms_failed.png create mode 100644 data/images_noti_icons/Etc/noti_mms_problem.png create mode 100644 data/images_noti_icons/Etc/noti_multi_email.png create mode 100644 data/images_noti_icons/Etc/noti_multi_window.png create mode 100644 data/images_noti_icons/Etc/noti_multiple_devices_connected.png create mode 100644 data/images_noti_icons/Etc/noti_near_by_device.png create mode 100644 data/images_noti_icons/Etc/noti_no_sim_full.png create mode 100644 data/images_noti_icons/Etc/noti_print.png create mode 100644 data/images_noti_icons/Etc/noti_print_waiting.png create mode 100644 data/images_noti_icons/Etc/noti_rcs_chat.png create mode 100644 data/images_noti_icons/Etc/noti_rcs_file_transfer.png create mode 100644 data/images_noti_icons/Etc/noti_safe_mode.png create mode 100644 data/images_noti_icons/Etc/noti_screen_recorder.png create mode 100644 data/images_noti_icons/Etc/noti_screen_recorder_dim.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card_decryption.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card_encryption.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card_encryption_error.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card_error.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card_prepare.png create mode 100644 data/images_noti_icons/Etc/noti_sd_card_removed.png create mode 100644 data/images_noti_icons/Etc/noti_shareshot_receive.png create mode 100644 data/images_noti_icons/Etc/noti_shareshot_receive_problem.png create mode 100644 data/images_noti_icons/Etc/noti_shareshot_send.png create mode 100644 data/images_noti_icons/Etc/noti_shareshot_send_problem.png create mode 100644 data/images_noti_icons/Etc/noti_side_sync.png create mode 100644 data/images_noti_icons/Etc/noti_sim_toolkit.png create mode 100644 data/images_noti_icons/Etc/noti_smart_stay.png create mode 100644 data/images_noti_icons/Etc/noti_smemo_sync.png create mode 100644 data/images_noti_icons/Etc/noti_spen.png create mode 100644 data/images_noti_icons/Etc/noti_sync_error.png create mode 100644 data/images_noti_icons/Etc/noti_tethering_usb_fail.png create mode 100644 data/images_noti_icons/Etc/noti_tty_mode.png create mode 100644 data/images_noti_icons/Etc/noti_tv.png create mode 100644 data/images_noti_icons/Etc/noti_updated_complete.png create mode 100644 data/images_noti_icons/Etc/noti_updated_failed.png create mode 100644 data/images_noti_icons/Etc/noti_usb_connected.png create mode 100644 data/images_noti_icons/Etc/noti_usb_fail.png create mode 100644 data/images_noti_icons/Etc/noti_usb_mass_storage_connected.png create mode 100644 data/images_noti_icons/Etc/noti_usb_unknown_fail.png create mode 100644 data/images_noti_icons/Etc/noti_video.png create mode 100644 data/images_noti_icons/Etc/noti_voice_mail.png create mode 100644 data/images_noti_icons/Etc/noti_voice_mail_01.png create mode 100644 data/images_noti_icons/Etc/noti_voice_mail_02.png create mode 100644 data/images_noti_icons/Etc/noti_voice_mail_03.png create mode 100644 data/images_noti_icons/Etc/noti_voice_memo.png create mode 100644 data/images_noti_icons/Etc/noti_voice_recorder_paused.png create mode 100644 data/images_noti_icons/Etc/noti_voice_recorder_play.png create mode 100644 data/images_noti_icons/Etc/noti_wifi_translate.png create mode 100644 data/images_noti_icons/FOTA/noti_fota.png create mode 100644 data/images_noti_icons/FOTA/noti_fota_completion.png create mode 100644 data/images_noti_icons/FOTA/noti_fota_diagmon.png create mode 100644 data/images_noti_icons/FOTA/noti_fota_diagmon_completion.png create mode 100644 data/images_noti_icons/FOTA/noti_fota_postpone.png create mode 100644 data/images_noti_icons/Facebook/noti_facebook.png create mode 100644 data/images_noti_icons/Facebook/noti_facebook_female_default.png create mode 100644 data/images_noti_icons/Facebook/noti_facebook_male_default.png create mode 100644 data/images_noti_icons/Find my mobile/noti_FMM_call_log.png create mode 100644 data/images_noti_icons/Find my mobile/noti_FMM_device_located.png create mode 100644 data/images_noti_icons/Find my mobile/noti_FMM_device_unlocked.png create mode 100644 data/images_noti_icons/Gallery/noti_gallery_image.png create mode 100644 data/images_noti_icons/Gallery/noti_gallery_image_error.png create mode 100644 data/images_noti_icons/Internet/noti_internet_flightmode.png create mode 100644 data/images_noti_icons/Lock screen/noti_message.png create mode 100644 data/images_noti_icons/Lock screen/noti_missed_call.png create mode 100644 data/images_noti_icons/Low battery&charge/noti_battery_fully_charging.png create mode 100644 data/images_noti_icons/Low battery&charge/noti_charging_battery_low.png create mode 100644 data/images_noti_icons/Low battery&charge/noti_charging_cable_disconnected.png create mode 100644 data/images_noti_icons/Message/noti_message.png create mode 100644 data/images_noti_icons/Message/noti_message_OTA.png create mode 100644 data/images_noti_icons/Message/noti_message_cb-msg.png create mode 100644 data/images_noti_icons/Message/noti_message_delivery_report.png create mode 100644 data/images_noti_icons/Message/noti_message_failed.png create mode 100644 data/images_noti_icons/Message/noti_message_mms_failed.png create mode 100644 data/images_noti_icons/Message/noti_message_mms_problem.png create mode 100644 data/images_noti_icons/Message/noti_message_read_report.png create mode 100644 data/images_noti_icons/Message/noti_message_reply.png create mode 100644 data/images_noti_icons/Message/noti_message_scheduled.png create mode 100644 data/images_noti_icons/Message/noti_message_sending.png create mode 100644 data/images_noti_icons/Message/noti_message_sim-card.png create mode 100644 data/images_noti_icons/Message/noti_mms.png create mode 100644 data/images_noti_icons/Message/noti_voice_mail.png create mode 100644 data/images_noti_icons/Multi SIM/noti_no_sim.png create mode 100644 data/images_noti_icons/Multi SIM/noti_sim_full.png create mode 100644 data/images_noti_icons/Patterns/noti_cooling_down.png create mode 100644 data/images_noti_icons/Patterns/noti_screen_captured.png create mode 100644 data/images_noti_icons/Private mode/noti_private_mode.png create mode 100644 data/images_noti_icons/Send help messages/noti_icon_emergency.png create mode 100644 data/images_noti_icons/Send help messages/noti_send_emergency_msg.png create mode 100644 data/images_noti_icons/Share with contents/noti_icon_Id_default.png create mode 100644 data/images_noti_icons/Tethering/noti_tethering.png create mode 100644 data/images_noti_icons/Tethering/noti_tethering_all.png create mode 100644 data/images_noti_icons/Tethering/noti_tethering_bt.png create mode 100644 data/images_noti_icons/Tethering/noti_tethering_usb.png create mode 100644 data/images_noti_icons/Tethering/noti_tethering_wifi.png create mode 100644 data/images_noti_icons/Tizen store/noti_tizen_store.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_availablility_check1.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_direct.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_direct_auto_off.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_in_range.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_network_available.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_no_detected.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_no_sign.png create mode 100644 data/images_noti_icons/Wi-Fi/noti_wifi_translate.png create mode 100644 data/quickpanel delete mode 100644 data/quickpanel.png create mode 100644 data/quickpanel.sh.in create mode 100644 data/quickpanel_activenoti.edc create mode 100644 data/quickpanel_animated_icon.edc create mode 100644 data/quickpanel_datetime.edc create mode 100644 data/quickpanel_images.edc create mode 100644 data/quickpanel_listitem_noti.edc create mode 100644 data/quickpanel_listitem_noti_legacy.edc create mode 100644 data/quickpanel_listitem_ongoing.edc create mode 100644 data/quickpanel_page_edit.edc create mode 100644 data/quickpanel_page_setting_all.edc create mode 100644 data/quickpanel_setting.edc delete mode 100755 data/quickpanel_spn.edc create mode 100644 data/quickpanel_textblock_slide_style.edc delete mode 100755 data/quickpanel_theme_element.edc create mode 100644 data/quickpanel_theme_progressbar.edc create mode 100644 data/quickpanel_theme_slider.edc delete mode 100644 data/sip.wav delete mode 100755 debian/changelog delete mode 100755 debian/compat delete mode 100755 debian/control delete mode 100755 debian/org.tizen.quickpanel.install.in delete mode 100755 debian/org.tizen.quickpanel.postinst.in delete mode 100755 debian/rules create mode 100644 icons/settings_noti_panel.png create mode 100644 org.tizen.quickpanel.efl create mode 100644 org.tizen.quickpanel.manifest delete mode 100644 packaging/org.tizen.quickpanel.changes delete mode 100644 packaging/org.tizen.quickpanel.manifest create mode 100644 packaging/quickpanel-system.service delete mode 100644 packaging/quickpanel.service create mode 100644 po/de.po delete mode 100755 po/de_DE.po delete mode 100755 po/es_MX.po create mode 100644 po/es_US.po create mode 100644 po/fr.po delete mode 100755 po/fr_FR.po create mode 100644 po/nl.po delete mode 100755 po/nl_NL.po delete mode 100755 po/zh_SG.po diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c09a7b..229c91d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(quickpanel C) -FILE(GLOB_RECURSE DAEMON_SRCS daemon/*.c) -AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/test TEST_SRCS) -SET(SRCS ${DAEMON_SRCS} ${TEST_SRCS}) - SET(VENDOR "org.tizen") SET(PACKAGE ${PROJECT_NAME}) SET(PKGNAME "${VENDOR}.${PACKAGE}") @@ -15,8 +11,10 @@ SET(LOCALEDIR "${RESDIR}/locale") SET(ICONDIR "${RESDIR}/icons") SET(EDJDIR "${RESDIR}/edje") SET(DATADIR "${PREFIX}/data") +SET(DATADIR_RW "${PREFIX_RW}/data") SET(DESKTOPDIR "/usr/share/applications") SET(MANIFESTXMLDIR "/usr/share/packages") +SET(SHARED_DIR "${PREFIX}/shared/res") IF("${CMAKE_BUILD_TYPE}" STREQUAL "") SET(CMAKE_BUILD_TYPE "Release") @@ -25,46 +23,77 @@ MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/daemon + ${CMAKE_CURRENT_SOURCE_DIR}/daemon/minictrl ${CMAKE_CURRENT_SOURCE_DIR}/daemon/notifications ${CMAKE_CURRENT_SOURCE_DIR}/daemon/service + ${CMAKE_CURRENT_SOURCE_DIR}/daemon/settings + ${CMAKE_CURRENT_SOURCE_DIR}/daemon/settings/modules + ${CMAKE_CURRENT_SOURCE_DIR}/daemon/vi + ${CMAKE_CURRENT_SOURCE_DIR}/daemon/page + ${CMAKE_CURRENT_SOURCE_DIR}/daemon/datetime ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_SOURCE_DIR}/test ) INCLUDE(FindPkgConfig) -pkg_check_modules(pkgs REQUIRED + +IF(X11_SUPPORT) +pkg_check_modules(extra_pkgs REQUIRED + ecore-x + x11 + xi + utilX + inputproto +) +ENDIF(X11_SUPPORT) + +IF(WAYLAND_SUPPORT) +pkg_check_modules(extra_pkgs REQUIRED + ecore-wayland +) +ENDIF(WAYLAND_SUPPORT) + +pkg_check_modules(pkgs REQUIRED capi-appfw-application - capi-appfw-app-manager capi-system-runtime-info capi-system-info capi-system-device capi-network-tethering + capi-network-bluetooth + capi-network-connection + capi-network-wifi capi-media-player + capi-media-sound-manager + capi-media-metadata-extractor + capi-system-system-settings + capi-base-utils-i18n + capi-ui-efl-util + tapi feedback appcore-common notification + badge vconf - appsvc - devman_haptic libprivilege-control - ecore-x edbus evas ecore edje ecore-input icu-i18n - enotify elementary + efl-assist dlog syspopup-caller minicontrol-viewer minicontrol-monitor - utilX -# deviced + pkgmgr + pkgmgr-info + iniparser + alarm-service ) -FOREACH(flag ${pkgs_CFLAGS}) +FOREACH(flag ${pkgs_CFLAGS} ${extra_pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) @@ -79,13 +108,18 @@ IF("${ARCH}" STREQUAL "arm") MESSAGE("add -DTARGET") ENDIF("${ARCH}" STREQUAL "arm") -ADD_DEFINITIONS("-fpie") -ADD_DEFINITIONS("-DQP_INDICATOR_WIDGET_ENABLE") -ADD_DEFINITIONS("-DQP_BRIGHTNESS_ENABLE") -ADD_DEFINITIONS("-DQP_MINICTRL_ENABLE") -ADD_DEFINITIONS("-DQP_ANIMATED_IMAGE_ENABLE") -#ADD_DEFINITIONS("-DQP_SERVICE_NOTI_LED_ENABLE") - +IF("${VENDOR}" STREQUAL "org.tizen") + ADD_DEFINITIONS("-DQP_SETTING_ENABLE") + ADD_DEFINITIONS("-DQP_BRIGHTNESS_ENABLE") + ADD_DEFINITIONS("-DQP_MINICTRL_ENABLE") + ADD_DEFINITIONS("-DQP_SCREENREADER_ENABLE") + ADD_DEFINITIONS("-DQP_SMART_ALERT_ENABLE") + ADD_DEFINITIONS("-DQP_SERVICE_NOTI_LED_ENABLE") + ADD_DEFINITIONS("-DQP_ANIMATED_IMAGE_ENABLE") + ADD_DEFINITIONS("-DQP_REMINDER_ENABLE") + ADD_DEFINITIONS("-DQP_EMERGENCY_MODE_ENABLE") +ENDIF("${VENDOR}" STREQUAL "org.tizen") +MESSAGE("##### VENDOR: ${VENDOR}") ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"") ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") @@ -96,21 +130,123 @@ ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"") ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"") ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"") - +ADD_DEFINITIONS("-DDATADIR_RW=\"${DATADIR_RW}\"") +ADD_DEFINITIONS("-DSHARED_DIR=\"${SHARED_DIR}\"") #ADD_DEFINITIONS("-DFILE_DEBUG") ADD_DEFINITIONS("-D_DLOG_USED") + +SET(BUILD_COMMON_SOURCE + ${BUILD_COMMON_SOURCE} + daemon/accessibility.c + daemon/common.c + daemon/datetime/datetime.c + daemon/datetime/util-time.c + daemon/dbus_utility.c + daemon/device/brightness.c + daemon/handler_controller.c + daemon/list_util.c + daemon/media.c + daemon/minictrl/minictrl.c + daemon/modules.c + daemon/notifications/activenoti.c + daemon/notifications/animated_image.c + daemon/notifications/noti_box.c + daemon/notifications/noti.c + daemon/notifications/noti_gridbox.c + daemon/notifications/noti_listbox.c + daemon/notifications/noti_list_item.c + daemon/notifications/noti_node.c + daemon/notifications/noti_section.c + daemon/notifications/noti_util.c + daemon/notifications/noti_view_boxtype.c + daemon/notifications/noti_view.c + daemon/notifications/noti_view_listype.c + daemon/notifications/noti_view_ongoing.c + daemon/page/page_base.c + daemon/page/page_edit.c + daemon/page/pager.c + daemon/page/page_setting_all.c + daemon/preference.c + daemon/service/animated_icon.c + daemon/service/configuration.c + daemon/service/emergency_mode.c + daemon/service/keyboard.c + daemon/service/noti_led.c + daemon/service/reminder.c + daemon/service/smart_alert.c + daemon/service/uninstall.c + daemon/settings/modules/assistive_light.c + daemon/settings/modules/bluetooth.c + daemon/settings/modules/flightmode.c + daemon/settings/modules/gps.c + daemon/settings/modules/mobile_data.c + daemon/settings/modules/rotate-lock.c + daemon/settings/modules/sound-profile.c + daemon/settings/modules/tethering.c + daemon/settings/modules/ultra_power_saving.c + daemon/settings/modules/wifi.c + daemon/settings/setting_module_api.c + daemon/settings/settings.c + daemon/settings/settings_gridbox.c + daemon/settings/settings_icon_common.c + daemon/settings/settings_ipc.c + daemon/settings/settings_view_all.c + daemon/settings/settings_view_featured.c + daemon/sim_controller.c + daemon/vi/vi_manager.c +) + +IF(X11_SUPPORT) ADD_DEFINITIONS("-DHAVE_X") +SET(BUILD_SOURCE + ${BUILD_SOURCE} + daemon/common_uic_x11.c + daemon/notifications/noti_win_x11.c + daemon/page/pager_common_x11.c + daemon/quickpanel-ui_x11.c + daemon/service/keyboard_x_x11.c + daemon/settings/setting_utils_x11.c +) +ENDIF(X11_SUPPORT) + +IF(WAYLAND_SUPPORT) +ADD_DEFINITIONS("-DHAVE_WAYLAND") +SET(BUILD_SOURCE + ${BUILD_SOURCE} + daemon/common_uic.c + daemon/notifications/noti_win.c + daemon/page/pager_common.c + daemon/quickpanel-ui.c + daemon/service/keyboard_x.c + daemon/settings/setting_utils.c +) +ENDIF(WAYLAND_SUPPORT) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/test TEST_SRCS) + +SET(SRCS ${BUILD_COMMON_SOURCE} ${BUILD_SOURCE} ${TEST_SRCS}) SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") + ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-pie") -#-lefence +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${extra_pkgs_LDFLAGS} "-pie") +#-lefence INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) -INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/icons DESTINATION ${RESDIR}) INSTALL(DIRECTORY DESTINATION ${DATADIR}) +INSTALL(DIRECTORY DESTINATION ${DATADIR_RW}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/icons/quickpanel_icon_default.png DESTINATION ${RESDIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKGNAME}.efl DESTINATION /etc/smack/accesses.d) + +# icon for setting +INSTALL(FILES ${CMAKE_SOURCE_DIR}/icons/settings_noti_panel.png DESTINATION ${SHARED_DIR}/icons) + +# icons for notification +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/images_noti_icons/ DESTINATION ${SHARED_DIR}/noti_icons FILES_MATCHING PATTERN "*.png") + +# License +INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME ${PKGNAME}) # i18n ADD_SUBDIRECTORY(data) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..54b213e --- /dev/null +++ b/LICENSE @@ -0,0 +1,204 @@ +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + + 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/LICENSE.Flora b/LICENSE.Flora deleted file mode 100644 index 571fe79..0000000 --- a/LICENSE.Flora +++ /dev/null @@ -1,206 +0,0 @@ -Flora License - -Version 1.1, April, 2013 - -http://floralicense.org/license/ - -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. - -"Tizen Certified Platform" shall mean a software platform that complies -with the standards set forth in the Tizen Compliance Specification -and passes the Tizen Compliance Tests as defined from time to time -by the Tizen Technical Steering Group and certified by the Tizen -Association or its designated agent. - -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 -solely as incorporated into a Tizen Certified Platform, 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 solely -as incorporated into a Tizen Certified Platform 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 pursuant to the copyright license -above, in any medium, with or without modifications, and in Source or -Object form, provided that You meet the following conditions: - - 1. You must give any other recipients of the Work or Derivative Works - a copy of this License; and - 2. You must cause any modified files to carry prominent notices stating - that You changed the files; and - 3. 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 - 4. 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 - and your own copyright statement or terms and conditions do not conflict - the conditions stated in the License including section 3. - -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 Flora License to your work - -To apply the Flora 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 Flora License, Version 1.1 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://floralicense.org/license/ - - 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/NOTICE b/NOTICE index 94d56df..177464e 100644 --- a/NOTICE +++ b/NOTICE @@ -1,3 +1 @@ -Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. -Except as noted, this software is licensed under Flora License, Version 1.1 -Please, see the LICENSE.Flora file for Flora License, Version 1.1 terms and conditions. +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. \ No newline at end of file diff --git a/daemon/accessibility.c b/daemon/accessibility.c new file mode 100644 index 0000000..a85bebb --- /dev/null +++ b/daemon/accessibility.c @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + * + */ + + +#include +#include "common.h" +#include "quickpanel-ui.h" +#include "accessibility.h" + +HAPI Evas_Object * +quickpanel_accessibility_screen_reader_object_get(void *obj, screen_reader_object_type_e type, const char *part, Evas_Object *parent) +{ + Evas_Object *to = NULL; + Evas_Object *ao = NULL; + + retif(obj == NULL, NULL, "invalid parameter"); + retif(type == SCREEN_READER_OBJ_TYPE_EDJ_OBJECT && !part, NULL, "invalid parameter"); + + switch (type) { + case SCREEN_READER_OBJ_TYPE_ELM_OBJECT: + if (part != NULL) { + to = (Evas_Object *)elm_object_part_content_get(obj, part); + ao = (Evas_Object *)to; + } else { + ao = (Evas_Object *)obj; + } + break; + + case SCREEN_READER_OBJ_TYPE_EDJ_OBJECT: + to = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get((Evas_Object *)obj), part); + break; + + default:// evas, icon + to = (Evas_Object *)obj; + } + + if (!ao && to && parent) { // edj, evas, icon, elm_object_item + ao = elm_access_object_get(to); + if (ao == NULL) { + ao = elm_access_object_register(to, parent); + } + } + + return ao; +} + +HAPI Evas_Object *quickpanel_accessibility_ui_get_focus_object(Evas_Object *parent) +{ + Evas_Object *focus = elm_button_add(parent); + retif(focus == NULL, NULL, "failed to create focus object"); + + elm_object_style_set(focus, "focus"); + + elm_access_info_set(focus, ELM_ACCESS_INFO, ""); + elm_access_info_set(focus, ELM_ACCESS_TYPE, ""); + + return focus; +} + +HAPI char *quickpanel_accessibility_info_cb(void *data, Evas_Object *obj) +{ + char *str = NULL; + retif(data == NULL, NULL, "invalid parameter"); + + str = _((const char *)data); + if (str != NULL) { + return strdup(str); + } + + return NULL; +} + +HAPI char *quickpanel_accessibility_info_cb_s(void *data, Evas_Object *obj) +{ + char *str = NULL; + retif(data == NULL, NULL, "invalid parameter"); + + // system string is not supported. data should be DID from application po files. + str = _(data); + if (str != NULL) { + return strdup(str); + } + + return NULL; +} + +HAPI void +quickpanel_accessibility_screen_reader_data_set(Evas_Object *view, const char *part, char *type, char *info) +{ + Evas_Object *ao = NULL; + retif(view == NULL, , "invalid parameter"); + retif(part == NULL, , "invalid parameter"); + + ao = quickpanel_accessibility_screen_reader_object_get(view, + SCREEN_READER_OBJ_TYPE_ELM_OBJECT, part, view); + if (ao != NULL) { + elm_access_info_set(ao, ELM_ACCESS_TYPE, type); + elm_access_info_set(ao, ELM_ACCESS_INFO, info); + } +} diff --git a/daemon/accessibility.h b/daemon/accessibility.h new file mode 100644 index 0000000..bf49a18 --- /dev/null +++ b/daemon/accessibility.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + * + */ + + + +#ifndef __ACCESSIBILITY_H__ +#define __ACCESSIBILITY_H__ + +typedef enum { + SCREEN_READER_OBJ_TYPE_ELM_OBJECT, + SCREEN_READER_OBJ_TYPE_EDJ_OBJECT, +} screen_reader_object_type_e; + +Evas_Object * +quickpanel_accessibility_screen_reader_object_get(void *obj, screen_reader_object_type_e type, const char *part, Evas_Object *parent); +Evas_Object *quickpanel_accessibility_ui_get_focus_object(Evas_Object *parent); +char *quickpanel_accessibility_info_cb(void *data, Evas_Object *obj); +char *quickpanel_accessibility_info_cb_s(void *data, Evas_Object *obj); +void quickpanel_accessibility_screen_reader_data_set(Evas_Object *view, const char *part, char *type, char *info); + +#endif /* __ACCESSIBILITY_H__ */ diff --git a/daemon/common.c b/daemon/common.c index d1c21df..40370b7 100755 --- a/daemon/common.c +++ b/daemon/common.c @@ -1,23 +1,89 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved * - * Licensed under the Flora License, Version 1.1 (the License); + * 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://floralicense.org + * 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, + * 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. + * */ + +#include #include "common.h" #include "quickpanel-ui.h" -HAPI void quickpanel_util_char_replace(char *text, char s, char t) { +static inline int _is_space( char in ) +{ + if ( ( in == _SPACE )) { + return 1; + } else { + return 0; + } +} + +static inline int _l_trim( char *in ) +{ + int i, j; + short int done; + + i = 0; + done = 0; + + while ( !done && in[i] != '\0') { + if ( _is_space( in[i] ) ) { + i++; + } else { + done = 1; + } + } + + j = 0; + while ( in[i] != '\0' ) { + in[j++] = in[i++]; + } + + in[j] = '\0'; + + return 0; +} + +static inline int _r_trim( char *in ) +{ + int i; + short int done; + + i = strlen(in) - 1; + done = 0; + + while ( !done && !( i < 0 ) ) { + if ( _is_space( in[i] ) ) { + in[i--] = '\0'; + } else { + done = 1; + } + } + + return(0); +} + +HAPI void quickpanel_common_util_char_trim(char *text) +{ + retif(text == NULL, , "invalid argument"); + + _l_trim(text); + _r_trim(text); +} + +HAPI void quickpanel_common_util_char_replace(char *text, char s, char t) +{ retif(text == NULL, , "invalid argument"); int i = 0, text_len = 0; @@ -31,6 +97,123 @@ HAPI void quickpanel_util_char_replace(char *text, char s, char t) { } } +HAPI void quickpanel_common_util_add_char_to_each_charactor(char *dst, const char *src, char t) +{ + retif(dst == NULL, , "invalid argument"); + retif(src == NULL, , "invalid argument"); + + int i = 0, text_len = 0; + + text_len = strlen(src); + + for (i = 0; i < text_len; i++) { + *(dst + (i * 2)) = *(src + i); + *(dst + ((i * 2) + 1)) = t; + } +} + +static void _char_set(char *dst, char s, int index, int size) +{ + if (index < size) { + *(dst + index) = s; + } +} + +HAPI void quickpanel_common_util_phone_number_tts_make(char *dst, const char *src, int size) +{ + retif(dst == NULL, , "invalid argument"); + retif(src == NULL, , "invalid argument"); + + int no_op = 0; + int i = 0, j = 0, text_len = 0; + + text_len = strlen(src); + + for (i = 0, j= 0; i < text_len; i++) { + if (no_op == 1) { + _char_set(dst, *(src + i), j++, size); + } else { + if (isdigit(*(src + i))) { + if (i + 1 < text_len) { + if (*(src + i + 1) == '-' || *(src + i + 1) == _SPACE) { + _char_set(dst, *(src + i), j++, size); + } else { + _char_set(dst, *(src + i), j++, size); + _char_set(dst, _SPACE, j++, size); + } + } else { + _char_set(dst, *(src + i), j++, size); + _char_set(dst, _SPACE, j++, size); + } + } else if (*(src + i) == '-') { + no_op = 1; + _char_set(dst, *(src + i), j++, size); + } else { + _char_set(dst, *(src + i), j++, size); + } + } + } +} + +HAPI int quickpanel_common_util_is_phone_number(const char *address) +{ + int digit_count = 0; + retif(address == NULL, 0, "address is NULL"); + + int addr_len = 0; + addr_len = strlen(address); + + if (addr_len == 0) { + return 0; + } + + /* length check phone address should be longer than 2 and shorter than 40 */ + if (addr_len > 2 && addr_len <= QP_UTIL_PHONE_NUMBER_MAX_LEN) { + const char *pszOneChar = address; + + while (*pszOneChar) { + if (isdigit(*pszOneChar)) { + digit_count++; + } + + ++pszOneChar; + } + + pszOneChar = address; + + if (*pszOneChar == '+') { + ++pszOneChar; + } + + while (*pszOneChar) { + if (!isdigit(*pszOneChar) + && (*pszOneChar != '*') && (*pszOneChar != '#') + && (*pszOneChar != ' ') + && !((*pszOneChar == '-') && digit_count >= 7)) { + return 0; + } + + ++pszOneChar; + } + + return 1; + } else { + DBG("invalid address length [%d]", addr_len); + return 0; + } +} + +static void _current_popup_default_backkey_cb(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *popup = data; + retif(popup == NULL, , "invalid argument"); + + if (popup!= NULL) { + evas_object_del(popup); + popup = NULL; + } +} + static void _current_popup_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { retif(obj == NULL, , "obj is NULL"); @@ -45,7 +228,8 @@ static void _current_popup_deleted_cb(void *data, Evas *e, Evas_Object *obj, voi } } -HAPI void quickpanel_ui_set_current_popup(Evas_Object *popup) { +HAPI void quickpanel_common_ui_set_current_popup(Evas_Object *popup, Evas_Smart_Cb func_back) +{ retif(popup == NULL, , "invalid argument"); struct appdata *ad = quickpanel_get_app_data(); @@ -53,13 +237,155 @@ HAPI void quickpanel_ui_set_current_popup(Evas_Object *popup) { ad->popup = popup; evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _current_popup_deleted_cb, NULL); + + if (func_back != NULL) { + evas_object_data_set(popup, EDATA_BACKKEY_CB, func_back); + } else { + evas_object_data_set(popup, EDATA_BACKKEY_CB, _current_popup_default_backkey_cb); + } } -HAPI void quickpanel_ui_del_current_popup(void) { +HAPI void quickpanel_common_ui_del_current_popup(void) +{ struct appdata *ad = quickpanel_get_app_data(); retif(ad == NULL, , "invalid argument"); if (ad->popup != NULL) { evas_object_del(ad->popup); + ad->popup = NULL; + } +} + +HAPI void *quickpanel_common_ui_get_buffer_from_image(const char *file_path, size_t *memfile_size, char *ext, int ext_size) +{ + FILE *fp = NULL; + void *buffer = NULL; + char *buf_ext = NULL; + + retif(file_path == NULL, NULL, "invalid data"); + + if (ext != NULL) { + buf_ext = ecore_file_strip_ext(file_path); + if (buf_ext != NULL) { + strncpy(ext, buf_ext, ext_size); + free(buf_ext); + } + } + + fp = fopen(file_path, "r"); + if (fp) { + struct stat stat_buf; + if (stat(file_path, &stat_buf) != 0) { + ERR("Getting file information Error"); + goto err; + } + + if (stat_buf.st_size > 0) { + buffer = (void *)calloc(1, (size_t)stat_buf.st_size + 1); + if (buffer == NULL) { + ERR("failed to alloc a buffer"); + goto err; + } + int result = fread(buffer, sizeof(char), stat_buf.st_size, fp); + if (result != stat_buf.st_size) { + ERR("failed to read a file"); + free(buffer); + buffer = NULL; + goto err; + } + if (memfile_size != NULL) { + *memfile_size = result; + } + } else { + if (memfile_size != NULL) { + *memfile_size = 0; + } + } + } + +err: + if (fp) { + fclose(fp); } + return buffer; +} + +HAPI char *quickpanel_common_ui_get_pkginfo_icon(const char *pkgid) +{ + int ret = 0; + char *icon_path = NULL; + char *icon_ret = NULL; + retif(pkgid == NULL, NULL, "invalid parameter"); + + pkgmgrinfo_appinfo_h appinfo_h = NULL; + + ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &appinfo_h); + if (ret < 0) { + ERR("pkgmgrinfo_appinfo_get_appinfo is failed %d", ret); + return NULL; + } + + //icon path + ret = pkgmgrinfo_appinfo_get_icon(appinfo_h, &icon_path); + if (ret < 0) { + ERR("pkgmgrinfo_appinfo_get_icon is failed %d", ret); + } + if (icon_path) { + icon_ret = (char*)strdup(icon_path); + } + if (appinfo_h) { + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + } + + return icon_ret; +} + +HAPI char *quickpanel_common_ui_get_pkginfo_label(const char *pkgid) +{ + int ret = 0; + char *label = NULL; + char *value_ret = NULL; + retif(pkgid == NULL, NULL, "invalid parameter"); + + pkgmgrinfo_appinfo_h appinfo_h = NULL; + + ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &appinfo_h); + if (ret < 0) { + ERR("pkgmgrinfo_appinfo_get_appinfo is failed %d", ret); + return NULL; + } + + //icon path + ret = pkgmgrinfo_appinfo_get_label(appinfo_h, &label); + if (ret < 0) { + ERR("pkgmgrinfo_appinfo_get_icon is failed %d", ret); + } + if (label) { + value_ret = (char*)strdup(label); + } + if (appinfo_h) { + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + } + + return value_ret; +} + +HAPI int quickpanel_common_ui_is_package_exist(const char *pkgid) +{ + int ret = 0; + retif(pkgid == NULL, 0, "invalid parameter"); + + pkgmgrinfo_appinfo_h appinfo_h = NULL; + + ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &appinfo_h); + if (ret < 0) { + DBG("package %s isn't exist", pkgid); + return 0; + } + + if (appinfo_h) { + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + } + + return 1; } diff --git a/daemon/common.h b/daemon/common.h index 913054c..5749c17 100755 --- a/daemon/common.h +++ b/daemon/common.h @@ -1,19 +1,21 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved * - * Licensed under the Flora License, Version 1.1 (the "License"); + * 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://floralicense.org/license/ + * 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. + * */ + #ifndef __QP_COMMON_H_ #define __QP_COMMON_H_ @@ -25,8 +27,11 @@ #define QP_OK (0) #define QP_FAIL (-1) +#define QP_UTIL_PHONE_NUMBER_MAX_LEN 40 +#define EDATA_BACKKEY_CB "bk_cb" #ifdef _DLOG_USED +#undef LOG_TAG #define LOG_TAG "QUICKPANEL" #include @@ -52,6 +57,21 @@ LOGE("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ } while (0) +#define SDBG(fmt , args...) \ + do { \ + SECURE_LOGD("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + } while (0) + +#define SINFO(fmt , args...) \ + do { \ + SECURE_LOGI("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + } while (0) + +#define SERR(fmt , args...) \ + do { \ + SECURE_LOGE("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + } while (0) + #elif FILE_DEBUG /*_DLOG_USED*/ #define DBG(fmt , args...) \ do { \ @@ -112,6 +132,12 @@ } \ } while (0); +#define retif_nomsg(cond, ret) do { \ + if (cond) { \ + return ret;\ + } \ +} while (0); + #define gotoif(cond, target, str, args...) do { \ if (cond) { \ WARN(str, ##args); \ @@ -120,8 +146,16 @@ } while (0); -void quickpanel_util_char_replace(char *text, char s, char t); -void quickpanel_ui_set_current_popup(Evas_Object *popup); -void quickpanel_ui_del_current_popup(void); +void quickpanel_common_util_char_trim(char *text); +void quickpanel_common_util_char_replace(char *text, char s, char t); +void quickpanel_common_util_add_char_to_each_charactor(char *dst, const char *src, char t); +int quickpanel_common_util_is_phone_number(const char *address); +void quickpanel_common_util_phone_number_tts_make(char *dst, const char *src, int size); +void quickpanel_common_ui_set_current_popup(Evas_Object *popup, Evas_Smart_Cb func_close); +void quickpanel_common_ui_del_current_popup(void); +void *quickpanel_common_ui_get_buffer_from_image(const char *file_path, size_t *memfile_size, char *ext, int ext_size); +char *quickpanel_common_ui_get_pkginfo_icon(const char *pkgid); +char *quickpanel_common_ui_get_pkginfo_label(const char *pkgid); +int quickpanel_common_ui_is_package_exist(const char *pkgid); #endif /* __QP_COMMON_H_ */ diff --git a/daemon/common_uic.c b/daemon/common_uic.c new file mode 100644 index 0000000..54596dd --- /dev/null +++ b/daemon/common_uic.c @@ -0,0 +1,375 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + * + */ + + +#include +#include +#ifdef HAVE_X +#include +#include +#endif +#include +#include +#include +#include +#include +#include "common.h" +#include "quickpanel-ui.h" + + +/* binary information */ +#define QP_EMUL_STR "Emulator" +#define DEL_TIMER_VALUE 0.480 +#define SYSTEM_INFO_KEY_MODEL "http://tizen.org/system/model_name" +static Ecore_Timer *_close_timer = NULL; + + +static void _quickpanel_move_data_to_service(const char *key, const char *val, void *data) +{ + retif(data == NULL || key == NULL || val == NULL, , "Invialid parameter!"); + + app_control_h service = data; + app_control_add_extra_data(service, key, val); +} + +HAPI Evas_Object *quickpanel_uic_load_edj(Evas_Object * parent, const char *file, + const char *group, int is_just_load) +{ + Eina_Bool r; + Evas_Object *eo = NULL; + + retif(parent == NULL, NULL, "Invalid parameter!"); + + eo = elm_layout_add(parent); + retif(eo == NULL, NULL, "Failed to add layout object!"); + + r = elm_layout_file_set(eo, file, group); + retif(r != EINA_TRUE, NULL, + "Failed to set edje object file[%s-%s]!", file, group); + + evas_object_size_hint_weight_set(eo, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(eo, + EVAS_HINT_FILL, EVAS_HINT_FILL); + + if (is_just_load == 1) { + elm_win_resize_object_add(parent, eo); + } + evas_object_show(eo); + + return eo; +} + +HAPI int quickpanel_uic_is_opened(void) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, 0, "invalid data."); + + return ad->is_opened; +} + +HAPI int quickpanel_uic_is_suspended(void) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, 0, "invalid data."); + + return ad->is_suspended; +} + +HAPI int quickpanel_uic_is_emul(void) +{ + int is_emul = 0; + char *info = NULL; + if (system_info_get_platform_string(SYSTEM_INFO_KEY_MODEL, &info) == 0) { + if (info == NULL) { + return 0; + } + if (!strncmp(QP_EMUL_STR, info, strlen(info))) { + is_emul = 1; + } + } + + if (info != NULL) free(info); + + return is_emul; +} + +HAPI void quickpanel_uic_initial_resize(Evas_Object *obj, int height) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, , "invalid data."); + + height = (height % 2 != 0) ? height + 1 : height; + + if (ad->angle == 90 || ad->angle == 270) { + evas_object_resize(obj, ad->win_height, height * ad->scale); + } else { + evas_object_resize(obj, ad->win_width, height * ad->scale); + } +} + +HAPI int quickpanel_uic_launch_app(char *app_id, void *data) +{ + int ret = APP_CONTROL_ERROR_NONE; + app_control_h service = NULL; + char *app_id_from_service = NULL; + + retif(app_id == NULL && data == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "Invialid parameter!"); + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_create() return error : %d", ret); + return ret; + } + retif(service == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "fail to create service handle!"); + + if (app_id != NULL) { + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(service, app_id); + + if (data != NULL) { + bundle_iterate((bundle *)data, _quickpanel_move_data_to_service, service); + } + } else { + if (data != NULL) { + ret = app_control_import_from_bundle(service, data); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("Failed to import[%d]", ret); + } + } + } + + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_send_launch_request() is failed : %d", ret); + app_control_get_app_id(service, &app_id_from_service); + if (app_id_from_service != NULL) { + quickpanel_uic_launch_app_inform_result(app_id_from_service, ret); + free(app_id_from_service); + } else { + quickpanel_uic_launch_app_inform_result(app_id, ret); + } + app_control_destroy(service); + return ret; + } + app_control_destroy(service); + return ret; +} + +HAPI int quickpanel_uic_launch_ug_by_appcontrol(const char *package, void *data) +{ + int ret = APP_CONTROL_ERROR_NONE; + app_control_h service = NULL; + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "ad null"); + retif(package == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "package null"); + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_create() return error : %d", ret); + return ret; + } + retif(service == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "fail to create service handle!"); + + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(service, package); + + if (data != NULL) { + bundle_iterate((bundle *)data, _quickpanel_move_data_to_service, service); + } + + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_send_launch_request() is failed : %d", ret); + app_control_destroy(service); + return ret; + } + app_control_destroy(service); + return ret; +} + +HAPI void quickpanel_uic_launch_app_inform_result(const char *pkgname, int retcode) +{ + retif(retcode == APP_CONTROL_ERROR_NONE, , "retcode = APP_CONTROL_ERROR_NONE!"); + retif(pkgname == NULL && retcode != APP_CONTROL_ERROR_APP_NOT_FOUND, , "Invialid parameter!"); + + const char *msg = NULL; + char *app_label = NULL; + + if (retcode == APP_CONTROL_ERROR_APP_NOT_FOUND) { + notification_status_message_post(_NOT_LOCALIZED("Unable to find application to perform this action.")); + } else { + Eina_Strbuf *strbuf = eina_strbuf_new(); + char *format = _("IDS_QP_TPOP_UNABLE_TO_OPEN_PS"); + + if (strbuf != NULL) { + app_label = quickpanel_common_ui_get_pkginfo_label(pkgname); + if (app_label != NULL) { + eina_strbuf_append_printf(strbuf, format, app_label); + free(app_label); + } else { + eina_strbuf_append_printf(strbuf, format, pkgname); + } + eina_strbuf_append_printf(strbuf, "(%x)", retcode); + msg = eina_strbuf_string_get(strbuf); + + if (msg != NULL) { + notification_status_message_post(msg); + } + eina_strbuf_free(strbuf); + } + } +} + +HAPI void quickpanel_uic_open_quickpanel(int reason) +{ +#ifdef HAVE_X + Ecore_X_Window xwin; + Ecore_X_Window zone; +#endif + struct appdata *ad = quickpanel_get_app_data(); + + DBG("reason:%d", reason); + + retif(ad == NULL, , "Invalid parameter!"); + retif(ad->win == NULL, , "Invalid parameter!"); +#ifdef HAVE_X + xwin = elm_win_xwindow_get(ad->win); + if (xwin != 0) { + if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) { + if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_OFF) { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_ON); + quickpanel_uic_opened_reason_set(reason); + } + } else { + ERR("failed to get zone"); + } + } else { + ERR("failed to get xwin"); + } +#endif +} + +HAPI void quickpanel_uic_opened_reason_set(int reason) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, , "Invalid parameter!"); + + ad->opening_reason = reason; +} + +HAPI int quickpanel_uic_opened_reason_get(void) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, OPENED_NO_REASON, "Invalid parameter!"); + + return ad->opening_reason; +} + +static void _quickpanel_close(void) +{ +#ifdef HAVE_X + Ecore_X_Window xwin; + Ecore_X_Window zone; +#endif + struct appdata *ad = quickpanel_get_app_data(); + + DBG(""); + + retif(ad == NULL, , "Invalid parameter!"); + retif(ad->win == NULL, , "Invalid parameter!"); +#ifdef HAVE_X + xwin = elm_win_xwindow_get(ad->win); + if (xwin != 0) { + if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) { + if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_ON) { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_OFF); + } + } else { + ERR("failed to get zone"); + } + } else { + ERR("failed to get xwin"); + } +#endif +} + +static Eina_Bool _quickpanel_close_timer_cb(void *data) +{ + if( _close_timer != NULL ) { + _close_timer = NULL; + } + _quickpanel_close(); + + return ECORE_CALLBACK_CANCEL; +} + +HAPI void quickpanel_uic_close_quickpanel(bool is_check_lock, int is_delay_needed) { + int ret = 0; + int is_lock_launched = VCONFKEY_IDLE_UNLOCK; + + if (is_check_lock == true) { + if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &is_lock_launched) == 0) { + if (is_lock_launched == VCONFKEY_IDLE_LOCK) { + ret = vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + if (ret == 0) { + ERR("unlock the lockscreen from quickpanel"); + } else { + ERR("failed to unlock the lockscreen from quickpanel"); + } + } + } + } + + if (is_delay_needed) { + if( _close_timer == NULL ) { + _close_timer = ecore_timer_add(DEL_TIMER_VALUE, _quickpanel_close_timer_cb, NULL); + } + } else { + _quickpanel_close(); + } +} + +HAPI void quickpanel_uic_toggle_openning_quickpanel(void) +{ +#ifdef HAVE_X + Ecore_X_Window xwin; + Ecore_X_Window zone; +#endif + struct appdata *ad = quickpanel_get_app_data(); + + DBG(""); + + retif(ad == NULL, , "Invalid parameter!"); + retif(ad->win == NULL, , "Invalid parameter!"); +#ifdef HAVE_X + xwin = elm_win_xwindow_get(ad->win); + if (xwin != 0) { + if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) { + if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_ON) { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_OFF); + } else { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_ON); + } + } else { + ERR("failed to get zone"); + } + } else { + ERR("failed to get xwin"); + } +#endif +} diff --git a/daemon/common_uic.h b/daemon/common_uic.h new file mode 100644 index 0000000..882163d --- /dev/null +++ b/daemon/common_uic.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + * + */ + + +#ifndef __QP_COMMON_UIC_H_ +#define __QP_COMMON_UIC_H_ + +typedef enum { + OPENED_NO_REASON = 0, + OPENED_BY_CMD_HIDE_LAUNCH = 1, + OPENED_BY_CMD_SHOW_SETTINGS = 2, +} qp_open_reason; + +Evas_Object *quickpanel_uic_load_edj(Evas_Object * parent, const char *file, + const char *group, int is_just_load); +int quickpanel_uic_launch_app(char *app_id, void *data); +int quickpanel_uic_launch_ug_by_appcontrol(const char *package, void *data); +int quickpanel_uic_is_emul(void); +int quickpanel_uic_is_suspended(void); +int quickpanel_uic_is_opened(void); +void quickpanel_uic_launch_app_inform_result(const char *pkgname, int retcode); +void quickpanel_uic_initial_resize(Evas_Object *obj, int height); +void quickpanel_uic_close_quickpanel(bool is_check_lock, int is_delay_needed); +void quickpanel_uic_open_quickpanel(int reason); +void quickpanel_uic_toggle_openning_quickpanel(void); +void quickpanel_uic_opened_reason_set(int reason); +int quickpanel_uic_opened_reason_get(void); + +#endif /* __QP_COMMON_UIC_H_ */ diff --git a/daemon/common_uic_x11.c b/daemon/common_uic_x11.c new file mode 100644 index 0000000..5558f29 --- /dev/null +++ b/daemon/common_uic_x11.c @@ -0,0 +1,364 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + * + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "common.h" +#include "quickpanel-ui.h" + + +/* binary information */ +#define QP_EMUL_STR "Emulator" +#define DEL_TIMER_VALUE 0.480 +#define SYSTEM_INFO_KEY_MODEL "http://tizen.org/system/model_name" +static Ecore_Timer *_close_timer = NULL; + + +static void _quickpanel_move_data_to_service(const char *key, const char *val, void *data) +{ + retif(data == NULL || key == NULL || val == NULL, , "Invialid parameter!"); + + app_control_h service = data; + app_control_add_extra_data(service, key, val); +} + +HAPI Evas_Object *quickpanel_uic_load_edj(Evas_Object * parent, const char *file, + const char *group, int is_just_load) +{ + Eina_Bool r; + Evas_Object *eo = NULL; + + retif(parent == NULL, NULL, "Invalid parameter!"); + + eo = elm_layout_add(parent); + retif(eo == NULL, NULL, "Failed to add layout object!"); + + r = elm_layout_file_set(eo, file, group); + retif(r != EINA_TRUE, NULL, + "Failed to set edje object file[%s-%s]!", file, group); + + evas_object_size_hint_weight_set(eo, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(eo, + EVAS_HINT_FILL, EVAS_HINT_FILL); + + if (is_just_load == 1) { + elm_win_resize_object_add(parent, eo); + } + evas_object_show(eo); + + return eo; +} + +HAPI int quickpanel_uic_is_opened(void) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, 0, "invalid data."); + + return ad->is_opened; +} + +HAPI int quickpanel_uic_is_suspended(void) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, 0, "invalid data."); + + return ad->is_suspended; +} + +HAPI int quickpanel_uic_is_emul(void) +{ + int is_emul = 0; + char *info = NULL; + if (system_info_get_platform_string(SYSTEM_INFO_KEY_MODEL, &info) == 0) { + if (info == NULL) { + return 0; + } + if (!strncmp(QP_EMUL_STR, info, strlen(info))) { + is_emul = 1; + } + } + + if (info != NULL) free(info); + + return is_emul; +} + +HAPI void quickpanel_uic_initial_resize(Evas_Object *obj, int height) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, , "invalid data."); + + height = (height % 2 != 0) ? height + 1 : height; + + if (ad->angle == 90 || ad->angle == 270) { + evas_object_resize(obj, ad->win_height, height * ad->scale); + } else { + evas_object_resize(obj, ad->win_width, height * ad->scale); + } +} + +HAPI int quickpanel_uic_launch_app(char *app_id, void *data) +{ + int ret = APP_CONTROL_ERROR_NONE; + app_control_h service = NULL; + char *app_id_from_service = NULL; + + retif(app_id == NULL && data == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "Invialid parameter!"); + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_create() return error : %d", ret); + return ret; + } + retif(service == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "fail to create service handle!"); + + if (app_id != NULL) { + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(service, app_id); + + if (data != NULL) { + bundle_iterate((bundle *)data, _quickpanel_move_data_to_service, service); + } + } else { + if (data != NULL) { + ret = app_control_import_from_bundle(service, data); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("Failed to import[%d]", ret); + } + } + } + + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_send_launch_request() is failed : %d", ret); + app_control_get_app_id(service, &app_id_from_service); + if (app_id_from_service != NULL) { + quickpanel_uic_launch_app_inform_result(app_id_from_service, ret); + free(app_id_from_service); + } else { + quickpanel_uic_launch_app_inform_result(app_id, ret); + } + app_control_destroy(service); + return ret; + } + app_control_destroy(service); + return ret; +} + +HAPI int quickpanel_uic_launch_ug_by_appcontrol(const char *package, void *data) +{ + int ret = APP_CONTROL_ERROR_NONE; + app_control_h service = NULL; + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "ad null"); + retif(package == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "package null"); + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_create() return error : %d", ret); + return ret; + } + retif(service == NULL, APP_CONTROL_ERROR_INVALID_PARAMETER, "fail to create service handle!"); + + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(service, package); + + if (data != NULL) { + bundle_iterate((bundle *)data, _quickpanel_move_data_to_service, service); + } + + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + ERR("app_control_send_launch_request() is failed : %d", ret); + app_control_destroy(service); + return ret; + } + app_control_destroy(service); + return ret; +} + +HAPI void quickpanel_uic_launch_app_inform_result(const char *pkgname, int retcode) +{ + retif(retcode == APP_CONTROL_ERROR_NONE, , "retcode = APP_CONTROL_ERROR_NONE!"); + retif(pkgname == NULL && retcode != APP_CONTROL_ERROR_APP_NOT_FOUND, , "Invialid parameter!"); + + const char *msg = NULL; + char *app_label = NULL; + + if (retcode == APP_CONTROL_ERROR_APP_NOT_FOUND) { + notification_status_message_post(_NOT_LOCALIZED("Unable to find application to perform this action.")); + } else { + Eina_Strbuf *strbuf = eina_strbuf_new(); + char *format = _("IDS_QP_TPOP_UNABLE_TO_OPEN_PS"); + + if (strbuf != NULL) { + app_label = quickpanel_common_ui_get_pkginfo_label(pkgname); + if (app_label != NULL) { + eina_strbuf_append_printf(strbuf, format, app_label); + free(app_label); + } else { + eina_strbuf_append_printf(strbuf, format, pkgname); + } + eina_strbuf_append_printf(strbuf, "(%x)", retcode); + msg = eina_strbuf_string_get(strbuf); + + if (msg != NULL) { + notification_status_message_post(msg); + } + eina_strbuf_free(strbuf); + } + } +} + +HAPI void quickpanel_uic_open_quickpanel(int reason) +{ + Ecore_X_Window xwin; + Ecore_X_Window zone; + struct appdata *ad = quickpanel_get_app_data(); + + DBG("reason:%d", reason); + + retif(ad == NULL, , "Invalid parameter!"); + retif(ad->win == NULL, , "Invalid parameter!"); + + xwin = elm_win_xwindow_get(ad->win); + if (xwin != 0) { + if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) { + if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_OFF) { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_ON); + quickpanel_uic_opened_reason_set(reason); + } + } else { + ERR("failed to get zone"); + } + } else { + ERR("failed to get xwin"); + } +} + +HAPI void quickpanel_uic_opened_reason_set(int reason) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, , "Invalid parameter!"); + + ad->opening_reason = reason; +} + +HAPI int quickpanel_uic_opened_reason_get(void) +{ + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, OPENED_NO_REASON, "Invalid parameter!"); + + return ad->opening_reason; +} + +static void _quickpanel_close(void) +{ + Ecore_X_Window xwin; + Ecore_X_Window zone; + struct appdata *ad = quickpanel_get_app_data(); + + DBG(""); + + retif(ad == NULL, , "Invalid parameter!"); + retif(ad->win == NULL, , "Invalid parameter!"); + + xwin = elm_win_xwindow_get(ad->win); + if (xwin != 0) { + if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) { + if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_ON) { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_OFF); + } + } else { + ERR("failed to get zone"); + } + } else { + ERR("failed to get xwin"); + } +} + +static Eina_Bool _quickpanel_close_timer_cb(void *data) +{ + if( _close_timer != NULL ) { + _close_timer = NULL; + } + _quickpanel_close(); + + return ECORE_CALLBACK_CANCEL; +} + +HAPI void quickpanel_uic_close_quickpanel(bool is_check_lock, int is_delay_needed) { + int ret = 0; + int is_lock_launched = VCONFKEY_IDLE_UNLOCK; + + if (is_check_lock == true) { + if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &is_lock_launched) == 0) { + if (is_lock_launched == VCONFKEY_IDLE_LOCK) { + ret = vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + if (ret == 0) { + ERR("unlock the lockscreen from quickpanel"); + } else { + ERR("failed to unlock the lockscreen from quickpanel"); + } + } + } + } + + if (is_delay_needed) { + if( _close_timer == NULL ) { + _close_timer = ecore_timer_add(DEL_TIMER_VALUE, _quickpanel_close_timer_cb, NULL); + } + } else { + _quickpanel_close(); + } +} + +HAPI void quickpanel_uic_toggle_openning_quickpanel(void) +{ + Ecore_X_Window xwin; + Ecore_X_Window zone; + struct appdata *ad = quickpanel_get_app_data(); + + DBG(""); + + retif(ad == NULL, , "Invalid parameter!"); + retif(ad->win == NULL, , "Invalid parameter!"); + + xwin = elm_win_xwindow_get(ad->win); + if (xwin != 0) { + if ((zone = ecore_x_e_illume_zone_get(xwin)) != 0) { + if (ecore_x_e_illume_quickpanel_state_get(zone) == ECORE_X_ILLUME_QUICKPANEL_STATE_ON) { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_OFF); + } else { + ecore_x_e_illume_quickpanel_state_send(zone, ECORE_X_ILLUME_QUICKPANEL_STATE_ON); + } + } else { + ERR("failed to get zone"); + } + } else { + ERR("failed to get xwin"); + } +} diff --git a/daemon/datetime/datetime.c b/daemon/datetime/datetime.c new file mode 100644 index 0000000..e87197f --- /dev/null +++ b/daemon/datetime/datetime.c @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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. + * + */ + + +#include +#include +#include +#include +#include "common.h" +#include "quickpanel-ui.h" +#include "list_util.h" +#include "quickpanel_def.h" +#ifdef QP_SCREENREADER_ENABLE +#include "accessibility.h" +#endif +#include "modules.h" +#ifdef QP_EMERGENCY_MODE_ENABLE +#include "emergency_mode.h" +#endif +#include "util-time.h" + +static int _init(void *data); +static int _fini(void *data); + +#define PKG_SETTING_EDIT "quickpanel-setting-efl" +#define QP_TIMEDATE_SETTING_UG "setting-time-efl" +#define E_DATA_EDITING_VISIBILITT "editing_visible" +#define E_DATA_TIME_N_DATE_EVENT "time_n_date_event" + +QP_Module qp_datetime_view = { + .name = "qp_datetime_view", + .init = _init, + .fini = _fini, + .suspend = NULL, + .resume = NULL, + .lang_changed = NULL, + .refresh = NULL, +}; + +static Evas_Object *_datetime_view_get(void); + +static void _flag_set(Evas_Object *container, const char *key, int value) +{ + retif(container == NULL, , "invalid parameter"); + retif(key == NULL, , "invalid parameter"); + + evas_object_data_set(container, key, (void *)value); +} + +static int _flag_get(Evas_Object *container, const char *key) +{ + retif(container == NULL, 0, "invalid parameter"); + retif(key == NULL, 0, "invalid parameter"); + + return (int)evas_object_data_get(container, key); +} + +static void _set_text_to_part(Evas_Object *obj, const char *part, const char *text) +{ + const char *old_text = NULL; + + retif(obj == NULL, , "Invalid parameter!"); + retif(part == NULL, , "Invalid parameter!"); + retif(text == NULL, , "Invalid parameter!"); + + old_text = elm_object_part_text_get(obj, part); + if (old_text != NULL) { + if (strcmp(old_text, text) == 0) { + return; + } + } + + elm_object_part_text_set(obj, part, text); +} + +static void _text_time_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *view = _datetime_view_get(); + int ret; + + if (view) { + if (_flag_get(view, E_DATA_TIME_N_DATE_EVENT) == 0) { + DBG("Time & date area click is event disabled"); + return; + } + } + + quickpanel_media_play_feedback(); + + ret = quickpanel_uic_launch_ug_by_appcontrol(QP_TIMEDATE_SETTING_UG, NULL); + quickpanel_uic_launch_app_inform_result(QP_TIMEDATE_SETTING_UG, ret); + + quickpanel_uic_close_quickpanel(true, 1); +} + +static void _button_setting_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + quickpanel_media_play_feedback(); + +#ifdef QP_EMERGENCY_MODE_ENABLE + if (quickpanel_emergency_mode_is_on()) { + quickpanel_uic_launch_app(PACKAGE_EMERGENCY_MODE_SETTING, NULL); + } else { + quickpanel_uic_launch_app(QP_SETTING_PKG_SETTING, NULL); + } +#else + quickpanel_uic_launch_app(QP_SETTING_PKG_SETTING, NULL); +#endif + quickpanel_uic_close_quickpanel(true, 1); +} + +static Evas_Object *_datetime_view_create(Evas_Object *parent) +{ + Evas_Object *focus = NULL; + Eina_Bool ret = EINA_TRUE; + Evas_Object *view = NULL; + + retif(parent == NULL, NULL, "Invalid parameter!"); + + view = elm_layout_add(parent); + + if (view != NULL) { + ret = elm_layout_file_set(view, DEFAULT_EDJ, + "quickpanel/datetime"); + if (ret == EINA_FALSE) { + ERR("failed to load quickpanel/datetime layout"); + } + evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(view, EVAS_HINT_FILL, EVAS_HINT_FILL); + quickpanel_uic_initial_resize(view, QP_DATE_H); + + focus = quickpanel_accessibility_ui_get_focus_object(view); + elm_object_part_content_set(view, "focus.datetime", focus); + evas_object_smart_callback_add(focus, "clicked", _text_time_clicked_cb, view); + + focus = quickpanel_accessibility_ui_get_focus_object(view); + elm_object_part_content_set(view, "focus.setting", focus); + evas_object_smart_callback_add(focus, "clicked", _button_setting_clicked_cb, view); + + _flag_set(view, E_DATA_EDITING_VISIBILITT, 0); + + if (quickpanel_emergency_mode_is_on()) { + _flag_set(view, E_DATA_TIME_N_DATE_EVENT, 0); + elm_object_signal_emit(view, "timendate.click.disable", "prog"); + } else { + _flag_set(view, E_DATA_TIME_N_DATE_EVENT, 1); + elm_object_signal_emit(view, "timendate.click.enable", "prog"); + } + + evas_object_show(view); + } + + return view; +} + +static Evas_Object *_datetime_view_get(void) { + struct appdata *ad = quickpanel_get_app_data(); + retif(ad == NULL, NULL, "invalid argument"); + retif(ad->view_root == NULL, NULL, "invalid argument"); + + return elm_object_part_content_get(ad->view_root + , "qp.base.datetime.swallow"); +} + +static void _datetime_view_attach(void *data) +{ + Evas_Object *view = NULL; + struct appdata *ad = data; + retif(ad == NULL, ,"invalid parameter"); + retif(ad->view_root == NULL, ,"invalid parameter"); + + view = _datetime_view_create(ad->view_root); + if (view != NULL) { + elm_object_part_content_set(ad->view_root, "qp.base.datetime.swallow", view); + } +} + +static void _datetime_view_deattach(void *data) +{ + Evas_Object *view = NULL; + struct appdata *ad = data; + retif(ad == NULL, ,"invalid parameter"); + retif(ad->view_root == NULL, ,"invalid parameter"); + + view = elm_object_part_content_unset(ad->view_root, "qp.base.datetime.swallow"); + if (view != NULL) { + evas_object_del(view); + view = NULL; + } +} + +static int _init(void *data) +{ + struct appdata *ad = data; + retif(ad == NULL, QP_FAIL,"invalid parameter"); + + _datetime_view_attach(ad); + + return QP_OK; +} + +static int _fini(void *data) +{ + _datetime_view_deattach(data); + + return QP_OK; +} + +HAPI void quickpanel_datetime_datentime_event_set(int is_clickable) +{ + Evas_Object *view = _datetime_view_get(); + + DBG("date n time clickable set[%d]", is_clickable); + + if (view != NULL) { + if (is_clickable == 1) { + if (_flag_get(view, E_DATA_TIME_N_DATE_EVENT) == 0) { + _flag_set(view, E_DATA_TIME_N_DATE_EVENT, 1); + elm_object_signal_emit(view, "timendate.click.enable", "prog"); + } + } else { + if (_flag_get(view, E_DATA_TIME_N_DATE_EVENT) == 1) { + _flag_set(view, E_DATA_TIME_N_DATE_EVENT, 0); + elm_object_signal_emit(view, "timendate.click.disable", "prog"); + } + } + } +} + +HAPI void quickpanel_datetime_editing_icon_visibility_set(int is_visible) +{ + Evas_Object *view = _datetime_view_get(); + + DBG("visibility set:%d", is_visible); + + if (view != NULL) { + if (is_visible == 1) { + if (_flag_get(view, E_DATA_EDITING_VISIBILITT) == 0) { + _flag_set(view, E_DATA_EDITING_VISIBILITT, 1); + elm_object_signal_emit(view, "button,editing,show", "prog"); + } + } else { + if (_flag_get(view, E_DATA_EDITING_VISIBILITT) == 1) { + _flag_set(view, E_DATA_EDITING_VISIBILITT, 0); + elm_object_signal_emit(view, "button,editing,hide", "prog"); + } + } + } +} + +HAPI void quickpanel_datetime_view_update(char *date, char *time, char *meridiem, int meridiem_type) +{ + Evas_Object *view = NULL; + + Eina_Strbuf *strbuf_date = NULL; + Eina_Strbuf *strbuf_time = NULL; + Eina_Strbuf *strbuf_access = NULL; + + view = _datetime_view_get(); + + if (!view) { + ERR("view == NULL"); + return; + } + + strbuf_date = eina_strbuf_new(); + if(!strbuf_date) { + ERR("strbuf_date == NULL"); + return; + } + + strbuf_time = eina_strbuf_new(); + if(!strbuf_time) { + ERR("strbuf_time == NULL"); + eina_strbuf_free(strbuf_date); + return; + } + + strbuf_access = eina_strbuf_new(); + if(!strbuf_access) { + ERR("strbuf_access == NULL"); + eina_strbuf_free(strbuf_date); + eina_strbuf_free(strbuf_time); + return; + } + + + DBG("update time: %s %s %s", date, time, meridiem); + + if (date != NULL) { + eina_strbuf_append_printf(strbuf_date, "%s", date); + eina_strbuf_append_printf(strbuf_access, "%s ", date); + } + + eina_strbuf_ltrim(strbuf_date); + + // ------------------------------------------------------------------------------------- + + if (meridiem_type == UTIL_TIME_MERIDIEM_TYPE_PRE && meridiem != NULL && strlen(meridiem) != 0) { + eina_strbuf_append_printf(strbuf_time, "%s ", meridiem); + eina_strbuf_append_printf(strbuf_access, "%s ", meridiem); + } + + if (time != NULL) { + eina_strbuf_append_printf(strbuf_time, "