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
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")
} \
} 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;\
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,
#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
#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
--- /dev/null
+/*\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
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 =
#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"
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";
- }
}
}
}
}
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;
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";
}
}
- 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;
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";
}
}
}
-
- 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 {
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";
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
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
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;
}
}
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 {
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";
}
}
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;
}
}
}
#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
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 {
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;
}
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;
--- /dev/null
+/*\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
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"
#include <tzsh_quickpanel_service.h>
#include "common.h"
+#include "volume.h"
#include "quickpanel-ui.h"
#include "list_util.h"
#include "quickpanel_def.h"
quickpanel_brightness_transparent_background_set(true);
elm_object_signal_emit(_controller_view_get(), "show", "base");
+ quickpanel_volume_slider_visible_set(EINA_FALSE);
}
}
quickpanel_brightness_transparent_background_set(false);
elm_object_signal_emit(_controller_view_get(), "hide", "base");
+ quickpanel_volume_slider_visible_set(EINA_TRUE);
}
/*!
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) {
--- /dev/null
+/*\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
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
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,
#ifdef QP_BRIGHTNESS_ENABLE
&brightness_ctrl,
#endif /* QP_BRIGHTNESS_ENABLE */
+#ifdef QP_VOLUME_CONTROL_ENABLE
+ &volume_ctrl,
+#endif /* QP_VOLUME_CONTROL_ENABLE */
¬i,
&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)
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)
#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;
#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;
--- /dev/null
+/*
+ * 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,
+};
+++ /dev/null
-/*
- * 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,
-};
--- /dev/null
+/*\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
#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);
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",
&wifi,
&dnd,
&sound,
- &rotate,
+ &moresettings,
&bluetooth,
+ &softkey,
NULL,
},
};
<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>