2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.1 (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://floralicense.org/license/
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.
17 #ifndef PAGE_SCROLLER_H_
18 #define PAGE_SCROLLER_H_
26 * @brief Creates new elm_scroller widget and sets standart parameters used in
27 * homescreen application.
28 * @param page_width page width.
29 * @param page_height page height.
31 * @return Pointer to created elm_scroller widget/
33 extern Evas_Object *page_scroller_create(int page_width, int page_height);
36 * @brief Removes all data connected with the page scroller object.
38 * @param page_scroller Page scroller pointer.
40 extern void page_scroller_destroy(Evas_Object *page_scroller);
43 * @brief Add new page to the page scroller
45 * @param page_scroller Page scroller Evas_Object pointer.
46 * @param page Page Evas_Object pointer.
48 * @return true if no errors.
50 extern bool page_scroller_add_page(Evas_Object *page_scroller,
54 * @brief Removes the page from the page scroller.
55 * @param page_scroller Page scroller object pointer.
56 * @param page Page which will be removed.
58 extern void page_scroller_remove_page(Evas_Object *page_scroller,
62 * @brief Gets the page from the given page scroller.
63 * @param page_scroller Pointer to elm_scroller widget.
64 * @param n page number.
66 * @return Page Evas_Object pointer.
68 extern Evas_Object *page_scroller_get_page(Evas_Object *page_scroller, int n);
71 * @brief Gets all pages inserted in the page scroller list.
72 * @param page_scroller Pointer to page scroller Evas_Object
73 * @return List of all pages.
75 extern Eina_List *page_scroller_get_all_pages(Evas_Object *page_scroller);
78 * @brief Blocks page scroller movement.
80 * @param page_scroller Pointer to page scroller widget.
81 * @return true if no errors.
83 extern bool page_scroller_freeze(Evas_Object *page_scroller);
86 * @brief Unblocks page scroller movement.
88 * @param page_scroller Pointer to page scroller Evas_Object.
89 * @return true if no errors.
91 extern bool page_scroller_unfreeze(Evas_Object *page_scroller);
94 * @brief Returns elm_scroller pointer from page scroller layout.
96 * @param page_scroller Page scroller Evas_Object pointer.
97 * @return elm_scroller pointer or NULL if errors occurred.
99 extern Evas_Object *page_scroller_get_scroller(Evas_Object *page_scroller);
102 * @brief Unpack all pages from the page scroller widget.
103 * @param page_scroller Page scroller Evas_Object.
104 * @return List of all pages (Evas_Objects)
106 extern Eina_List *page_scroller_unpack_pages(Evas_Object *page_scroller);
109 * @brief Pack all pages into the page scroller widget.
111 * @param page_scroller Pointer to page scroller widget.
112 * @param page_list List of pages to pack.
114 extern void page_scroller_pack_pages(Evas_Object *page_scroller,
115 Eina_List *page_list);
118 * @brief Gets page thumbnail (proxy object)
120 * @param page Pointer to page scroller page.
121 * @param int width of miniature
122 * @param int height of miniature
123 * @return Page copy (miniature) or NULL if errors occurred.
125 extern Evas_Object *page_scroller_get_page_thumbnail(Evas_Object *page,
126 unsigned int w, unsigned int h);
129 * @brief Gets the elm_box pointer from the Page_Scroller Evas_Object.
131 * @param page_scroller Pointer to Page Scroller Evas_Object
132 * @return elm_box pointer placed in the Page scroller widget.
134 extern Evas_Object *page_scroller_obtain_box(Evas_Object *page_scroller);
137 * @brief Get total number of pages
138 * @param page_scroller Elm_scroller pointer
139 * @return pages count if ok, -1 if error
142 extern int page_scroller_get_page_count(Evas_Object *page_scroller);
144 * @brief Get current page
145 * @return current page number or -1 if something went wrong
147 extern int page_scroller_get_current_page(Evas_Object *page_scroller);
150 * @brief Set current page of the scroller
151 * @param page_scroller Pointer to elm_scroller
152 * @param idx index of page
153 * @return true if success
155 extern bool page_scroller_set_current_page(Evas_Object *page_scroller, int idx);
158 * @brief Shows page without animation
160 * @param page_scroller elm_scroller_pointer
161 * @param idx page index
163 void page_scroller_show_page(Evas_Object *page_scroller, int idx);
164 #endif /* PAGE_SCROLLER_H_ */