[TIZENIOT - 1296] [Noti panel] Add volume feature 50/231250/12 submit/tizen/20200501.141336
authordivyanshugautam17 <divyanshu.gm@samsung.com>
Mon, 20 Apr 2020 12:13:56 +0000 (17:43 +0530)
committerDivyanshu Gautam <divyanshu.gm@samsung.com>
Fri, 1 May 2020 13:07:05 +0000 (13:07 +0000)
[TIZENIOT - 1494] [Noti panel] Quick button, Settings icon

Change-Id: I3f94a317d81bbdebe0feab982c34988270162241

56 files changed:
CMakeLists.txt
inc/common.h
inc/list_util.h
inc/quickpanel-ui.h
inc/quickpanel_def.h
inc/volume.h [new file with mode: 0755]
project_def.prop
res/edje/quickpanel.edc
res/edje/quickpanel_brightness.edc
res/edje/quickpanel_datetime.edc
res/edje/quickpanel_images.edc
res/edje/quickpanel_setting.edc
res/edje/quickpanel_theme_slider.edc
res/edje/quickpanel_volume.edc [new file with mode: 0755]
res/images/core_progress_bar.#.png
res/images/core_progressbar_bg.#.png
res/images/core_progressbar_bg.#original.png [new file with mode: 0755]
res/images/core_theme_bg_01.png
res/images/quick_icon_brightness_0.png [new file with mode: 0755]
res/images/quick_icon_brightness_1.png [new file with mode: 0755]
res/images/quick_icon_brightness_2.png [new file with mode: 0755]
res/images/sound_slider_icon_volume.png [new file with mode: 0755]
res/images/sound_slider_icon_volume1.png [new file with mode: 0755]
res/images/sound_slider_icon_volume2.png [new file with mode: 0755]
res/images/sound_slider_icon_volume_mute.png [new file with mode: 0755]
res/images_icon/moresettings_active.png [new file with mode: 0755]
res/images_icon/moresettings_disabled.png [new file with mode: 0755]
res/images_icon/moresettings_pressed.png [new file with mode: 0755]
res/images_icon/quick_button_background.png [new file with mode: 0755]
res/images_icon/quick_button_icon_bg.png
res/images_icon/quick_dimmed_button_icon_bg.png [new file with mode: 0755]
res/images_icon/quick_icon_bluetooth_active.png [new file with mode: 0755]
res/images_icon/quick_icon_bluetooth_disabled.png [new file with mode: 0755]
res/images_icon/quick_icon_disturb_active.png [new file with mode: 0755]
res/images_icon/quick_icon_disturb_disabled.png [new file with mode: 0755]
res/images_icon/quick_icon_sf_vf.png
res/images_icon/quick_icon_sf_vn.png
res/images_icon/quick_icon_sn_vf.png
res/images_icon/quick_icon_wifi_active.png [new file with mode: 0755]
res/images_icon/quick_icon_wifi_disabled.png [new file with mode: 0755]
res/images_icon/quick_pressed_button_icon_bg.png [new file with mode: 0755]
res/images_icon/softkey_active.png [new file with mode: 0755]
res/images_icon/softkey_disabled.png [new file with mode: 0755]
res/po/en_US.po
src/device/brightness.c
src/device/volume.c [new file with mode: 0755]
src/modules.c
src/preference.c
src/settings/modules/bluetooth.c
src/settings/modules/dnd.c
src/settings/modules/more-settings.c [new file with mode: 0755]
src/settings/modules/rotate-lock.c [deleted file]
src/settings/modules/softkey.c [new file with mode: 0755]
src/settings/modules/wifi.c
src/settings/settings.c
tizen-manifest.xml

index 77f583adf10d4fba80432952549620ba374ad580..7e1b33ec54fca59cc0b7e0502c5ccfe470eb192e 100755 (executable)
@@ -43,9 +43,11 @@ SET(SRCS
        src/notifications/noti_view.c
        src/notifications/noti.c
        src/device/brightness.c
-       src/settings/modules/rotate-lock.c
+       src/device/volume.c
+       src/settings/modules/more-settings.c
        src/settings/modules/bluetooth.c
        src/settings/modules/dnd.c
+       src/settings/modules/softkey.c
        src/settings/modules/wifi.c
        src/settings/modules/sound-profile.c
        src/settings/settings_icon_common.c
@@ -149,6 +151,7 @@ ENDIF("${ARCH}" STREQUAL "arm")
 
 ADD_DEFINITIONS("-DQP_SETTING_ENABLE")
 ADD_DEFINITIONS("-DQP_BRIGHTNESS_ENABLE")
+ADD_DEFINITIONS("-DQP_VOLUME_CONTROL_ENABLE")
 ADD_DEFINITIONS("-DQP_MINICTRL_ENABLE")
 ADD_DEFINITIONS("-DQP_SCREENREADER_ENABLE")
 #ADD_DEFINITIONS("-DQP_SERVICE_NOTI_LED_ENABLE")
index 06623f3c3ea675bda2617ed74fd9725aa7808613..d66c2c1390701096a1a843aa045fa8f5137f27ca 100755 (executable)
        } \
 } while (0);
 
