2 * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <Elementary.h>
21 #include <tzsh_quickpanel_service.h>
24 #include "quickpanel-ui.h"
29 #define EVAS_DATA_PAGE_HANDLER "page_handler"
31 static inline void _scroll_hold(Evas_Object *viewer)
34 retif(viewer == NULL, , "Invalid parameter!");
36 hold_count = elm_object_scroll_hold_get(viewer);
38 if (hold_count <= 0) {
39 elm_object_scroll_hold_push(viewer);
43 static inline void _scroll_unhold(Evas_Object *viewer)
45 int i = 0, hold_count = 0;
46 retif(viewer == NULL, , "Invalid parameter!");
48 hold_count = elm_object_scroll_hold_get(viewer);
50 for (i = 0 ; i < hold_count; i++) {
51 elm_object_scroll_hold_pop(viewer);
55 static inline void _scroll_freeze(Evas_Object *viewer)
57 int freezed_count = 0;
58 retif(viewer == NULL, , "Invalid parameter!");
60 freezed_count = elm_object_scroll_freeze_get(viewer);
62 if (freezed_count <= 0) {
63 elm_object_scroll_freeze_push(viewer);
67 static inline void _scroll_unfreeze(Evas_Object *viewer)
69 int i = 0, freezed_count = 0;
70 retif(viewer == NULL, , "Invalid parameter!");
72 freezed_count = elm_object_scroll_freeze_get(viewer);
74 for (i = 0 ; i < freezed_count; i++) {
75 elm_object_scroll_freeze_pop(viewer);
79 HAPI void quickpanel_page_handler_set(Evas_Object *page, QP_Page_Handler *handler)
81 retif(page == NULL, , "invalid parameter");
83 evas_object_data_set(page, EVAS_DATA_PAGE_HANDLER, handler);
86 HAPI QP_Page_Handler *quickpanel_page_handler_get(Evas_Object *page)
88 retif(page == NULL, NULL, "invalid parameter");
90 return evas_object_data_get(page, EVAS_DATA_PAGE_HANDLER);
93 HAPI void quickpanel_page_scroll_freeze_set(Eina_Bool is_freeze)
95 Evas_Object *pager_scroller = quickpanel_pager_view_get("SCROLLER");
96 retif(pager_scroller == NULL, , "pager null");
99 _scroll_freeze(pager_scroller);
101 _scroll_unfreeze(pager_scroller);
105 HAPI void quickpanel_page_scroll_hold_set(Eina_Bool is_freeze)
107 Evas_Object *pager_scroller = quickpanel_pager_view_get("SCROLLER");
108 retif(pager_scroller == NULL, , "pager null");
111 _scroll_hold(pager_scroller);
113 _scroll_unhold(pager_scroller);
117 HAPI void quickpanel_page_get_recoordinated_pos(int local_x, int local_y, int *x, int *y)
123 retif(x == NULL && y == NULL, , "invalid parameter");
125 struct appdata *ad = quickpanel_get_app_data();
126 retif(ad == NULL, , "invalid parameter");
128 elm_win_screen_size_get(ad->win, NULL, NULL, &width, &height);
136 rot_x = height - local_y;
140 rot_x = width - local_x;
141 rot_y = height - local_y;
145 rot_y = width - local_x;
160 HAPI void quickpanel_page_get_touched_pos(int *x, int *y)
166 retif(x == NULL && y == NULL, , "invalid parameter");
168 struct appdata *ad = quickpanel_get_app_data();
169 retif(ad == NULL, , "invalid parameter");
171 #if defined(WINSYS_X11)
172 ecore_x_pointer_last_xy_get(&local_x, &local_y);
175 quickpanel_page_get_recoordinated_pos(local_x, local_y, &rot_x, &rot_y);
186 HAPI void quickpanel_page_editing_icon_visible_status_update(void)
191 ad = quickpanel_get_app_data();
192 retif(ad == NULL, , "invalid parameter");
194 if (quickpanel_pager_current_page_get() == PAGE_IDX_EDITING) {
200 quickpanel_datetime_editing_icon_visibility_set(is_visible);