tizen 2.4 release
[apps/home/attach-panel.git] / src / page.c
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #include <Elementary.h>
18
19 #include "attach_panel.h"
20 #include "attach_panel_internal.h"
21 #include "conf.h"
22 #include "log.h"
23 #include "page.h"
24
25
26
27 static const char *const PAGE_EDJE_FILE = EDJEDIR"/page.edj";
28
29
30
31 Evas_Object *_page_create(attach_panel_h attach_panel, int width, int height)
32 {
33         Evas_Object *page = NULL;
34         Evas_Object *page_bg = NULL;
35         Evas *e = NULL;
36
37         page = elm_layout_add(attach_panel->scroller);
38         retv_if(!page, NULL);
39         elm_layout_file_set(page, PAGE_EDJE_FILE, "page");
40
41         evas_object_size_hint_weight_set(page, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
42         evas_object_size_hint_align_set(page, EVAS_HINT_FILL, EVAS_HINT_FILL);
43
44         e = evas_object_evas_get(attach_panel->scroller);
45         goto_if(!e, ERROR);
46
47         page_bg = evas_object_rectangle_add(e);
48         goto_if(!page_bg, ERROR);
49         evas_object_size_hint_weight_set(page_bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
50         evas_object_size_hint_align_set(page_bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
51         evas_object_size_hint_min_set(page_bg, width, height);
52         evas_object_color_set(page_bg, 0, 0, 0, 0);
53         evas_object_repeat_events_set(page_bg, EINA_TRUE);
54         evas_object_show(page_bg);
55         elm_object_part_content_set(page, "bg", page_bg);
56
57         evas_object_show(page);
58         return page;
59
60 ERROR:
61         _page_destroy(page);
62         return NULL;
63 }
64
65
66
67 void _page_destroy(Evas_Object *page)
68 {
69         Evas_Object *bg = NULL;
70
71         ret_if(!page);
72
73         bg = elm_object_part_content_unset(page, "bg");
74         if (bg) {
75                 evas_object_del(bg);
76         }
77
78         evas_object_del(page);
79 }
80
81
82
83 void _page_resize(Evas_Object *page, int width, int height)
84 {
85         Evas_Object *bg = NULL;
86
87         ret_if(!page);
88
89         bg = elm_object_part_content_get(page, "bg");
90         ret_if(!bg);
91
92         evas_object_size_hint_min_set(bg, width, height);
93         evas_object_size_hint_max_set(bg, width, height);
94 }