+#define ret_if(expr) do { \
+       if (expr) { \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+
+#define retv_if(expr, val) do { \
+       if (expr) { \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+
 #define retif_nomsg(cond, ret) do { \
        if (cond) { \
                return ret;\
index 10694141ef505008b040b63fed24ba3f9e0b9e87..19d47c9f77f66c5f697df8852e7041051a714f5a 100755 (executable)
@@ -24,6 +24,7 @@ typedef enum {
        QP_ITEM_TYPE_BRIGHTNESS,
        QP_ITEM_TYPE_VOICE_CONTOL,
        QP_ITEM_TYPE_FACTORY,
+       QP_ITEM_TYPE_VOLUME_CONTROL,
        QP_ITEM_TYPE_MULTIWINDOW,
        QP_ITEM_TYPE_EARJACK,
        QP_ITEM_TYPE_MINICTRL_ONGOING,
index 3ebd91a5cbf34f0db8d96f94e335329142cb431d..df028dc734028ac0586394bbdeaf4af3870873c5 100755 (executable)
        #define QP_SETTING_ENABLE
 #endif
 
+#if !defined(QP_VOLUME_CONTROL_ENABLE)
+       #define QP_VOLUME_CONTROL_ENABLE
+#endif
+
 #if !defined(QP_BRIGHTNESS_ENABLE)
        #define QP_BRIGHTNESS_ENABLE
 #endif
index 5cfc1c328a02627eb853c6ebfb10e661e481cdf9..f336803b9bd35a0f1aa40209e0d7170084f29898 100755 (executable)
@@ -83,7 +83,7 @@
 #define QP_THEME_SECTION_ICON_DIVIDER_COLOR "AO003"
 
 #define QP_THEME_LIST_ITEM_SEPERATOR_HEIGHT 0
-#define QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT   76
+#define QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT 94
 #define QP_THEME_LIST_ITEM_MULTIWINDOW_HEIGHT 96 //135
 #define QP_THEME_LIST_ITEM_SHORCUT_SOUND_HEIGHT 96 //135
 #define QP_THEME_LIST_ITEM_SHORCUT_FEATURED_HEIGHT 96 //84
diff --git a/inc/volume.h b/inc/volume.h
new file mode 100755 (executable)
index 0000000..181851e
--- /dev/null
@@ -0,0 +1,22 @@
+/*\r
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#ifndef __QP_VOLUME_H_\r
+#define __QP_VOLUME_H_\r
+\r
+extern void quickpanel_volume_slider_visible_set(unsigned char value);\r
+\r
+#endif
\ No newline at end of file
index 2c5feb91cd7a129ffb9161b096551907a86e4b62..7a2489d71da9eb1edfab0545675081d11cc502a3 100755 (executable)
@@ -9,7 +9,7 @@ type = app
 profile = mobile-4.0
 
 # C/CPP Sources
-USER_SRCS = src/notifications/noti_win.c src/settings/settings_icon_common.c src/device/brightness.c src/common.c src/notifications/noti_listbox.c src/settings/modules/sound-profile.c src/notifications/animated_image.c src/notifications/noti_util.c src/vi/vi_manager.c src/notifications/noti_section.c src/service/keyboard.c src/settings/settings_gridbox.c src/settings/modules/rotate-lock.c src/voice_control.c src/datetime/datetime.c src/sim_controller.c src/service/animated_icon.c src/settings/modules/dnd.c src/service/reminder.c src/preference.c src/accessibility.c src/notifications/noti_view_listype.c src/settings/setting_module_api.c src/notifications/noti_list_item.c src/notifications/noti_node.c src/common_uic.c src/datetime/util-time.c src/handler_controller.c src/settings/modules/wifi.c src/list_util.c src/notifications/noti_view.c src/settings/setting_utils.c src/quickpanel-ui.c src/service/noti_led.c src/settings/modules/bluetooth.c src/page/pager_common.c src/minictrl/minictrl.c src/service/uninstall.c src/service/emergency_mode.c src/page/page_base.c src/page/pager.c src/settings/settings.c src/modules.c src/media.c src/settings/settings_view_featured.c src/notifications/activenoti.c src/notifications/noti_view_ongoing.c src/notifications/noti.c 
+USER_SRCS = src/notifications/noti_win.c src/settings/modules/softkey.c src/settings/settings_icon_common.c src/device/brightness.c src/device/volume.c src/common.c src/notifications/noti_listbox.c src/settings/modules/sound-profile.c src/notifications/animated_image.c src/notifications/noti_util.c src/vi/vi_manager.c src/notifications/noti_section.c src/service/keyboard.c src/settings/settings_gridbox.c src/settings/modules/more-settings.c src/voice_control.c src/datetime/datetime.c src/sim_controller.c src/service/animated_icon.c src/settings/modules/dnd.c src/service/reminder.c src/preference.c src/accessibility.c src/notifications/noti_view_listype.c src/settings/setting_module_api.c src/notifications/noti_list_item.c src/notifications/noti_node.c src/common_uic.c src/datetime/util-time.c src/handler_controller.c src/settings/modules/wifi.c src/list_util.c src/notifications/noti_view.c src/settings/setting_utils.c src/quickpanel-ui.c src/service/noti_led.c src/settings/modules/bluetooth.c src/page/pager_common.c src/minictrl/minictrl.c src/service/uninstall.c src/service/emergency_mode.c src/page/page_base.c src/page/pager.c src/settings/settings.c src/modules.c src/media.c src/settings/settings_view_featured.c src/notifications/activenoti.c src/notifications/noti_view_ongoing.c src/notifications/noti.c 
 
 # EDC Sources
 USER_EDCS =
index d37396dd128f41960dca1b670bc02e347bfb4db1..19c7bc50319883c92cdc552731b9cc9e76a5c897 100755 (executable)
@@ -568,6 +568,7 @@ collections {
 #include "quickpanel_setting.edc"
 #include "quickpanel_datetime.edc"
 #include "quickpanel_brightness.edc"
+#include "quickpanel_volume.edc"
 #include "quickpanel_minictrl.edc"
 #include "quickpanel_noti_section.edc"
 #include "quickpanel_listitem_noti.edc"
index e78d7919ad0d6ec4da902aed15209ba947a680a3..4de3d01297d2972f38663a948e27b06fde3439c7 100755 (executable)
 
                images {
                        image: "quick_icon_brightness.png" COMP;
-                       image: "quick_icon_brightness_00.png" COMP;
-                       image: "quick_icon_brightness_01.png" COMP;
-                       image: "quick_icon_brightness_02.png" COMP;
-                       image: "quick_icon_brightness_03.png" COMP;
-                       image: "quick_icon_brightness_04.png" COMP;
-                       image: "quick_icon_brightness_05.png" COMP;
-                       image: "quick_icon_brightness_06.png" COMP;
-                       image: "quick_icon_brightness_07.png" COMP;
-                       image: "quick_icon_brightness_08.png" COMP;
-                       image: "quick_icon_brightness_09.png" COMP;
-                       image: "quick_icon_brightness_10.png" COMP;
-                       image: "quick_icon_brightness_11.png" COMP;
+                       image: "quick_icon_brightness_0.png" COMP;
+                       image: "quick_icon_brightness_1.png" COMP;
+                       image: "quick_icon_brightness_2.png" COMP;
                        image: "core_theme_bg_01.png" COMP;
                }
 
                                description {
                                        state: "show" 0.0;
                                        inherit: "default" 0.0;
-                                       visible: 1;
+                                       visible: 0;
                                }
                                description {
                                        state: "hide" 0.0;
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 15 0;
-                                       max: 15 0;
+                                       min: 50 0;
+                                       max: 50 0;
                                        fixed: 1 0;
                                        rel1.to:"base";
                                        rel2.to:"base";
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 42 42;
-                                       max: 42 42;
+                                       min: 24 24;
+                                       max: 24 24;
                                        fixed: 1 1;
                                        rel1 {
                                                to_x:"elm.padding.left";
                                                to: "elm.rect.thumbnail";
                                        }
                                        image {
-                                               normal:"quick_icon_brightness_00.png";
+                                               normal:"quick_icon_brightness_0.png";
                                        }
                                }
                                description {
                                        state: "state.0" 0.0;
                                        inherit: "default" 0.0;
                                        image {
-                                               normal:"quick_icon_brightness_00.png";
+                                               normal:"quick_icon_brightness_0.png";
                                        }
                                }
                                description {
                                        state: "state.1" 0.0;
                                        inherit: "default" 0.0;
                                        image {
-                                               normal:"quick_icon_brightness_01.png";
+                                               normal:"quick_icon_brightness_1.png";
                                        }
                                }
                                description {
                                        state: "state.2" 0.0;
                                        inherit: "default" 0.0;
                                        image {
-                                               normal:"quick_icon_brightness_02.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.3" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_03.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.4" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_04.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.5" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_05.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.6" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_06.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.7" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_07.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.8" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_08.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.9" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_09.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.10" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_10.png";
-                                       }
-                               }
-                               description {
-                                       state: "state.11" 0.0;
-                                       inherit: "default" 0.0;
-                                       image {
-                                               normal:"quick_icon_brightness_11.png";
+                                               normal:"quick_icon_brightness_2.png";
                                        }
                                }
                                description {
                                action: STATE_SET "state.2" 0.0;
                                target: "elm.image.thumbnail";
                        }
-                       program{
-                               name: "icon.state.3";
-                               signal: "icon.state.3";
-                               source: "prog";
-                               action: STATE_SET "state.3" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.4";
-                               signal: "icon.state.4";
-                               source: "prog";
-                               action: STATE_SET "state.4" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.5";
-                               signal: "icon.state.5";
-                               source: "prog";
-                               action: STATE_SET "state.5" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.6";
-                               signal: "icon.state.6";
-                               source: "prog";
-                               action: STATE_SET "state.6" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.7";
-                               signal: "icon.state.7";
-                               source: "prog";
-                               action: STATE_SET "state.7" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.8";
-                               signal: "icon.state.8";
-                               source: "prog";
-                               action: STATE_SET "state.8" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.9";
-                               signal: "icon.state.9";
-                               source: "prog";
-                               action: STATE_SET "state.9" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.10";
-                               signal: "icon.state.10";
-                               source: "prog";
-                               action: STATE_SET "state.10" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.11";
-                               signal: "icon.state.11";
-                               source: "prog";
-                               action: STATE_SET "state.11" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               name: "icon.state.auto";
-                               signal: "icon.state.auto";
-                               source: "prog";
-                               action: STATE_SET "state.auto" 0.0;
-                               target: "elm.image.thumbnail";
-                       }
-                       program{
-                               signal: "disable";
-                               source: "disabler";
-                               action: STATE_SET "default" 0.0;
-                               target: "disabler";
-                               target: "elm.rect.slider";
-                       }
-                       program{
-                               signal: "enable";
-                               source: "disabler";
-                               action: STATE_SET "disabled" 0.0;
-                               target: "disabler";
-                               target: "elm.rect.slider";
-                       }
                }
        }
index c35f424285ddf86f16be8acccb544b521b839207..1cb0d96022238f3dcbba89d83f9f01633cef312e 100755 (executable)
@@ -56,93 +56,6 @@ group {
                        }
                }
                QUICKPANEL_FOCUS_OBJECT("focus", "base", "base")
-
-               part { name: "space.button.setting";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 60 0;
-                               fixed: 1 0;
-                               align: 1.0 0.5;
-                               rel1 {
-                                       relative : 1.0 0.0;
-                                       to: "base";
-                               }
-                               rel2 {
-                                       relative : 1.0 1.0;
-                                       to: "base";
-                               }
-                       }
-               }
-               QUICKPANEL_FOCUS_OBJECT("focus.setting", "space.button.setting", "space.button.setting")
-
-               part { name: "space.divider";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 1 0;
-                               fixed: 1 0;
-                               align: 1.0 0.5;
-                               rel1 {
-                                       relative : 0.0 0.0;
-                                       to: "space.button.setting";
-                               }
-                               rel2 {
-                                       relative : 0.0 1.0;
-                                       to: "space.button.setting";
-                               }
-                       }
-               }
-
-               part {
-                       name: "space.datetime";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 {
-                                       relative : 0.0 0.0;
-                                       to: "base";
-                               }
-                               rel2 {
-                                       relative : 0.0 1.0;
-                                       to: "space.divider";
-                               }
-                       }
-               }
-               QUICKPANEL_FOCUS_OBJECT("focus.datetime", "space.datetime", "space.datetime")
-
-               part { name: "image.button.setting.bg";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 0 36;
-                               fixed: 0 1;
-                               align: 0.0 0.5;
-                               rel1 {
-                                       relative: 0.0 0.5;
-                                       to: "space.button.setting";
-                               }
-                               rel2 {
-                                       relative: 1.0 0.5;
-                                       to: "space.button.setting";
-                               }
-                               image {
-                                       normal: "bg_press.#.png";
-                               }
-                               color_class: "F043P";
-                               visible: 0;
-                       }
-                       description {
-                               state: "pressed" 0.0;
-                               inherit: "default";
-                               visible: 1;
-                       }
-               }
-
                part { name: "image.datetime.bg";
                        type: IMAGE;
                        scale: 1;
@@ -150,14 +63,16 @@ group {
                                state: "default" 0.0;
                                min: 0 36;
                                fixed: 0 1;
-                               align: 0.0 0.5;
+                               align: 0.5 0.5;
                                rel1 {
                                        relative : 0.0 0.5;
-                                       to: "space.datetime";
+                                       //to: "space.datetime";
+                                       to : base;
                                }
                                rel2 {
                                        relative : 1.0 0.5;
-                                       to: "space.datetime";
+                                       //to: "space.datetime";
+                                       to: base;
                                }
                                image {
                                        normal: "bg_press.#.png";
@@ -172,72 +87,6 @@ group {
                        }
                }
 
-               part { name: "image.button.setting";
-                       type: IMAGE;
-                       mouse_events: 0;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 42 42;
-                               fixed: 1 1;
-                               align: 0.5 0.5;
-                               rel1 {
-                                       relative: 0.5 0.5;
-                                       to: "space.button.setting";
-                               }
-                               rel2 {
-                                       relative: 0.5 0.5;
-                                       to: "space.button.setting";
-                               }
-                               image {
-                                       normal:"icon_indicator_setting.png";
-                               }
-                               color_class: "AO025";
-                       }
-               }
-
-               part { name: "image.divider";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 1 24;
-                               fixed: 1 1;
-                               align: 0.5 0.5;
-                               rel1 {
-                                       relative: 0.5 0.5;
-                                       to: "space.divider";
-                               }
-                               rel2 {
-                                       relative: 1.0 0.5;
-                                       to: "space.divider";
-                               }
-                               image {
-                                       normal: "line_indicator_divider.png";
-                               }
-                               color_class: "AO003E1";
-                       }
-               }
-
-               part { name: "divider.padding.left";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 15 0;
-                               fixed: 1 0;
-                               align: 1.0 0.5;
-                               rel1 {
-                                       relative: 0.0 0.0;
-                                       to: "space.divider";
-                               }
-                               rel2 {
-                                       relative: 0.0 1.0;
-                                       to: "space.divider";
-                               }
-                       }
-               }
-
                part { name: "text.time";
                        type: TEXTBLOCK;
                        mouse_events: 0;
@@ -246,14 +95,14 @@ group {
                                state: "default" 0.0;
                                min: 0 (3 + 30 + 3);
                                fixed: 1 1;
-                               align: 1.0 0.5;
+                               align: 0.5 0.5;
                                rel1 {
-                                       relative : 0.0 0.5;
-                                       to: "divider.padding.left";
+                                       relative : 0.0 0.0;
+                                       to : base;
                                }
                                rel2 {
-                                       relative : 0.0 0.5;
-                                       to: "divider.padding.left";
+                                       relative : 1.0 1.0;
+                                       to : base;
                                }
                                text {
                                        style: "font_time_am_pm_style";
@@ -264,92 +113,6 @@ group {
                                }
                        }
                }
-
-               part { name: "date.left.padding";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 15 0;
-                               fixed: 1 0;
-                               align: 0.0 0.0;
-                               rel1 {
-                                       relative : 0.0 0.0;
-                                       to: "space.datetime";
-                               }
-                               rel2 {
-                                       relative : 0.0 1.0;
-                                       to: "space.datetime";
-                               }
-                       }
-               }
-
-               part {
-                       name: "date.top.padding";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 0 0;
-                               fixed: 0 1;
-                               align: 0.0 0.0;
-                               rel1 {
-                                       relative: 0.0 0.0;
-                                       to: "space.datetime";
-                               }
-                               rel2 {
-                                       relative: 1.0 0.0;
-                                       to: "space.datetime";
-                               }
-                       }
-               }
-
-               part { name: "text.time.left.padding";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 15 0;
-                               fixed: 1 0;
-                               align: 1.0 0.0;
-                               rel1 {
-                                       //relative : 0.0 0.0;
-                                       to: "text.time";
-                               }
-                               rel2 {
-                                       relative : 0.0 1.0;
-                                       to: "text.time";
-                               }
-                       }
-               }
-
-               part { name: "text.date";
-                       type: TEXTBLOCK;
-                       mouse_events: 0;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               min: 0 (8 + 20 + 8);
-                               fixed: 0 1;
-                               align: 0.0 0.5;
-                               rel1 {
-                                       relative : 1.0 1.0;
-                                       to_x: "date.left.padding";
-                                       to_y: "date.top.padding";
-                               }
-                               rel2 {
-                                       relative : 0.0 1.0;
-                                       to_x : "text.time.left.padding";
-                                       to_y: "space.datetime";
-                               }
-                               text {
-                                       style: "font_date_style";
-                                       min: 0 0;
-                                       max: 1 0;
-                                       align: 0.0 0.5;
-                               }
-                       }
-               }
        }
 
        programs {
@@ -360,20 +123,6 @@ group {
                                set_int(g_is_timedate_clickable, 1);
                        }
                }
-               program{
-                       name: "button.setting.down";
-                       signal: "mouse,down,*";
-                       source: "focus.setting";
-                       action: STATE_SET "pressed" 0.0;
-                       target: "image.button.setting.bg";
-               }
-               program{
-                       name: "button.setting.up";
-                       signal: "mouse,up,*";
-                       source: "focus.setting";
-                       action: STATE_SET "default" 0.0;
-                       target: "image.button.setting.bg";
-               }
                program {
                        name: "timendate.click.enable";
                        signal: "timendate.click.enable";
index 0262d62cdcffb63d0d16eaf16078e83f99806fb0..eebbb4d82fee8e1659939e96d669c3c7aa258218 100755 (executable)
             description { \
                state: "default" 0.0; \
                image.normal: FILE_NAME; \
-               aspect: 1 1; \
-               aspect_preference: BOTH; \
+               min : 40 28; \
+               max : 40 28; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_WIFI( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               min : 50 35; \
+               max : 50 35; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_VOLUME( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               min : 40 32; \
+               max : 40 32; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_BLUETOOTH( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               min : 30 36; \
+               max : 30 36; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_DISTURB( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               min : 40 40; \
+               max : 40 40; \
             } \
          } \
       } \
       } \
    }
 
-       RESOURCE_IMAGE("quick_icon_bluetooth.png");
-       RESOURCE_IMAGE("quick_icon_disturb.png");
-       RESOURCE_IMAGE("quick_icon_auto_rotate.png");
-       RESOURCE_IMAGE("quick_icon_sf_vf.png");
-       RESOURCE_IMAGE("quick_icon_sn_vf.png");
-       RESOURCE_IMAGE("quick_icon_sf_vn.png");
-       RESOURCE_IMAGE("quick_icon_wifi.png");
+       RESOURCE_IMAGE_BLUETOOTH("quick_icon_bluetooth_active.png");
+       RESOURCE_IMAGE_BLUETOOTH("quick_icon_bluetooth_disabled.png");
+       RESOURCE_IMAGE_DISTURB("quick_icon_disturb_active.png");
+       RESOURCE_IMAGE_DISTURB("quick_icon_disturb_disabled.png");
+       RESOURCE_IMAGE("moresettings_active.png");
+       RESOURCE_IMAGE("moresettings_pressed.png");
+       RESOURCE_IMAGE("moresettings_disabled.png");
+       RESOURCE_IMAGE("softkey_active.png");
+       RESOURCE_IMAGE("softkey_disabled.png");
+       RESOURCE_IMAGE_VOLUME("quick_icon_sf_vf.png");
+       RESOURCE_IMAGE_VOLUME("quick_icon_sn_vf.png");
+       RESOURCE_IMAGE_VOLUME("quick_icon_sf_vn.png");
+       RESOURCE_IMAGE_WIFI("quick_icon_wifi_active.png");
+       RESOURCE_IMAGE_WIFI("quick_icon_wifi_disabled.png");
\ No newline at end of file
index 83690f93ee5fa85b67a0edc3298a904d41981fd2..2fb73d581ea2fdeb3ecb0410fdbb10774bd35bef 100755 (executable)
@@ -29,6 +29,8 @@ images {
        image: "quick_button_over.png" COMP;
        image: "quick_menu_divide_highlight.png" COMP;
        image: "quick_button_icon_bg.png" COMP;
+       image: "quick_pressed_button_icon_bg.png" COMP;
+       image: "quick_dimmed_button_icon_bg.png" COMP;
 }
 
 #define ENABLE_COLOR_CLIP
@@ -159,6 +161,27 @@ group {
                                        relative: 1.0 1.0;
                                }
 
+                               align: 0.5 1.0;
+                       }
+               }
+               part {
+                       name: "volume.container.swallow.wvga";
+                       type: SWALLOW;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT;
+                               fixed: 0 1;
+                               rel1 {
+                                       to: "background";
+                                       relative: 0.0 1.0;
+
+                               }
+                               rel2 {
+                                       to: "background";
+                                       relative: 1.0 1.0;
+                               }
+
                                align: 0.5 1.0;
                        }
                }
@@ -382,7 +405,8 @@ group {
                        scale: 1;
                        description {
                                state: "default" 0.0;
-                               min: 0 17;
+                               min: 0 8;
+                               max: 0 8;
                                fixed: 0 1;
                                align: 0.5 0.0;
                                rel1 {
@@ -450,17 +474,22 @@ group {
                                        relative : 0.5 0.5;
                                        to: "background";
                                }
-                               color_class: "AO001L1";
                        }
                        description {
                                state: "pressed" 0.0;
                                inherit: "default" 0.0;
-                               color_class: "AO001L1P";
+                               image {
+                                       normal:"quick_pressed_button_icon_bg.png";
+                               }
+                               //color_class: "AO001L1P";
                        }
                        description {
                                state: "dimmed" 0.0;
                                inherit: "default" 0.0;
-                               color_class: "AO001L1D";
+                               image {
+                                       normal:"quick_dimmed_button_icon_bg.png";
+                               }
+                               //color_class: "AO001L1D";
                        }
                }
 
@@ -620,11 +649,13 @@ group {
                                        to: "spacer.text";
                                }
                                align: 0.5 0.0;
+                               color: 0 0 0 255;
                                text
                                {
                                        style: "icon_text_style";
                                        align: 0.5 0.0;
-                                       max: 0 1;
+                                       size : 2;
+                                       //max: 0 1;
                                }
                        }
                }
index e3bb09879bd3a93e504cfc5ba7835ce6030bd7f2..2e72c3f05fe726d9f8ffa87917507e7ffd645e1e 100755 (executable)
@@ -17,9 +17,9 @@
 
 #include "color_classes.edc"
 
-#define SLIDER_BASE_HEIGHT_INC  6
-#define SLIDER_INDICATOR_SIZE_INC 42
-#define SLIDER_SWALLOWBAR_HEIGHT_INC  42
+#define SLIDER_BASE_HEIGHT_INC  24
+#define SLIDER_INDICATOR_SIZE_INC 24
+#define SLIDER_SWALLOWBAR_HEIGHT_INC 24
 #define SLIDER_LEFT_RIGHT_PADDING_SIZE_INC 20 0
 #define SLIDER_ICON_PADDING_SIZE_INC 5 0
 #define SLIDER_CENTER_POINT_SIZE_INC 10 24
@@ -70,9 +70,6 @@ group {
                                fixed: 1 1;
                                min: SLIDER_INDICATOR_SIZE_INC SLIDER_INDICATOR_SIZE_INC;
                                max: SLIDER_INDICATOR_SIZE_INC SLIDER_INDICATOR_SIZE_INC;
-                               image {
-                                       normal: "core_slider_handle_normal.png";
-                               }
                                color_class: "AO005L3";
                        }
                        description {
@@ -91,9 +88,6 @@ group {
                                fixed: 1 1;
                                min: SLIDER_INDICATOR_SIZE_INC SLIDER_INDICATOR_SIZE_INC;
                                max: SLIDER_INDICATOR_SIZE_INC SLIDER_INDICATOR_SIZE_INC;
-                               image {
-                                       normal: "core_slider_handle_press.png";
-                               }
                                color_class: "AO005L4";
                                visible: 0;
                                }
@@ -349,9 +343,8 @@ group {
                                        relative: 0.0 1.0;
                                }
                                fixed: 0 1;
-                               image.normal: "core_progressbar_bg.#.png";
+                               image.normal: "core_progress_bar.#.png";
                                color: 255 255 255 255;
-                               color_class: "AO005L1";
                        }
                        description {
                                state: "disabled" 0.0;
diff --git a/res/edje/quickpanel_volume.edc b/res/edje/quickpanel_volume.edc
new file mode 100755 (executable)
index 0000000..2611faa
--- /dev/null
@@ -0,0 +1,551 @@
+/*\r
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+\r
+\r
+\r
+//#define DEBUG\r
+//#define DEBUG_TEXT\r
+\r
+#define BRIGHTNESS_ICON_COLOR "AO004"\r
+#define BRIGHTNESS_TEXT_COLOR "AO014"\r
+\r
+       group {\r
+               name: "quickpanel/volume_controller/wrapper";\r
+               parts {\r
+                       part { name: "base";\r
+                               type: SPACER;\r
+                               repeat_events: 1;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT;\r
+                                       max: 9999 QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT;\r
+                                       fixed: 1 1;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 0.0;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                               }\r
+                       }\r
+                       part { name: "elm.swallow.controller";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       fixed: 1 1;\r
+                                       rel1 {\r
+                                               to: "base";\r
+                                       }\r
+                                       rel2 {\r
+                                               to: "base";\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       group {\r
+               name: "quickpanel/volume_controller/default";\r
+\r
+               images {\r
+                       image: "sound_slider_icon_volume_mute.png" COMP;\r
+                       image: "sound_slider_icon_volume1.png" COMP;\r
+                       image: "sound_slider_icon_volume2.png" COMP;\r
+                       image: "core_theme_bg_01.png" COMP;\r
+               }\r
+\r
+               script {\r
+                       public ctnt_shown;\r
+                       public time_shown;\r
+               }\r
+\r
+               parts {\r
+                       part { name: "base";\r
+                               type: RECT;\r
+                               repeat_events: 1;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT;\r
+                                       max: 9999 QP_THEME_LIST_ITEM_BRIGHTNESS_HEIGHT;\r
+                                       fixed: 1 1;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.5 0.0;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color_class: QP_BACKGROUND_COLOR;\r
+                                       visible: QP_THEME_BG_VISIBILITY;\r
+                               }\r
+                               description {\r
+                                       state: "show" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "hide" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+                       part {\r
+                               name: "background";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       fixed: 1 1;\r
+                                       align: 0.5 0.5;\r
+                                       rel1 {\r
+                                               to: "base";\r
+                                       }\r
+                                       rel2 {\r
+                                               to: "base";\r
+                                       }\r
+                                       image {\r
+                                               normal: "core_theme_bg_01.png";\r
+                                       }\r
+                                       visible: 0;\r
+                               }\r
+                               description {\r
+                                       state: "show.bg" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "hide.bg" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+                       part { name: "disabler";\r
+                               type: RECT;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               to: "base";\r
+                                       }\r
+                                       rel2 {\r
+                                               to: "base";\r
+                                       }\r
+                                       color_class: AO004;\r
+                               }\r
+                               description {\r
+                                       state: "disabled" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       color_class: AO004D;\r
+                               }\r
+                       }\r
+                       part { name: "bg_image";\r
+                               type: RECT;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1.to:"base";\r
+                                       rel2.to:"base";\r
+                                       color_class: QP_THEME_BRIGHTNESS_BG_COLOR;\r
+                                       visible: QP_THEME_BG_VISIBILITY;\r
+                               }\r
+                               description {\r
+                                       state: "selected" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       color_class: QP_THEME_BRIGHTNESS_BG_COLOR;\r
+                               }\r
+                       }\r
+                       part { name: "elm.content.bg";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 9 0;\r
+                                       fixed: 1 0;\r
+                                       rel1 {\r
+                                               to_x:"base";\r
+                                               to_y:"base";\r
+                                               relative: 1.0 0.0;\r
+                                       }\r
+                                       rel2 {\r
+                                               to_x:"base";\r
+                                               to_y:"base";\r
+                                               relative: 0.0 1.0;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+                       QUICKPANEL_FOCUS_OBJECT("focus", "elm.content.bg", "elm.content.bg")\r
+                       part { name: "elm.padding.left";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 60 0;\r
+                                       max: 60 0;\r
+                                       fixed: 1 0;\r
+                                       rel1.to:"base";\r
+                                       rel2.to:"base";\r
+                                       rel2.relative: 0.0 0.0;\r
+                                       rel2.relative: 0.0 1.0;\r
+                                       align: 0.0 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+                       part { name: "elm.rect.thumbnail";\r
+                               type: RECT;\r
+                               mouse_events: 0;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 24 24;\r
+                                       max: 24 24;\r
+                                       fixed: 1 1;\r
+                                       rel1 {\r
+                                               to_x:"elm.padding.left";\r
+                                               to_y:"base";\r
+                                               relative: 1.0 0.0;\r
+                                       }\r
+                                       rel2 {\r
+                                               to_x:"elm.padding.left";\r
+                                               to_y:"base";\r
+                                               relative: 1.0 1.0;\r
+                                       }\r
+                                       align: 0.0 0.5;\r
+                                       visible:0;\r
+                               }\r
+                       }\r
+                       part { name: "elm.image.thumbnail";\r
+                               type:IMAGE;\r
+                               clip_to: "disabler";\r
+                               scale:1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       fixed: 0 0;\r
+                                       rel1 {\r
+                                               to: "elm.rect.thumbnail";\r
+                                       }\r
+                                       rel2 {\r
+                                               to: "elm.rect.thumbnail";\r
+                                       }\r
+                                       image {\r
+                                               normal:"sound_slider_icon_volume1.png";\r
+                                       }\r
+                               }\r
+                               description {\r
+                                       state: "state.0" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       image {\r
+                                               normal:"sound_slider_icon_volume_mute.png";\r
+                                       }\r
+                               }\r
+                               description {\r
+                                       state: "state.1" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       image {\r
+                                               normal:"sound_slider_icon_volume1.png";\r
+                                       }\r
+                               }\r
+                               description {\r
+                                       state: "state.2" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       image {\r
+                                               normal:"sound_slider_icon_volume2.png";\r
+                                       }\r
+                               }\r
+                       }\r
+                       part { name: "elm.padding.thumbnail.x";\r
+                               type: RECT;\r
+                               mouse_events: 0;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 0;\r
+                                       fixed: 1 0;\r
+                                       rel1 {\r
+                                               to:"elm.rect.thumbnail";\r
+                                               relative: 1.0 0.0;\r
+                                       }\r
+                                       rel2 {\r
+                                               to:"elm.rect.thumbnail";\r
+                                               relative: 1.0 1.0;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+                       part { name: "elm.swallow.slider.volume";\r
+                               type: SWALLOW;\r
+                               //clip_to: "disabler";\r
+                               mouse_events: 1;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       fixed: 1 1;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0;\r
+                                               to: "elm.padding.thumbnail.x";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "elm.padding.bf.check";\r
+                                       }\r
+                               }\r
+                       }\r
+                       part { name: "elm.rect.slider";\r
+                               type: RECT;\r
+                               mouse_events: 1;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 48;\r
+                                       fixed: 0 1;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0;\r
+                                               to_x: "elm.padding.thumbnail.x";\r
+                                               to_y: "base";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.0 1.0;\r
+                                               to_x: "elm.padding.bf.check";\r
+                                               to_y: "base";\r
+                                       }\r
+                                       align: 0.0 0.5;\r
+                                       color: 0 0 0 0;\r
+                                       visible: 0;\r
+                               }\r
+                               description {\r
+                                       state: "disabled" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                       }\r
+                       part { name: "elm.padding.bf.check";\r
+                               type: SPACER;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                               to: "elm.check.swallow";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "elm.check.swallow";\r
+                                       }\r
+                                       align: 1.0 0.5;\r
+                               }\r
+                       }\r
+\r
+                       part { name: "elm.check.swallow";\r
+                               type: SWALLOW;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                               to: "elm.padding.bf.auto";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "elm.padding.bf.auto";\r
+                                       }\r
+                                       align: 1.0 0.5;\r
+                                       min: 0 40;\r
+                                       fixed: 1 1;\r
+                               }\r
+                       }\r
+\r
+                       part { name: "elm.padding.bf.auto";\r
+                               type: SPACER;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                               to: "elm.rect.auto";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "elm.rect.auto";\r
+                                       }\r
+                                       align: 1.0 0.5;\r
+                                       min: 0 0;\r
+                                       fixed: 1 0;\r
+                               }\r
+                       }\r
+                       part { name: "elm.rect.auto";\r
+                               type: SPACER;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               relative : 0.0 0.0;\r
+                                               to : "elm.check.text";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative : 1.0 1.0;\r
+                                               to : "elm.check.text";\r
+                                       }\r
+                               }\r
+                       }\r
+                       part { name: "elm.check.text";\r
+                               type: TEXT;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       align : 1.0 0.5;\r
+                                       fixed : 1 1;\r
+                                       rel1 {\r
+                                               relative : 0.0 0.5;\r
+                                               to : "elm.padding.right";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative : 0.0 0.5;\r
+                                               to : "elm.padding.right";\r
+                                       }\r
+                                       text {\r
+                                               font : "Tizen:style=Regular";\r
+                                               size : 22;\r
+                                               text_class : "Tizen";\r
+                                               align : 1.0 0.5;\r
+                                               min : 1 1;\r
+                                               ellipsis: -1;\r
+                                       }\r
+                                       color_class: ATO019;\r
+                               }\r
+                       }\r
+                       \r
+                       part { name: "elm.padding.right";\r
+                               type: SPACER;\r
+                               scale: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0;\r
+                                               to: "base";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "base";\r
+                                       }\r
+                                       align: 1.0 0.5;\r
+                                       min: 15 0;\r
+                                       fixed: 1 0;\r
+                               }\r
+                       }\r
+               }\r
+\r
+               programs {\r
+                       program { name: "show_content";\r
+                               signal: "elm,state,elm.swallow.slider.volume,active";\r
+                               source: "elm";\r
+                               script {\r
+                                       set_state(PART:"elm.swallow.slider.volume", "show", 0.0);\r
+                                       set_int(ctnt_shown, 1);\r
+                               }\r
+                       }\r
+                       program { name: "go_active";\r
+                               signal: "elm,state,selected";\r
+                               source: "elm";\r
+                               script {\r
+                                       set_state(PART:"bg_image", "selected", 0.0);\r
+                                       if (get_int(ctnt_shown) == 1)\r
+                                       set_state(PART:"elm.swallow.slider.volume", "selected", 0.0);\r
+                               }\r
+                       }\r
+                       program { name: "go_passive";\r
+                               signal: "elm,state,unselected";\r
+                               source: "elm";\r
+                               script {\r
+                                       set_state(PART:"bg_image", "default", 0.0);\r
+                                       if (get_int(ctnt_shown) == 1)\r
+                                       set_state(PART:"elm.swallow.slider.volume", "show", 0.0);\r
+                               }\r
+                       }\r
+                       program{\r
+                               name: "show.base.bg";\r
+                               signal: "show";\r
+                               source: "base";\r
+                               action: STATE_SET "show" 0.0;\r
+                               target: "base";\r
+                       }\r
+                       program{\r
+                               name: "hide.base.bg";\r
+                               signal: "hide";\r
+                               source: "base";\r
+                               action: STATE_SET "hide" 0.0;\r
+                               target: "base";\r
+                       }\r
+                       program{\r
+                               name: "show.bg";\r
+                               signal: "show.bg";\r
+                               source: "prog.bg";\r
+                               action: STATE_SET "show.bg" 0.0;\r
+                               target: "background";\r
+                       }\r
+                       program{\r
+                               name: "hide.bg";\r
+                               signal: "hide.bg";\r
+                               source: "prog.bg";\r
+                               action: STATE_SET "hide.bg" 0.0;\r
+                               target: "background";\r
+                       }\r
+                       program{\r
+                               name: "icon.state.0";\r
+                               signal: "icon.state.0";\r
+                               source: "prog";\r
+                               action: STATE_SET "state.0" 0.0;\r
+                               target: "elm.image.thumbnail";\r
+                       }\r
+                       program{\r
+                               name: "icon.state.1";\r
+                               signal: "icon.state.1";\r
+                               source: "prog";\r
+                               action: STATE_SET "state.1" 0.0;\r
+                               target: "elm.image.thumbnail";\r
+                       }\r
+                       program{\r
+                               name: "icon.state.2";\r
+                               signal: "icon.state.2";\r
+                               source: "prog";\r
+                               action: STATE_SET "state.2" 0.0;\r
+                               target: "elm.image.thumbnail";\r
+                       }\r
+                       program{\r
+                               signal: "disable";\r
+                               source: "disabler";\r
+                               action: STATE_SET "default" 0.0;\r
+                               target: "disabler";\r
+                               target: "elm.rect.slider";\r
+                       }\r
+                       program{\r
+                               signal: "enable";\r
+                               source: "disabler";\r
+                               action: STATE_SET "disabled" 0.0;\r
+                               target: "disabler";\r
+                               target: "elm.rect.slider";\r
+                       }\r
+               }\r
+       }
\ No newline at end of file
index 5ed62da9e80eab8edde7b1ad36cf0649b0ee38a1..366f092151444f74e755923388aba8fcfa3def65 100755 (executable)
Binary files a/res/images/core_progress_bar.#.png and b/res/images/core_progress_bar.#.png differ
index e19c598f6bbb225cb53a84b9fc2d0a26cefdb333..b9f33886acabd631de44401fca1fabe054424e81 100755 (executable)
Binary files a/res/images/core_progressbar_bg.#.png and b/res/images/core_progressbar_bg.#.png differ
diff --git a/res/images/core_progressbar_bg.#original.png b/res/images/core_progressbar_bg.#original.png
new file mode 100755 (executable)
index 0000000..e19c598
Binary files /dev/null and b/res/images/core_progressbar_bg.#original.png differ
index 477402feab3b9a4dcaa108659c38d6a07aed0e8a..b1f0a1fb9c89d45044f9abdd997a99b51d7619ec 100755 (executable)
Binary files a/res/images/core_theme_bg_01.png and b/res/images/core_theme_bg_01.png differ
diff --git a/res/images/quick_icon_brightness_0.png b/res/images/quick_icon_brightness_0.png
new file mode 100755 (executable)
index 0000000..d537eac
Binary files /dev/null and b/res/images/quick_icon_brightness_0.png differ
diff --git a/res/images/quick_icon_brightness_1.png b/res/images/quick_icon_brightness_1.png
new file mode 100755 (executable)
index 0000000..d1f0d85
Binary files /dev/null and b/res/images/quick_icon_brightness_1.png differ
diff --git a/res/images/quick_icon_brightness_2.png b/res/images/quick_icon_brightness_2.png
new file mode 100755 (executable)
index 0000000..7a71e1f
Binary files /dev/null and b/res/images/quick_icon_brightness_2.png differ
diff --git a/res/images/sound_slider_icon_volume.png b/res/images/sound_slider_icon_volume.png
new file mode 100755 (executable)
index 0000000..7b9ae4a
Binary files /dev/null and b/res/images/sound_slider_icon_volume.png differ
diff --git a/res/images/sound_slider_icon_volume1.png b/res/images/sound_slider_icon_volume1.png
new file mode 100755 (executable)
index 0000000..12247bf
Binary files /dev/null and b/res/images/sound_slider_icon_volume1.png differ
diff --git a/res/images/sound_slider_icon_volume2.png b/res/images/sound_slider_icon_volume2.png
new file mode 100755 (executable)
index 0000000..59f98a1
Binary files /dev/null and b/res/images/sound_slider_icon_volume2.png differ
diff --git a/res/images/sound_slider_icon_volume_mute.png b/res/images/sound_slider_icon_volume_mute.png
new file mode 100755 (executable)
index 0000000..c7f1e4c
Binary files /dev/null and b/res/images/sound_slider_icon_volume_mute.png differ
diff --git a/res/images_icon/moresettings_active.png b/res/images_icon/moresettings_active.png
new file mode 100755 (executable)
index 0000000..b06b4af
Binary files /dev/null and b/res/images_icon/moresettings_active.png differ
diff --git a/res/images_icon/moresettings_disabled.png b/res/images_icon/moresettings_disabled.png
new file mode 100755 (executable)
index 0000000..f72c961
Binary files /dev/null and b/res/images_icon/moresettings_disabled.png differ
diff --git a/res/images_icon/moresettings_pressed.png b/res/images_icon/moresettings_pressed.png
new file mode 100755 (executable)
index 0000000..1a6d1e5
Binary files /dev/null and b/res/images_icon/moresettings_pressed.png differ
diff --git a/res/images_icon/quick_button_background.png b/res/images_icon/quick_button_background.png
new file mode 100755 (executable)
index 0000000..3894f58
Binary files /dev/null and b/res/images_icon/quick_button_background.png differ
index 392389c26497dba8435dc3f16533d953d2c71305..ef55e1fef1b1415baa027eefe004f77a46f8a92d 100755 (executable)
Binary files a/res/images_icon/quick_button_icon_bg.png and b/res/images_icon/quick_button_icon_bg.png differ
diff --git a/res/images_icon/quick_dimmed_button_icon_bg.png b/res/images_icon/quick_dimmed_button_icon_bg.png
new file mode 100755 (executable)
index 0000000..a8f678e
Binary files /dev/null and b/res/images_icon/quick_dimmed_button_icon_bg.png differ
diff --git a/res/images_icon/quick_icon_bluetooth_active.png b/res/images_icon/quick_icon_bluetooth_active.png
new file mode 100755 (executable)
index 0000000..4b13821
Binary files /dev/null and b/res/images_icon/quick_icon_bluetooth_active.png differ
diff --git a/res/images_icon/quick_icon_bluetooth_disabled.png b/res/images_icon/quick_icon_bluetooth_disabled.png
new file mode 100755 (executable)
index 0000000..b66b8b1
Binary files /dev/null and b/res/images_icon/quick_icon_bluetooth_disabled.png differ
diff --git a/res/images_icon/quick_icon_disturb_active.png b/res/images_icon/quick_icon_disturb_active.png
new file mode 100755 (executable)
index 0000000..07ea1c4
Binary files /dev/null and b/res/images_icon/quick_icon_disturb_active.png differ
diff --git a/res/images_icon/quick_icon_disturb_disabled.png b/res/images_icon/quick_icon_disturb_disabled.png
new file mode 100755 (executable)
index 0000000..941961b
Binary files /dev/null and b/res/images_icon/quick_icon_disturb_disabled.png differ
index a585498384caf0ba7ce7802f55dd89e4114e48bf..3d89062649d4842706ad453f7733ac0d12954f16 100755 (executable)
Binary files a/res/images_icon/quick_icon_sf_vf.png and b/res/images_icon/quick_icon_sf_vf.png differ
index ff22abe13763c466a4d3ef6d36ba12e5f643fe5f..513c6e4754df1a70de55792565ff26b1d5e0a958 100755 (executable)
Binary files a/res/images_icon/quick_icon_sf_vn.png and b/res/images_icon/quick_icon_sf_vn.png differ
index 005e7936765295cb94e0df7c88abe571cfa39453..f271fd2dc0903a17b49610181d3c47d3b0479eb2 100755 (executable)
Binary files a/res/images_icon/quick_icon_sn_vf.png and b/res/images_icon/quick_icon_sn_vf.png differ
diff --git a/res/images_icon/quick_icon_wifi_active.png b/res/images_icon/quick_icon_wifi_active.png
new file mode 100755 (executable)
index 0000000..8a6fb40
Binary files /dev/null and b/res/images_icon/quick_icon_wifi_active.png differ
diff --git a/res/images_icon/quick_icon_wifi_disabled.png b/res/images_icon/quick_icon_wifi_disabled.png
new file mode 100755 (executable)
index 0000000..dacf5ab
Binary files /dev/null and b/res/images_icon/quick_icon_wifi_disabled.png differ
diff --git a/res/images_icon/quick_pressed_button_icon_bg.png b/res/images_icon/quick_pressed_button_icon_bg.png
new file mode 100755 (executable)
index 0000000..ef55e1f
Binary files /dev/null and b/res/images_icon/quick_pressed_button_icon_bg.png differ
diff --git a/res/images_icon/softkey_active.png b/res/images_icon/softkey_active.png
new file mode 100755 (executable)
index 0000000..fbdd967
Binary files /dev/null and b/res/images_icon/softkey_active.png differ
diff --git a/res/images_icon/softkey_disabled.png b/res/images_icon/softkey_disabled.png
new file mode 100755 (executable)
index 0000000..633528a
Binary files /dev/null and b/res/images_icon/softkey_disabled.png differ
index f18715be4e4e4739ea8ba0d60138fb9640e160d3..b4d66c4185e1fd3e11d564aa81cfb6ae45e31e9d 100755 (executable)
@@ -34,6 +34,12 @@ msgstr "Bluetooth"
 msgid "IDS_ST_BUTTON2_AUTO_NROTATE"
 msgstr "Auto\nrotate"
 
+msgid "IDS_ST_BUTTON2_MORE_SETTINGS"
+msgstr "More\nsettings"
+
+msgid "IDS_ST_BUTTON2_SOFTKEY_CONTAINER"
+msgstr "Soft key\ncontainer"
+
 msgid "IDS_COM_BODY_NO_SERVICE"
 msgstr "No service"
 
index 88e498cbaf3818da0b2580c35ae85b2aedc9444c..5eda95ec5f4711eeb6300968d2104d2103bf9eed 100755 (executable)
@@ -27,6 +27,7 @@
 #include <tzsh_quickpanel_service.h>
 
 #include "common.h"
+#include "volume.h"
 #include "quickpanel-ui.h"
 #include "list_util.h"
 #include "quickpanel_def.h"
@@ -241,6 +242,7 @@ static void _slider_changed_job_cb(void *data)
 
                        quickpanel_brightness_transparent_background_set(true);
                        elm_object_signal_emit(_controller_view_get(), "show", "base");
+                       quickpanel_volume_slider_visible_set(EINA_FALSE);
                }
        }
 
@@ -320,6 +322,7 @@ static void _brightness_slider_drag_stop_cb(void *data, Evas_Object *obj, void *
 
        quickpanel_brightness_transparent_background_set(false);
        elm_object_signal_emit(_controller_view_get(), "hide", "base");
+       quickpanel_volume_slider_visible_set(EINA_TRUE);
 }
 
 /*!
@@ -413,14 +416,12 @@ static void _brightness_set_image(int level)
                return;
        }
 
-       if (level <= 1)
+       if (level <= 33)
                mapped_level = 0;
-       else if (level >= 100)
-               mapped_level = 11;
-       else if (level > 1 && level <= 9)
+       else if (level > 33 && level <=66)
                mapped_level = 1;
        else
-               mapped_level = (level / 10);
+               mapped_level = 2;
 
 
        if (g_ctrl_obj->level_before != mapped_level) {
diff --git a/src/device/volume.c b/src/device/volume.c
new file mode 100755 (executable)
index 0000000..b8e0df0
--- /dev/null
@@ -0,0 +1,829 @@
+/*\r
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+\r
+#include <Elementary.h>\r
+#include <glib.h>\r
+#include <string.h>\r
+#include <feedback.h>\r
+#include <notification.h>\r
+#include <vconf.h>\r
+#include <vconf-keys.h>\r
+#include <sound_manager.h>\r
+#include <device/display.h>\r
+#include <app_control.h>\r
+#include <tzsh.h>\r
+#include <tzsh_quickpanel_service.h>\r
+\r
+#include "common.h"\r
+#include "volume.h"\r
+#include "quickpanel-ui.h"\r
+#include "list_util.h"\r
+#include "quickpanel_def.h"\r
+#include "settings_view_featured.h"\r
+#include "preference.h"\r
+#include "setting_utils.h"\r
+\r
+#ifdef QP_SCREENREADER_ENABLE\r
+#include "accessibility.h"\r
+#endif\r
+\r
+#ifdef QP_EMERGENCY_MODE_ENABLE\r
+#include "emergency_mode.h"\r
+#endif\r
+#include "tzsh_volume_service.h"\r
+\r
+#define VOLUME_MIN 1\r
+#define VOLUME_MAX 100\r
+\r
+\r
+#define VCONF_KEY_MUTE_TYPE_SYSTEM             VCONF_KEY_MUTE_PREFIX"/system"\r
+#define VCONF_KEY_MUTE_TYPE_NOTIFICATION       VCONF_KEY_MUTE_PREFIX"/notification"\r
+#define VCONF_KEY_MUTE_TYPE_ALARM                      VCONF_KEY_MUTE_PREFIX"/alarm"\r
+#define VCONF_KEY_MUTE_TYPE_RINGTONE           VCONF_KEY_MUTE_PREFIX"/ringtone"\r
+#define VCONF_KEY_MUTE_TYPE_MEDIA                      VCONF_KEY_MUTE_PREFIX"/media"\r
+#define VCONF_KEY_MUTE_TYPE_CALL                       VCONF_KEY_MUTE_PREFIX"/call"\r
+#define VCONF_KEY_MUTE_TYPE_VOIP                       VCONF_KEY_MUTE_PREFIX"/voip"\r
+#define VCONF_KEY_MUTE_TYPE_VOICE              VCONF_KEY_MUTE_PREFIX"/voice"\r
+\r
+/* For internal use */\r
+#define VCONF_KEY_VOLUME_TYPE_BIXBY            VCONF_KEY_VOLUME_PREFIX"/bixby"\r
+\r
+typedef struct _volume_ctrl_obj {\r
+       int min_level;\r
+       int max_level;\r
+       int is_event_registered;\r
+       int last_requested_level;\r
+       Evas_Object *viewer;\r
+       void *data;\r
+       int level_before;\r
+       int pos_x;\r
+       bool is_changing;\r
+       Evas_Object *volume_slider;\r
+} volume_ctrl_obj;\r
+\r
+struct _control_s_info {\r
+       Eina_Bool is_deleting;\r
+       Eina_Bool is_launching;\r
+       Eina_Bool is_new;\r
+       Eina_Bool is_warning_visible;\r
+       Eina_Bool reset_once;\r
+       Eina_Bool show_once;\r
+       Eina_Bool safety_limit;\r
+\r
+       int current_angle;\r
+       int viewport_width;\r
+       int viewport_height;\r
+       int time_for_safety_limit;\r
+\r
+       sound_type_e sound_type_at_show;\r
+};\r
+static struct _control_s_info control_info = {\r
+       .is_deleting = EINA_FALSE,\r
+       .is_launching = EINA_FALSE,\r
+       .is_new = EINA_FALSE,\r
+       .is_warning_visible = EINA_FALSE,\r
+       .reset_once = EINA_FALSE,\r
+       .show_once = EINA_FALSE,\r
+       .safety_limit = EINA_TRUE,\r
+\r
+       .current_angle = 0,\r
+       .viewport_width = 0,\r
+       .viewport_height = 0,\r
+       .time_for_safety_limit = 0,\r
+\r
+       .sound_type_at_show = SOUND_TYPE_MEDIA,\r
+};\r
+\r
+struct _view_s_info {\r
+       Evas_Object *win;\r
+       tzsh_h tzsh;\r
+       tzsh_volume_service_h volume_service;\r
+       Evas_Object *evas;\r
+       Evas_Object *ly_outer;\r
+       Evas_Object *icon_volume;\r
+       Evas_Object *icon_volume_mute;\r
+       Evas_Object *icon_setting;\r
+       Evas_Object *slider;\r
+       Evas_Object *warning_popup;\r
+       Evas_Object *ao_volume;\r
+\r
+       Evas_Object *lockscreen_splash;\r
+\r
+       Evas_Object *ao_settings;\r
+\r
+       Eina_Bool is_registered_callback;\r
+       Eina_Bool is_slider_touching;\r
+       Eina_Bool is_warning_displayed;\r
+       sound_type_e pre_sound_type;\r
+};\r
+static struct _view_s_info view_info = {\r
+       .win = NULL,\r
+       .tzsh = NULL,\r
+       .volume_service = NULL,\r
+       .evas = NULL,\r
+       .ly_outer = NULL,\r
+       .icon_volume = NULL,\r
+       .icon_setting = NULL,\r
+       .slider = NULL,\r
+       .warning_popup = NULL,\r
+       .ao_volume = NULL,\r
+\r
+       .lockscreen_splash = NULL,\r
+\r
+       .ao_settings = NULL,\r
+\r
+       .is_registered_callback = EINA_FALSE,\r
+       .is_slider_touching = EINA_FALSE,\r
+       .is_warning_displayed = EINA_FALSE,\r
+       .pre_sound_type = SOUND_TYPE_RINGTONE\r
+};\r
+\r
+struct _sound_s_info {\r
+       int sound_step;\r
+       int sound_status;\r
+       int vibration_status;\r
+       int sound_changed_callback_id;\r
+       Eina_Bool is_vibration;\r
+};\r
+\r
+static struct _sound_s_info sound_info = {\r
+       .sound_step = 0,\r
+       .sound_status = 0,\r
+       .vibration_status = 0,\r
+       .sound_changed_callback_id = 1,\r
+       .is_vibration = EINA_FALSE,\r
+};\r
+\r
+typedef enum {\r
+       TYPE_VCONF_SOUND_STATUS = 0,\r
+       TYPE_VCONF_VIBRATION_STATUS\r
+} volume_vconf_type_e;\r
+\r
+int volume_slider_drag_start = -1;\r
+\r
+static int _init(void *data);\r
+static int _fini(void *data);\r
+static void _lang_changed(void *data);\r
+static void _qp_opened(void *data);\r
+static void _qp_closed(void *data);\r
+static void _volume_view_update(void);\r
+static void _volume_register_event_cb(volume_ctrl_obj *ctrl_obj);\r
+static void _volume_deregister_event_cb(volume_ctrl_obj *ctrl_obj);\r
+\r
+static void _volume_set_image(int level);\r
+static void _refresh(void *data);\r
+\r
+QP_Module volume_ctrl = {\r
+       .name = "volume_ctrl",\r
+       .init = _init,\r
+       .fini = _fini,\r
+       .suspend = NULL,\r
+       .resume = NULL,\r
+       .hib_enter = NULL,\r
+       .hib_leave = NULL,\r
+       .lang_changed = _lang_changed,\r
+       .refresh = _refresh,\r
+       .get_height = NULL,\r
+       .qp_opened = _qp_opened,\r
+       .qp_closed = _qp_closed,\r
+};\r
+\r
+static volume_ctrl_obj *g_ctrl_obj;\r
+\r
+sound_type_e volume_control_get_sound_type_at_show(void)\r
+{\r
+       return control_info.sound_type_at_show;\r
+}\r
+\r
+static Evas_Object *_controller_view_get(void)\r
+{\r
+       Evas_Object *view = NULL;\r
+\r
+       if (g_ctrl_obj != NULL) {\r
+               if (g_ctrl_obj->viewer != NULL) {\r
+                       view = elm_object_part_content_get(g_ctrl_obj->viewer, "elm.swallow.controller");\r
+                       if (view == NULL)\r
+                               view = evas_object_data_get(g_ctrl_obj->viewer, "view.controller");\r
+\r
+               }\r
+       }\r
+\r
+       return view;\r
+}\r
+\r
+void quickpanel_volume_slider_visible_set(unsigned char value)\r
+{\r
+       if(g_ctrl_obj)\r
+       {\r
+               if(g_ctrl_obj->viewer)\r
+               {\r
+                       DBG("volume_slider visibility value [%d]", value);\r
+                       Elm_Transit *transit = elm_transit_add();\r
+                       elm_transit_object_add(transit, g_ctrl_obj->viewer);\r
+                       elm_transit_tween_mode_set(transit, ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL);\r
+                       elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);\r
+                       elm_transit_duration_set(transit, 0.4);\r
+                       if (!value) {\r
+                               elm_transit_effect_color_add(transit, 255, 255, 255, 255, 255, 255, 255, 0);\r
+                       } else {\r
+                               int r, g, b, a;\r
+                               evas_object_color_get(g_ctrl_obj->viewer, &r, &g, &b, &a);\r
+                               elm_transit_effect_color_add(transit, r, g, b, a, 255, 255, 255, 255);\r
+                       }\r
+                       elm_transit_go(transit);\r
+               }\r
+       }\r
+}\r
+\r
+static void _controller_view_set(Evas_Object *wrapper, Evas_Object *view)\r
+{\r
+       retif(wrapper == NULL, , "invalid data");\r
+       retif(view == NULL, , "invalid data");\r
+\r
+       elm_object_part_content_set(wrapper, "elm.swallow.controller", view);\r
+       evas_object_data_set(wrapper, "view.controller", view);\r
+}\r
+\r
+static char *_volume_access_state_cb(void *data, Evas_Object *obj)\r
+{\r
+       char buf[512] = {0,};\r
+       volume_ctrl_obj *ctrl_obj = data;\r
+       retif(NULL == ctrl_obj, NULL, "invalid data");\r
+\r
+       snprintf(buf, sizeof(buf) - 1, _NOT_LOCALIZED("Position %1$d of %2$d"),\r
+                       ctrl_obj->last_requested_level, ctrl_obj->max_level);\r
+\r
+       return strdup(buf);\r
+}\r
+\r
+#ifdef QP_SCREENREADER_ENABLE\r
+static void _set_slider_accessiblity_state(Evas_Object *obj)\r
+{\r
+       Evas_Object *ao = NULL;\r
+       volume_ctrl_obj *ctrl_obj = g_ctrl_obj;\r
+       retif(ctrl_obj == NULL, , "Invalid parameter!");\r
+       retif(ctrl_obj->viewer == NULL, , "Invalid parameter!");\r
+\r
+       ao = quickpanel_accessibility_screen_reader_object_get(obj,\r
+                       SCREEN_READER_OBJ_TYPE_ELM_OBJECT, NULL, NULL);\r
+       if (ao != NULL) {\r
+               elm_access_info_set(ao, ELM_ACCESS_INFO, _NOT_LOCALIZED("Volume"));\r
+               elm_access_info_set(ao, ELM_ACCESS_TYPE, _NOT_LOCALIZED("Slider"));\r
+               elm_access_info_cb_set(ao, ELM_ACCESS_STATE, _volume_access_state_cb, ctrl_obj);\r
+       }\r
+}\r
+#endif\r
+\r
+static Evas_Object *_check_duplicated_loading(Evas_Object *obj, const char *part)\r
+{\r
+       Evas_Object *old_content = NULL;\r
+       retif(obj == NULL, NULL, "Invalid parameter!");\r
+       retif(part == NULL, NULL, "Invalid parameter!");\r
+\r
+       old_content = elm_object_part_content_get(obj, part);\r
+       if (old_content != NULL)\r
+               return old_content;\r
+\r
+\r
+       return NULL;\r
+}\r
+\r
+static int _volume_set_level(int level)\r
+{\r
+       int ret = SOUND_MANAGER_ERROR_NONE;\r
+       ret = sound_manager_set_volume(SOUND_TYPE_MEDIA, level);\r
+       if (ret !=  SOUND_MANAGER_ERROR_NONE)\r
+               ERR("failed to set volume");\r
+\r
+       return level;\r
+}\r
+\r
+static int _volume_get_level(void)\r
+{\r
+       int level = 0;\r
+       int ret = -1,val = 0;\r
+       ret = sound_manager_get_volume(SOUND_TYPE_MEDIA, &val);\r
+       if(ret<0)\r
+               DBG("FAILED TO GET THE VOLUME");\r
+       return val;\r
+}\r
+\r
+Evas_Object *volume_slider_get(Evas_Object *view, volume_ctrl_obj *ctrl_obj)\r
+{\r
+       DBG("**** volume_slider_get *******");\r
+       retif(view == NULL, NULL, "Data parameter is NULL");\r
+\r
+       Evas_Object *obj = elm_object_part_content_get(view, "elm.swallow.slider.volume");\r
+\r
+       if (obj)\r
+               return obj;\r
+       else\r
+               return ctrl_obj->volume_slider;\r
+\r
+}\r
+\r
+void volume_sound_vconf_status_set(volume_vconf_type_e type, int val)\r
+{\r
+       char *vconfkey = NULL;\r
+       switch (type) {\r
+       case TYPE_VCONF_SOUND_STATUS:\r
+               vconfkey = VCONFKEY_SETAPPL_SOUND_STATUS_BOOL;\r
+               break;\r
+       case TYPE_VCONF_VIBRATION_STATUS:\r
+               vconfkey = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;\r
+               break;\r
+       default:\r
+               DBG("Failed to set vconfkey : Type error");\r
+               return;\r
+       }\r
+\r
+       if (vconf_set_bool(vconfkey, val) < 0)\r
+               DBG("Failed to set vconfkey : %s", vconfkey);\r
+}\r
+\r
+int volume_sound_vconf_status_get(volume_vconf_type_e type)\r
+{\r
+       int ret = -1;\r
+       char *vconfkey = NULL;\r
+\r
+       switch (type) {\r
+       case TYPE_VCONF_SOUND_STATUS:\r
+               vconfkey = VCONFKEY_SETAPPL_SOUND_STATUS_BOOL;\r
+               break;\r
+       case TYPE_VCONF_VIBRATION_STATUS:\r
+               vconfkey = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;\r
+               break;\r
+       default:\r
+               DBG("Failed to get vconfkey : Type error");\r
+               return -1;\r
+       }\r
+\r
+       if (vconf_get_bool(vconfkey, &ret) < 0) {\r
+               DBG("Failed to get vconfkey : %s", vconfkey);\r
+               return -1;\r
+       }\r
+\r
+       return ret;\r
+}\r
+\r
+void volume_sound_play(void)\r
+{\r
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();\r
+       DBG("sound type at show : %d", sound_type);\r
+\r
+       ret_if(sound_type == SOUND_TYPE_ALARM);\r
+       ret_if(sound_type == SOUND_TYPE_MEDIA);\r
+       ret_if(sound_type == SOUND_TYPE_VOICE);\r
+       ret_if(sound_type == SOUND_TYPE_NOTIFICATION);\r
+\r
+       DBG("Play Feedback : sound");\r
+       if (FEEDBACK_ERROR_NONE != feedback_play(FEEDBACK_PATTERN_VOLUME_KEY))\r
+               DBG("Failed to play feedback");\r
+\r
+       return;\r
+}\r
+\r
+typedef enum {\r
+       VOLUME_ERROR_OK = 0,\r
+       VOLUME_ERROR_FAIL = -1,\r
+       VOLUME_ERROR_INVALID_PARAMETER = -2,\r
+       VOLUME_ERROR_NO_DATA = -3\r
+} volume_error_e;\r
+\r
+volume_error_e volume_view_slider_value_set(int val)\r
+{\r
+       DBG("Slider value set : %d", val);\r
+       retv_if(view_info.is_slider_touching, VOLUME_ERROR_FAIL);\r
+       retv_if(val < 0, VOLUME_ERROR_FAIL);\r
+\r
+       elm_slider_value_set(view_info.slider, val);\r
+\r
+       return VOLUME_ERROR_OK;\r
+}\r
+\r
+int volume_sound_level_set(sound_type_e type, int val)\r
+{\r
+       int ret = -1;\r
+       ret = sound_manager_set_volume(type, val);\r
+\r
+       return ret;\r
+}\r
+\r
+void volume_sound_vib_play(void)\r
+{\r
+       ret_if(sound_info.is_vibration);\r
+\r
+       DBG("Play Feedback : vibration");\r
+\r
+       if (FEEDBACK_ERROR_NONE != feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_VIBRATION_ON))\r
+               DBG("Failed to play feedback");\r
+\r
+       sound_info.is_vibration = EINA_TRUE;\r
+}\r
+\r
+void volume_sound_change_set(int val)\r
+{\r
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();\r
+       DBG("sound type at show : %d", sound_type);\r
+\r
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);\r
+       DBG("sound status : %d", sound);\r
+\r
+       if (val) {\r
+               if (volume_sound_level_set(SOUND_TYPE_MEDIA, val) != 0)\r
+                       volume_sound_level_set(SOUND_TYPE_MEDIA, 9);\r
+               volume_sound_play();\r
+       } else {\r
+               if (sound_type != SOUND_TYPE_MEDIA)\r
+                       volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 0);\r
+\r
+               volume_view_slider_value_set(0);\r
+               volume_sound_level_set(sound_type, 0);\r
+\r
+               if (sound_type == SOUND_TYPE_RINGTONE) {\r
+                       volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 1);\r
+                       volume_sound_vib_play();\r
+               }\r
+       }\r
+}\r
+static void _volume_ctrl_slider_changed_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       double val=0.0;\r
+       int value = 0;\r
+       volume_ctrl_obj *ctrl_obj = data;\r
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();\r
+       DBG("sound type at show : %d", sound_type);\r
+       obj = volume_slider_get(_controller_view_get(), ctrl_obj);\r
+       val = elm_slider_value_get(obj);\r
+       DBG("*** val == %lf ***",val);\r
+       value = (int)(val + 0.5);\r
+       DBG("*** value == %d ***",value);\r
+       _volume_set_image(value);\r
+       volume_sound_change_set(value);\r
+}\r
+\r
+static void _volume_slider_drag_start_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       volume_slider_drag_start = _volume_get_level();\r
+}\r
+\r
+static void _volume_slider_drag_stop_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       view_info.is_slider_touching = EINA_FALSE;\r
+       volume_ctrl_obj *ctrl_obj = data;\r
+       Evas_Object *slider = volume_slider_get(_controller_view_get(), ctrl_obj);\r
+       ret_if(slider == NULL);\r
+\r
+       double val = 0;\r
+\r
+       val = elm_slider_value_get(slider);\r
+       val += 0.5;\r
+       DBG("**** slider value : %d ***", (int)val);\r
+       _volume_set_image(val);\r
+       volume_sound_change_set((int)val);\r
+}\r
+\r
+/*!\r
+ * workaround to avoid focus jump to other pages\r
+ */\r
+static void _frame_focused(void *data, Evas_Object * obj, void *event_info)\r
+{\r
+       DBG("");\r
+}\r
+\r
+static void _frame_unfocused(void *data, Evas_Object * obj, void *event_info)\r
+{\r
+       DBG("");\r
+}\r
+\r
+\r
+static void _volume_view_pos_set()\r
+{\r
+       struct appdata *ad = quickpanel_get_app_data();\r
+\r
+       Evas_Coord base_y;\r
+       //      Evas_Coord settings_y;\r
+       Evas_Coord volume_y;\r
+\r
+       Eina_Bool ret = EINA_FALSE;\r
+\r
+       edje_object_part_geometry_get(_EDJ(ad->view_root), "qp.root.swallow", NULL, &base_y, NULL, NULL);\r
+       //      edje_object_part_geometry_get(ad->ly, QP_SETTING_BASE_PART, NULL, &settings_y, NULL, NULL);\r
+\r
+       Evas_Object *settings_swallow = quickpanel_setting_layout_get(ad->ly, QP_SETTING_BASE_PART);\r
+       ret = edje_object_part_geometry_get(_EDJ(settings_swallow),"volume.container.swallow.wvga", NULL, &volume_y, NULL, NULL);\r
+       msgif(!ret, "ret is EINA_FALSE");\r
+\r
+       evas_object_move(g_ctrl_obj->viewer, 0, base_y + /*settings_y */+ volume_y);\r
+}\r
+\r
+static Evas_Object *_volume_view_create(Evas_Object *list)\r
+{\r
+       Eina_Bool ret = EINA_TRUE;\r
+       Evas_Object *view_wrapper = NULL;\r
+       Evas_Object *view = NULL;\r
+\r
+       retif(list == NULL, NULL, "list parameter is NULL");\r
+\r
+       view_wrapper = elm_layout_add(list);\r
+       if (view_wrapper != NULL) {\r
+               ret = elm_layout_file_set(view_wrapper, util_get_res_file_path(DEFAULT_EDJ),\r
+                               "quickpanel/volume_controller/wrapper");\r
+\r
+               if (ret == EINA_FALSE)\r
+                       ERR("failed to load volume wapper layout");\r
+\r
+               evas_object_size_hint_weight_set(view_wrapper, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+               evas_object_size_hint_align_set(view_wrapper, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+\r
+               view = elm_layout_add(view_wrapper);\r
+               if (view != NULL) {\r
+                       ret = elm_layout_file_set(view, util_get_res_file_path(DEFAULT_EDJ),\r
+                                       "quickpanel/volume_controller/default");\r
+\r
+                       if (ret == EINA_FALSE)\r
+                               ERR("failed to load volume layout");\r
+\r
+                       evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+                       evas_object_size_hint_align_set(view, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+\r
+                       Evas_Object *focus = quickpanel_accessibility_ui_get_focus_object(view);\r
+                       elm_access_info_cb_set(focus, ELM_ACCESS_TYPE, quickpanel_accessibility_info_cb_s, _NOT_LOCALIZED("Volume"));\r
+                       elm_object_part_content_set(view, "focus", focus);\r
+\r
+                       evas_object_smart_callback_add(focus, "focused", _frame_focused, NULL);\r
+                       evas_object_smart_callback_add(focus, "unfocused", _frame_unfocused, NULL);\r
+                       evas_object_show(view);\r
+                       _volume_view_pos_set();\r
+\r
+                       g_ctrl_obj->volume_slider = view;\r
+                       _controller_view_set(view_wrapper, view);\r
+                       evas_object_show(view_wrapper);\r
+               }\r
+       }\r
+\r
+       return view_wrapper;\r
+}\r
+\r
+static void _volume_set_image(int level)\r
+{\r
+       int mapped_level;\r
+       DBG("******_volume_set_image level = %d *********",level);\r
+       if (!g_ctrl_obj) {\r
+               ERR("Ctrl Obj is not defined");\r
+               return;\r
+       }\r
+       if (level <= 1)\r
+               mapped_level = 0;\r
+\r
+       else if (level > 1 && level <= 9)\r
+               mapped_level = 1;\r
+\r
+       else\r
+               mapped_level = 2;\r
+       if (g_ctrl_obj->level_before != mapped_level) {\r
+               char buf[128] = {0,};\r
+               Evas_Object *view;\r
+\r
+               view = _controller_view_get();\r
+               snprintf(buf, sizeof(buf) - 1, "icon.state.%d", mapped_level);\r
+               elm_object_signal_emit(view, buf, "prog");\r
+               g_ctrl_obj->level_before = mapped_level;\r
+       }\r
+}\r
+\r
+static void _volume_set_slider(void)\r
+{\r
+       DBG("****** _volume_set_slider ******");\r
+       int value = 0;\r
+       Evas_Object *slider = NULL;\r
+       Evas_Object *old_obj = NULL;\r
+       volume_ctrl_obj *ctrl_obj = g_ctrl_obj;\r
+       Evas_Object *view = _controller_view_get();\r
+       retif(ctrl_obj == NULL, , "Invalid parameter!");\r
+       retif(view == NULL, , "Invalid parameter!");\r
+\r
+       old_obj = _check_duplicated_loading(view, "elm.swallow.slider.volume");\r
+\r
+       if (old_obj == NULL) {\r
+               slider = elm_slider_add(view);\r
+\r
+               if (slider != NULL) {\r
+                       evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);\r
+                       evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);\r
+                       elm_slider_min_max_set(slider, ctrl_obj->min_level, ctrl_obj->max_level);\r
+                       evas_object_smart_callback_add(slider, "changed", _volume_ctrl_slider_changed_cb, ctrl_obj);\r
+                       evas_object_smart_callback_add(slider, "slider,drag,start", _volume_slider_drag_start_cb, ctrl_obj);\r
+                       evas_object_smart_callback_add(slider, "slider,drag,stop", _volume_slider_drag_stop_cb, ctrl_obj);\r
+                       elm_object_part_content_set(view, "elm.swallow.slider.volume", slider);\r
+               } else {\r
+                       ERR("failed to create slider");\r
+                       return;\r
+               }\r
+       } else {\r
+               slider = old_obj;\r
+       }\r
+\r
+       elm_object_style_set(slider, "quickpanel_style");\r
+\r
+       elm_slider_indicator_format_set(slider, NULL);\r
+       elm_slider_indicator_format_function_set(slider, NULL, NULL);\r
+       elm_slider_indicator_show_set(slider, EINA_FALSE);\r
+\r
+#ifdef QP_SCREENREADER_ENABLE\r
+       _set_slider_accessiblity_state(slider);\r
+#endif\r
+\r
+       value = _volume_get_level();\r
+       elm_slider_value_set(slider, value);\r
+       _volume_set_image(value);\r
+}\r
+\r
+static void _focus_pair_set()\r
+{\r
+       volume_ctrl_obj *ctrl_obj = g_ctrl_obj;\r
+       Evas_Object *focus = NULL;\r
+       Evas_Object *slider = NULL;\r
+       Evas_Object *view = _controller_view_get();\r
+       retif(ctrl_obj == NULL, , "Invalid parameter!");\r
+       retif(view == NULL, , "Invalid parameter!");\r
+\r
+       focus = elm_object_part_content_get(view, "focus");\r
+       slider = elm_object_part_content_get(view, "elm.swallow.slider.volume");\r
+\r
+       if (focus != NULL && slider != NULL) {\r
+               /* focus */\r
+               elm_object_focus_next_object_set(focus, slider, ELM_FOCUS_RIGHT);\r
+               elm_object_focus_next_object_set(focus, slider, ELM_FOCUS_DOWN);\r
+\r
+               /* slider */\r
+               elm_object_focus_next_object_set(slider, focus, ELM_FOCUS_LEFT);\r
+               elm_object_focus_next_object_set(slider, focus, ELM_FOCUS_UP);\r
+       }\r
+}\r
+\r
+static void _volume_view_update(void)\r
+{\r
+       DBG("****** _volume_view_update ********");\r
+       _volume_set_slider();\r
+       _focus_pair_set();\r
+}\r
+\r
+static void _volume_add(volume_ctrl_obj *ctrl_obj, void *data)\r
+{\r
+       struct appdata *ad = data;\r
+       retif(!ad, , "list is NULL");\r
+       retif(!ad->list, , "list is NULL");\r
+       retif(ctrl_obj == NULL, , "ctrl_obj is null");\r
+       retif(ctrl_obj->viewer != NULL, , "viewer is already created");\r
+\r
+       ctrl_obj->viewer = _volume_view_create(ad->list);\r
+       ctrl_obj->data = data;\r
+\r
+       _volume_set_image(VOLUME_MIN);\r
+       _refresh(ad);\r
+}\r
+\r
+static void _volume_remove(volume_ctrl_obj *ctrl_obj, void *data)\r
+{\r
+       struct appdata *ad = data;\r
+       retif(ad == NULL, , "list is NULL");\r
+       retif(ad->list == NULL, , "list is NULL");\r
+\r
+       if (g_ctrl_obj != NULL) {\r
+               if (g_ctrl_obj->viewer != NULL) {\r
+                       quickpanel_list_util_item_unpack_by_object(ad->list\r
+                                       , g_ctrl_obj->viewer, 0, 0);\r
+                       quickpanel_list_util_del_item_type(g_ctrl_obj->viewer);\r
+                       evas_object_del(g_ctrl_obj->viewer);\r
+                       g_ctrl_obj->viewer = NULL;\r
+               }\r
+               DBG("volume controller is removed");\r
+               free(g_ctrl_obj);\r
+               g_ctrl_obj = NULL;\r
+       }\r
+}\r
+\r
+static void _volume_create(void *data)\r
+{\r
+       if (g_ctrl_obj == NULL) {\r
+               g_ctrl_obj = (volume_ctrl_obj *)calloc(1, sizeof(volume_ctrl_obj));\r
+               if (g_ctrl_obj != NULL) {\r
+                       g_ctrl_obj->min_level = 1;\r
+                       g_ctrl_obj->max_level = 15;\r
+                       g_ctrl_obj->last_requested_level = _volume_get_level();\r
+\r
+                       _volume_add(g_ctrl_obj, data);\r
+                       _volume_view_update();\r
+\r
+                       g_ctrl_obj->volume_slider = NULL;\r
+\r
+                       DBG("volume controller is created");\r
+               }\r
+       }\r
+}\r
+\r
+static void _volume_destroy(void *data)\r
+{\r
+       if (g_ctrl_obj != NULL) {\r
+               _volume_remove(g_ctrl_obj, data);\r
+\r
+               DBG("volume controller is removed");\r
+       }\r
+\r
+       g_ctrl_obj = NULL;\r
+}\r
+\r
+static int _init(void *data)\r
+{\r
+       DBG("************ volume.c init() **********");\r
+       retif(data == NULL, QP_FAIL, "Invalid parameter!");\r
+\r
+#ifdef QP_EMERGENCY_MODE_ENABLE\r
+       if (quickpanel_emergency_mode_is_on())\r
+               return QP_OK;\r
+\r
+#endif\r
+       DBG("*********** volume_create() calling ******");\r
+       _volume_create(data);\r
+\r
+       return QP_OK;\r
+}\r
+\r
+static int _fini(void *data)\r
+{\r
+       retif(data == NULL, QP_FAIL, "Invalid parameter!");\r
+\r
+       _volume_destroy(data);\r
+\r
+       return QP_OK;\r
+}\r
+\r
+static void _lang_changed(void *data)\r
+{\r
+       retif(data == NULL, , "Invalid parameter!");\r
+\r
+       if (g_ctrl_obj != NULL && g_ctrl_obj->viewer != NULL)\r
+               _volume_view_update();\r
+\r
+}\r
+\r
+static void _qp_opened(void *data)\r
+{\r
+       Evas_Object *slider = NULL;\r
+       Evas_Object *view = _controller_view_get();\r
+       retif(g_ctrl_obj == NULL, , "Invalid parameter!");\r
+       retif(view == NULL, , "Invalid parameter!");\r
+\r
+       if (view != NULL) {\r
+               _volume_view_update();\r
+               slider = elm_object_part_content_get(view, "elm.swallow.slider.volume");\r
+       }\r
+}\r
+\r
+static void _qp_closed(void *data)\r
+{\r
+       retif(g_ctrl_obj == NULL, , "Invalid parameter!");\r
+\r
+       if (g_ctrl_obj->viewer != NULL)\r
+               _volume_view_update();\r
+\r
+}\r
+\r
+static void _refresh(void *data)\r
+{\r
+       int h = 0;\r
+       struct appdata *ad = data;\r
+       Evas_Object *view = _controller_view_get();\r
+       retif(ad == NULL, , "Invalid parameter!");\r
+       retif(g_ctrl_obj == NULL, , "Invalid parameter!");\r
+       retif(g_ctrl_obj->viewer == NULL, , "Invalid parameter!");\r
+       retif(view == NULL, , "Invalid parameter!");\r
+\r
+       evas_object_geometry_get(g_ctrl_obj->viewer, NULL, NULL, NULL, &h);\r
+\r
+       if (ad->angle == 90 || ad->angle == 270) {\r
+               evas_object_resize(g_ctrl_obj->viewer, ad->win_height, h);\r
+               evas_object_resize(view, ad->win_height, h);\r
+               _volume_view_pos_set();\r
+\r
+       } else {\r
+               evas_object_resize(g_ctrl_obj->viewer, ad->win_width, h);\r
+               evas_object_resize(view, ad->win_width, h);\r
+               _volume_view_pos_set();\r
+       }\r
+}\r
index 3cb6255fa30c7865eb3d8d49324afb5aa7ab1b47..a40dae481fd018c6b62d7c3c1c6fe76f8e359338 100755 (executable)
@@ -45,6 +45,10 @@ extern QP_Module minictrl;
 extern QP_Module brightness_ctrl;
 #endif /* QP_BRIGHTNESS_ENABLE */
 
+#ifdef QP_VOLUME_CONTROL_ENABLE
+extern QP_Module volume_ctrl;
+#endif
+
 #ifdef QP_ANIMATED_IMAGE_ENABLE
 extern QP_Module animated_image;
 #endif
@@ -56,12 +60,12 @@ extern QP_Module noti;
 extern QP_Module activenoti;
 extern QP_Module qp_datetime_controller;
 extern QP_Module qp_datetime_view;
-
-/* voice control */
+/*
+// voice control
 #ifdef QP_VOICE_CONTROL_ENABLE
 extern QP_Module voice_control;
 #endif
-
+*/
 /* do not change the order of modules, result may be changed up to order */
 static QP_Module *modules[] = {
        &vi_manager,
@@ -77,14 +81,17 @@ static QP_Module *modules[] = {
 #ifdef QP_BRIGHTNESS_ENABLE
        &brightness_ctrl,
 #endif /* QP_BRIGHTNESS_ENABLE */
+#ifdef QP_VOLUME_CONTROL_ENABLE
+       &volume_ctrl,
+#endif /* QP_VOLUME_CONTROL_ENABLE */
        &noti,
        &activenoti,
 #ifdef QP_ANIMATED_IMAGE_ENABLE
        &animated_image,
 #endif
-#ifdef QP_VOICE_CONTROL_ENABLE
+/*#ifdef QP_VOICE_CONTROL_ENABLE
        &voice_control,
-#endif
+#endif*/
 };
 
 HAPI int quickpanel_modules_init(void *data)
index fcf02ae5885c00e38c96fde48fd859d5687d42fe..f5eb85bbccff658f5946e99d47c1fbea886c1875 100755 (executable)
@@ -32,7 +32,7 @@ static const char *_default_preference_get(const char *key)
        if (strcmp(key, PREF_BRIGHTNESS) == 0)
                return "OFF";
        else if (strcmp(key, PREF_QUICKSETTING_ORDER) == 0)
-               return "wifi,dnd,sound,rotate,bluetooth,mobile_data,assisitvelight,u_power_saving,wifi_hotspot,flightmode";
+               return "wifi,bluetooth,sound,dnd,softkey,moresettings,mobile_data,assisitvelight,u_power_saving,wifi_hotspot,flightmode";
        else if (strcmp(key, PREF_QUICKSETTING_FEATURED_NUM) == 0)
                return "11";
        else if (strcmp(key, PREF_SHORTCUT_ENABLE) == 0)
index ec55997c7feeab85903c36003ee91c291ef1d913..dbb72f5d69c6a486d2a40bd79ed8d87d4c8c062a 100755 (executable)
@@ -30,8 +30,8 @@
 #include "settings_icon_common.h"
 
 #define BUTTON_LABEL _("IDS_ST_BUTTON2_BLUETOOTH_ABB")
-#define BUTTON_ICON_NORMAL "quick_icon_bluetooth.png"
-#define BUTTON_ICON_HIGHLIGHT NULL
+#define BUTTON_ICON_NORMAL "quick_icon_bluetooth_disabled.png"
+#define BUTTON_ICON_HIGHLIGHT "quick_icon_bluetooth_active.png"
 #define BUTTON_ICON_DIM NULL
 
 int bt_service = BT_ERROR_NONE;
index 5231f7813e23b8940599f17f3c96a08a7b0508b9..43c3d8e794eba4d71acb15babaa38664b83f0cfb 100755 (executable)
@@ -32,8 +32,8 @@
 #include <notification_ipc.h>
 
 #define BUTTON_LABEL _("IDS_QP_BUTTON2_DO_NOT_DISTURB_ABB")
-#define BUTTON_ICON_NORMAL "quick_icon_disturb.png"
-#define BUTTON_ICON_HIGHLIGHT NULL
+#define BUTTON_ICON_NORMAL "quick_icon_disturb_disabled.png"
+#define BUTTON_ICON_HIGHLIGHT "quick_icon_disturb_active.png"
 #define BUTTON_ICON_DIM NULL
 
 static notification_system_setting_h system_setting = NULL;
diff --git a/src/settings/modules/more-settings.c b/src/settings/modules/more-settings.c
new file mode 100755 (executable)
index 0000000..e8008ba
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2019 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 <Elementary.h>
+
+#include <vconf.h>
+#include <system_settings.h>
+#include <bundle_internal.h>
+#include <tzsh.h>
+#include <tzsh_quickpanel_service.h>
+
+#include "common.h"
+#include "quickpanel-ui.h"
+#include "settings.h"
+#include "setting_utils.h"
+#include "setting_module_api.h"
+#include "settings_icon_common.h"
+
+#define BUTTON_LABEL _("IDS_ST_BUTTON2_MORE_SETTINGS")
+#define BUTTON_ICON_NORMAL "moresettings_disabled.png"
+#define BUTTON_ICON_HIGHLIGHT "moresettings_active.png"
+#define BUTTON_ICON_DIM NULL
+
+static void _mouse_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+static const char *_label_get(void)
+{
+       return BUTTON_LABEL;
+}
+
+static const char *_icon_get(qp_setting_icon_image_type type)
+{
+       if (type == QP_SETTING_ICON_NORMAL) {
+               return BUTTON_ICON_NORMAL;
+       } else if (type == QP_SETTING_ICON_HIGHLIGHT) {
+               return BUTTON_ICON_HIGHLIGHT;
+       } else if (type == QP_SETTING_ICON_DIM) {
+#ifdef BUTTON_ICON_DIM
+               return BUTTON_ICON_DIM;
+#endif
+       }
+
+       return NULL;
+}
+
+static void _long_press_cb(void *data)
+{
+       QP_Module_Setting *module = (QP_Module_Setting *)data;
+
+       if (quickpanel_setting_module_is_immediate_actionable(module, QP_SETTING_ICON_LONGPRESSED) == false)
+               return;
+
+       quickpanel_setting_icon_handler_longpress(module->setting_pkgname, "viewtype", "main");
+}
+
+static void _view_update(Evas_Object *view, int state, int flag_extra_1, int flag_extra_2)
+{
+       Evas_Object *image = NULL;
+       const char *icon_path = NULL;
+
+       quickpanel_setting_icon_state_set(view, state);
+
+       if (state == ICON_VIEW_STATE_ON) {
+#ifdef BUTTON_ICON_HIGHLIGHT
+               icon_path = BUTTON_ICON_HIGHLIGHT;
+#endif
+       } else if (state == ICON_VIEW_STATE_DIM) {
+#ifdef BUTTON_ICON_DIM
+               icon_path = BUTTON_ICON_DIM;
+#endif
+       } else {
+               icon_path = BUTTON_ICON_NORMAL;
+       }
+
+       if (icon_path == NULL)
+               icon_path = BUTTON_ICON_NORMAL;
+
+       image = quickpanel_setting_icon_image_new(view, icon_path);
+       quickpanel_setting_icon_content_set(view, image);
+       quickpanel_setting_icon_text_set(view, BUTTON_LABEL, state);
+}
+
+static void _status_update(QP_Module_Setting *module, int flag_extra_1, int flag_extra_2)
+{
+       int ret = 0;
+       bool status = false;
+       retif(module == NULL, , "Invalid parameter!");
+
+       ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &status);
+       msgif(ret !=  SYSTEM_SETTINGS_ERROR_NONE , "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);
+
+       if (status == true)
+               quickpanel_setting_module_icon_state_set(module, ICON_VIEW_STATE_ON);
+       else
+               quickpanel_setting_module_icon_state_set(module, ICON_VIEW_STATE_OFF);
+
+
+       quickpanel_setting_module_icon_view_update(module, quickpanel_setting_module_icon_state_get(module), FLAG_VALUE_VOID);
+}
+
+static void _mouse_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       QP_Module_Setting *module = (QP_Module_Setting *)data;
+       DBG(" ***** mouse clicked -cb  128 *****");
+       DBG("***** first   %d value *****",quickpanel_setting_module_icon_state_get(module));
+       if(quickpanel_setting_module_icon_state_get(module) == 1) {
+               DBG("***** %d value *****",quickpanel_setting_module_icon_state_get(module));
+               quickpanel_setting_module_icon_state_set(module, 0);
+               quickpanel_setting_module_icon_view_update(module ,0,FLAG_VALUE_VOID);
+       }
+       else {
+               DBG("***** %d value *****",quickpanel_setting_module_icon_state_get(module));
+               quickpanel_setting_module_icon_state_set(module, 1);
+               quickpanel_setting_module_icon_view_update(module ,1,FLAG_VALUE_VOID);
+               quickpanel_common_launch_app("org.tizen.setting" ,NULL);
+       }
+}
+
+static int _register_module_event_handler(void *data)
+{
+       int ret = 0;
+       return QP_OK;
+}
+
+static int _unregister_module_event_handler(void *data)
+{
+       int ret = 0;
+       return QP_OK;
+}
+
+/****************************************************************************
+ *
+ * Quickpanel Item functions
+ *
+ ****************************************************************************/
+static int _init(void *data)
+{
+       int ret = QP_OK;
+
+       ret = _register_module_event_handler(data);
+
+       return ret;
+}
+
+static int _fini(void *data)
+{
+       int ret = QP_OK;
+
+       ret = _unregister_module_event_handler(data);
+
+       return ret;
+}
+
+static void _lang_changed(void *data)
+{
+       QP_Module_Setting *module = (QP_Module_Setting *)data;
+       retif(module == NULL, , "Invalid parameter!");
+
+       quickpanel_setting_module_icon_view_update_text(module);
+}
+
+static void _refresh(void *data)
+{
+       QP_Module_Setting *module = (QP_Module_Setting *)data;
+       retif(module == NULL, , "Invalid parameter!");
+
+       quickpanel_setting_module_icon_view_update_text(module);
+}
+
+QP_Module_Setting moresettings = {
+       .name                           = "moresettings",
+       .setting_pkgname        = "org.tizen.setting",
+       .init                           = _init,
+       .fini                           = _fini,
+       .lang_changed           = _lang_changed,
+       .refresh                        = _refresh,
+       .icon_get                       = _icon_get,
+       .label_get                      = _label_get,
+       .view_update        = _view_update,
+       .status_update          = _status_update,
+       .handler_longpress              = _long_press_cb,
+       .handler_press          = _mouse_clicked_cb,
+};
diff --git a/src/settings/modules/rotate-lock.c b/src/settings/modules/rotate-lock.c
deleted file mode 100755 (executable)
index 8f6faef..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2019 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 <Elementary.h>
-
-#include <vconf.h>
-#include <system_settings.h>
-#include <bundle_internal.h>
-#include <tzsh.h>
-#include <tzsh_quickpanel_service.h>
-
-#include "common.h"
-#include "quickpanel-ui.h"
-#include "settings.h"
-#include "setting_utils.h"
-#include "setting_module_api.h"
-#include "settings_icon_common.h"
-
-#define BUTTON_LABEL _("IDS_ST_BUTTON2_AUTO_NROTATE")
-#define BUTTON_ICON_NORMAL "quick_icon_auto_rotate.png"
-#define BUTTON_ICON_HIGHLIGHT NULL
-#define BUTTON_ICON_DIM NULL
-
-static void _mouse_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-
-static const char *_label_get(void)
-{
-       return BUTTON_LABEL;
-}
-
-static const char *_icon_get(qp_setting_icon_image_type type)
-{
-       if (type == QP_SETTING_ICON_NORMAL) {
-               return BUTTON_ICON_NORMAL;
-       } else if (type == QP_SETTING_ICON_HIGHLIGHT) {
-               return BUTTON_ICON_HIGHLIGHT;
-       } else if (type == QP_SETTING_ICON_DIM) {
-#ifdef BUTTON_ICON_DIM
-               return BUTTON_ICON_DIM;
-#endif
-       }
-
-       return NULL;
-}
-
-static void _long_press_cb(void *data)
-{
-       QP_Module_Setting *module = (QP_Module_Setting *)data;
-
-       if (quickpanel_setting_module_is_immediate_actionable(module, QP_SETTING_ICON_LONGPRESSED) == false)
-               return;
-
-       quickpanel_setting_icon_handler_longpress(module->setting_pkgname, "viewtype", "main");
-}
-
-static void _view_update(Evas_Object *view, int state, int flag_extra_1, int flag_extra_2)
-{
-       Evas_Object *image = NULL;
-       const char *icon_path = NULL;
-
-       quickpanel_setting_icon_state_set(view, state);
-
-       if (state == ICON_VIEW_STATE_ON) {
-#ifdef BUTTON_ICON_HIGHLIGHT
-               icon_path = BUTTON_ICON_HIGHLIGHT;
-#endif
-       } else if (state == ICON_VIEW_STATE_DIM) {
-#ifdef BUTTON_ICON_DIM
-               icon_path = BUTTON_ICON_DIM;
-#endif
-       } else {
-               icon_path = BUTTON_ICON_NORMAL;
-       }
-
-       if (icon_path == NULL)
-               icon_path = BUTTON_ICON_NORMAL;
-
-       image = quickpanel_setting_icon_image_new(view, icon_path);
-       quickpanel_setting_icon_content_set(view, image);
-       quickpanel_setting_icon_text_set(view, BUTTON_LABEL, state);
-}
-
-static void _status_update(QP_Module_Setting *module, int flag_extra_1, int flag_extra_2)
-{
-       int ret = 0;
-       bool status = false;
-       retif(module == NULL, , "Invalid parameter!");
-
-       ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &status);
-       msgif(ret !=  SYSTEM_SETTINGS_ERROR_NONE , "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);
-
-       if (status == true)
-               quickpanel_setting_module_icon_state_set(module, ICON_VIEW_STATE_ON);
-       else
-               quickpanel_setting_module_icon_state_set(module, ICON_VIEW_STATE_OFF);
-
-
-       quickpanel_setting_module_icon_view_update(module, quickpanel_setting_module_icon_state_get(module), FLAG_VALUE_VOID);
-}
-
-static void _mouse_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       int ret = 0;
-       bool status = false;
-
-       ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &status);
-       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);
-
-       ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, !status);
-       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);
-}
-
-static void _autorotation_vconf_cb(system_settings_key_e key, void *data)
-{
-       _status_update(data, FLAG_VALUE_VOID, FLAG_VALUE_VOID);
-}
-
-static int _register_module_event_handler(void *data)
-{
-       int ret = 0;
-
-       ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, _autorotation_vconf_cb, data);
-       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to notify key(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO) : %d", ret);
-
-       return QP_OK;
-}
-
-static int _unregister_module_event_handler(void *data)
-{
-       int ret = 0;
-
-       ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO);
-       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to ignore key(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO) : %d", ret);
-
-       return QP_OK;
-}
-
-/****************************************************************************
- *
- * Quickpanel Item functions
- *
- ****************************************************************************/
-static int _init(void *data)
-{
-       int ret = QP_OK;
-
-       ret = _register_module_event_handler(data);
-
-       return ret;
-}
-
-static int _fini(void *data)
-{
-       int ret = QP_OK;
-
-       ret = _unregister_module_event_handler(data);
-
-       return ret;
-}
-
-static void _lang_changed(void *data)
-{
-       QP_Module_Setting *module = (QP_Module_Setting *)data;
-       retif(module == NULL, , "Invalid parameter!");
-
-       quickpanel_setting_module_icon_view_update_text(module);
-}
-
-static void _refresh(void *data)
-{
-       QP_Module_Setting *module = (QP_Module_Setting *)data;
-       retif(module == NULL, , "Invalid parameter!");
-
-       quickpanel_setting_module_icon_view_update_text(module);
-}
-
-QP_Module_Setting rotate = {
-       .name                           = "rotate",
-       .setting_pkgname        = "org.tizen.setting-display",
-       .init                           = _init,
-       .fini                           = _fini,
-       .lang_changed           = _lang_changed,
-       .refresh                        = _refresh,
-       .icon_get                       = _icon_get,
-       .label_get                      = _label_get,
-       .view_update        = _view_update,
-       .status_update          = _status_update,
-       .handler_longpress              = _long_press_cb,
-       .handler_press          = _mouse_clicked_cb,
-};
diff --git a/src/settings/modules/softkey.c b/src/settings/modules/softkey.c
new file mode 100755 (executable)
index 0000000..c4740a8
--- /dev/null
@@ -0,0 +1,207 @@
+/*\r
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+\r
+#include <Elementary.h>\r
+\r
+#include <vconf.h>\r
+#include <system_settings.h>\r
+#include <bundle_internal.h>\r
+#include <tzsh.h>\r
+#include <tzsh_quickpanel_service.h>\r
+\r
+#include "common.h"\r
+#include "quickpanel-ui.h"\r
+#include "settings.h"\r
+#include "setting_utils.h"\r
+#include "setting_module_api.h"\r
+#include "settings_icon_common.h"\r
+\r
+#define BUTTON_LABEL _("IDS_ST_BUTTON2_SOFTKEY_CONTAINER")\r
+#define BUTTON_ICON_NORMAL "softkey_active.png"\r
+#define BUTTON_ICON_HIGHLIGHT "softkey_active.png"\r
+#define BUTTON_ICON_DIM NULL\r
+\r
+static void _mouse_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);\r
+\r
+static const char *_label_get(void)\r
+{\r
+       return BUTTON_LABEL;\r
+}\r
+\r
+static const char *_icon_get(qp_setting_icon_image_type type)\r
+{\r
+       if (type == QP_SETTING_ICON_NORMAL) {\r
+               return BUTTON_ICON_NORMAL;\r
+       } else if (type == QP_SETTING_ICON_HIGHLIGHT) {\r
+               return BUTTON_ICON_HIGHLIGHT;\r
+       } else if (type == QP_SETTING_ICON_DIM) {\r
+#ifdef BUTTON_ICON_DIM\r
+               return BUTTON_ICON_DIM;\r
+#endif\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static void _long_press_cb(void *data)\r
+{\r
+       QP_Module_Setting *module = (QP_Module_Setting *)data;\r
+\r
+       if (quickpanel_setting_module_is_immediate_actionable(module, QP_SETTING_ICON_LONGPRESSED) == false)\r
+               return;\r
+\r
+       quickpanel_setting_icon_handler_longpress(module->setting_pkgname, "viewtype", "main");\r
+}\r
+\r
+static void _view_update(Evas_Object *view, int state, int flag_extra_1, int flag_extra_2)\r
+{\r
+       Evas_Object *image = NULL;\r
+       const char *icon_path = NULL;\r
+\r
+       quickpanel_setting_icon_state_set(view, state);\r
+\r
+       if (state == ICON_VIEW_STATE_ON) {\r
+#ifdef BUTTON_ICON_HIGHLIGHT\r
+               icon_path = BUTTON_ICON_HIGHLIGHT;\r
+#endif\r
+       } else if (state == ICON_VIEW_STATE_DIM) {\r
+#ifdef BUTTON_ICON_DIM\r
+               icon_path = BUTTON_ICON_DIM;\r
+#endif\r
+       } else {\r
+               icon_path = BUTTON_ICON_NORMAL;\r
+       }\r
+\r
+       if (icon_path == NULL)\r
+               icon_path = BUTTON_ICON_NORMAL;\r
+\r
+       image = quickpanel_setting_icon_image_new(view, icon_path);\r
+       quickpanel_setting_icon_content_set(view, image);\r
+       quickpanel_setting_icon_text_set(view, BUTTON_LABEL, state);\r
+}\r
+\r
+static void _status_update(QP_Module_Setting *module, int flag_extra_1, int flag_extra_2)\r
+{\r
+       int ret = 0;\r
+       bool status = false;\r
+       retif(module == NULL, , "Invalid parameter!");\r
+\r
+       ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &status);\r
+       msgif(ret !=  SYSTEM_SETTINGS_ERROR_NONE , "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);\r
+\r
+       if (status == true)\r
+               quickpanel_setting_module_icon_state_set(module, ICON_VIEW_STATE_ON);\r
+       else\r
+               quickpanel_setting_module_icon_state_set(module, ICON_VIEW_STATE_OFF);\r
+\r
+\r
+       quickpanel_setting_module_icon_view_update(module, quickpanel_setting_module_icon_state_get(module), FLAG_VALUE_VOID);\r
+}\r
+\r
+static void _mouse_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)\r
+{\r
+       /*\r
+       int ret = 0;\r
+       bool status = false;\r
+\r
+       ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &status);\r
+       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);\r
+\r
+       ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, !status);\r
+       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to notify key SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO : %d", ret);\r
+       */\r
+       quickpanel_common_launch_app("org.tizen.setting" ,NULL);\r
+}\r
+\r
+static void _autorotation_vconf_cb(system_settings_key_e key, void *data)\r
+{\r
+       _status_update(data, FLAG_VALUE_VOID, FLAG_VALUE_VOID);\r
+}\r
+\r
+static int _register_module_event_handler(void *data)\r
+{\r
+       int ret = 0;\r
+\r
+       ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, _autorotation_vconf_cb, data);\r
+       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to notify key(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO) : %d", ret);\r
+\r
+       return QP_OK;\r
+}\r
+\r
+static int _unregister_module_event_handler(void *data)\r
+{\r
+       int ret = 0;\r
+\r
+       ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO);\r
+       msgif(ret != SYSTEM_SETTINGS_ERROR_NONE, "failed to ignore key(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO) : %d", ret);\r
+\r
+       return QP_OK;\r
+}\r
+\r
+/****************************************************************************\r
+ *\r
+ * Quickpanel Item functions\r
+ *\r
+ ****************************************************************************/\r
+static int _init(void *data)\r
+{\r
+       int ret = QP_OK;\r
+\r
+       ret = _register_module_event_handler(data);\r
+\r
+       return ret;\r
+}\r
+\r
+static int _fini(void *data)\r
+{\r
+       int ret = QP_OK;\r
+\r
+       ret = _unregister_module_event_handler(data);\r
+\r
+       return ret;\r
+}\r
+\r
+static void _lang_changed(void *data)\r
+{\r
+       QP_Module_Setting *module = (QP_Module_Setting *)data;\r
+       retif(module == NULL, , "Invalid parameter!");\r
+\r
+       quickpanel_setting_module_icon_view_update_text(module);\r
+}\r
+\r
+static void _refresh(void *data)\r
+{\r
+       QP_Module_Setting *module = (QP_Module_Setting *)data;\r
+       retif(module == NULL, , "Invalid parameter!");\r
+\r
+       quickpanel_setting_module_icon_view_update_text(module);\r
+}\r
+\r
+QP_Module_Setting softkey = {\r
+       .name                           = "softkey",\r
+       .setting_pkgname        = "org.tizen.setting-display",\r
+       .init                           = _init,\r
+       .fini                           = _fini,\r
+       .lang_changed           = _lang_changed,\r
+       .refresh                        = _refresh,\r
+       .icon_get                       = _icon_get,\r
+       .label_get                      = _label_get,\r
+       .view_update        = _view_update,\r
+       .status_update          = _status_update,\r
+       .handler_longpress              = _long_press_cb,\r
+       .handler_press          = _mouse_clicked_cb,\r
+};\r
index da158d4db7a9edc70df18af8a285e1315c7ec6bf..9bfb2c93de2b4fa5648ee9f39bcbdacb3c7da067 100755 (executable)
@@ -33,8 +33,8 @@
 
 #define E_DATA_POPUP_MODULE_ITEM "mobule_item"
 #define BUTTON_LABEL _("IDS_ST_BUTTON2_WI_FI_ABB")
-#define BUTTON_ICON_NORMAL "quick_icon_wifi.png"
-#define BUTTON_ICON_HIGHLIGHT NULL
+#define BUTTON_ICON_NORMAL "quick_icon_wifi_disabled.png"
+#define BUTTON_ICON_HIGHLIGHT "quick_icon_wifi_active.png"
 #define BUTTON_ICON_DIM NULL
 
 static int _wifi_on(void *data, const char *popup_txt);
index 6e69f7feef39988f7a1ab3c0f7fe483b60843cec..dcc1902ffe4f66d5c0b4ddf68613e02e8929e7d2 100755 (executable)
@@ -52,7 +52,8 @@ extern QP_Module_Setting wifi;
 extern QP_Module_Setting dnd;
 extern QP_Module_Setting bluetooth;
 extern QP_Module_Setting sound;
-extern QP_Module_Setting rotate;
+extern QP_Module_Setting moresettings;
+extern QP_Module_Setting softkey;
 
 QP_Module settings = {
        .name = "settings",
@@ -73,8 +74,9 @@ static struct _info {
                &wifi,
                &dnd,
                &sound,
-               &rotate,
+               &moresettings,
                &bluetooth,
+               &softkey,
                NULL,
        },
 };
index 68bf2e711359ac96171fddcd8587ac86c3ee8cdd..1182a218baf53b92a50b76c84e381a4726db5ec4 100755 (executable)
@@ -30,5 +30,7 @@
         <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
         <privilege>http://tizen.org/privilege/led</privilege>
         <privilege>http://tizen.org/privilege/notification</privilege>
+        <privilege>http://tizen.org/privilege/volume.set</privilege>
+        <privilege>http://tizen.org/privilege/volume.get</privilege>
     </privileges>
 </manifest>