2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.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.tizenopensource.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.
20 #include "gl-strings.h"
22 #include "gl-rotate-bg.h"
26 #define GL_GRID_ICON_SIZE 156
27 #define GL_PHOTOFRAME_STYLE_VIDEO_FAVOR_BOOKMARK "default_layout_video_favor_bookmark"
28 #define GL_PHOTOFRAME_STYLE_VIDEO_BOOKMARK "default_layout_video_bookmark"
29 #define GL_PHOTOFRAME_STYLE_VIDEO_FAVOR "default_layout_video_favor"
30 #define GL_PHOTOFRAME_STYLE_VIDEO "default_layout_video"
31 #define GL_PHOTOFRAME_STYLE_FAVOR "default_layout_favor"
32 #define GL_PHOTOFRAME_STYLE_DEFAULT "default_layout"
34 Evas_Object *_gl_thumb_show_part_icon_image(Evas_Object *obj, char *path,
36 bool is_expired_drm, int item_size)
40 Evas_Object *layout = elm_layout_add(obj);
41 GL_CHECK_NULL(layout);
44 Evas_Object *bg = _gl_rotate_bg_add(layout);
46 Evas_Object *bg = elm_bg_add(layout);
49 evas_object_del(layout);
54 _gl_rotate_bg_set_file(bg, path, item_size, item_size);
55 _gl_rotate_bg_rotate_image(bg, orient);
57 elm_bg_file_set(bg, path, NULL);
58 elm_bg_load_size_set(bg, item_size, item_size);
59 evas_object_size_hint_max_set(bg, item_size, item_size);
60 evas_object_size_hint_aspect_set(bg, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
61 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
62 evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
65 // TODO: Need to check the expired drm icon file...
66 /* Expired drm icon */
68 elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME,
69 GL_PHOTOFRAME_STYLE_FAVOR);
70 elm_object_part_content_set(layout, "elm.swallow.icon", bg);
72 Evas_Object *icon = elm_icon_add(layout);
73 elm_icon_file_set(icon, GL_LOCK_ICON, NULL);
74 evas_object_show(icon);
75 elm_object_part_content_set(layout, "elm.swallow.favoricon",
78 elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME,
79 GL_PHOTOFRAME_STYLE_DEFAULT);
80 elm_object_part_content_set(layout, "elm.swallow.icon", bg);
83 evas_object_show(layout);
87 Evas_Object *_gl_thumb_show_part_icon_video(Evas_Object *obj, char *path,
88 unsigned int v_dur, int bk_len,
94 Evas_Object *layout = elm_layout_add(obj);
95 GL_CHECK_NULL(layout);
98 Evas_Object *bg = _gl_rotate_bg_add(layout);
100 Evas_Object *bg = elm_bg_add(layout);
103 evas_object_del(layout);
107 #ifdef _USE_ROTATE_BG
108 _gl_rotate_bg_set_file(bg, path, item_size, item_size);
109 _gl_rotate_bg_rotate_image(bg, GL_ORIENTATION_ROT_0);
111 elm_bg_file_set(bg, path, NULL);
112 elm_bg_load_size_set(bg, item_size, item_size);
113 evas_object_size_hint_max_set(bg, item_size, item_size);
114 evas_object_size_hint_aspect_set(bg, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
115 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
116 evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
120 elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME,
121 GL_PHOTOFRAME_STYLE_VIDEO_BOOKMARK);
122 else if (is_expired_drm)
123 elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME,
124 GL_PHOTOFRAME_STYLE_VIDEO_FAVOR);
126 elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME,
127 GL_PHOTOFRAME_STYLE_VIDEO);
128 elm_object_part_content_set(layout, "elm.swallow.icon", bg);
130 // TODO: Need to check the expired drm icon file...
131 /* Expired drm icon */
132 if (is_expired_drm) {
133 Evas_Object *icon = elm_icon_add(layout);
134 elm_icon_file_set(icon, GL_LOCK_ICON, NULL);
135 evas_object_show(icon);
136 elm_object_part_content_set(layout, "elm.swallow.favoricon",
138 /* Set favourites icon */
142 Evas_Object *icon = elm_icon_add(layout);
143 elm_icon_file_set(icon, GL_THUMB_BOOKMARK, NULL);
144 evas_object_show(icon);
145 elm_object_part_content_set(layout, "elm.swallow.bookmarkicon",
149 char *dur_str = _gl_get_duration_string(v_dur);
150 GL_CHECK_NULL(dur_str);
151 elm_object_part_text_set(layout, GL_GRID_TEXT, dur_str);
154 evas_object_show(layout);
158 Evas_Object *_gl_thumb_show_part_checkbox(Evas_Object *obj, bool checked,
159 Evas_Smart_Cb func, const void *data)
163 Evas_Object *ck = NULL;
165 ck = elm_check_add(obj);
167 elm_object_style_set(ck, GL_CHECKBOX_STYLE_GRID);
168 evas_object_propagate_events_set(ck, EINA_FALSE);
170 elm_check_state_set(ck, checked);
172 evas_object_smart_callback_add(ck, "changed", func, data);
174 evas_object_show(ck);
178 Evas_Object *_gl_thumb_add_gengrid(Evas_Object *parent)
180 GL_CHECK_NULL(parent);
181 Evas_Object *grid = elm_gengrid_add(parent);
183 elm_gengrid_align_set(grid, 0.5, 0.0);
184 elm_gengrid_horizontal_set(grid, EINA_FALSE);
185 elm_gengrid_bounce_set(grid, EINA_FALSE, EINA_TRUE);
186 elm_gengrid_multi_select_set(grid, EINA_TRUE);
188 evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND,
194 /* Update all gengrid item, class callback would be called again */
195 int _gl_thumb_update_gengrid(Evas_Object *view)
197 GL_CHECK_VAL(view, -1);
199 Elm_Object_Item *_first_it = NULL;
200 _first_it = elm_gengrid_first_item_get(view);
202 elm_gengrid_item_update(_first_it);
203 _first_it = elm_gengrid_item_next_get(_first_it);
209 int _gl_thumb_set_size(void *data, Evas_Object *view, int count, int *size)
211 GL_CHECK_VAL(view, -1);
212 GL_CHECK_VAL(data, -1);
213 gl_appdata *ad = (gl_appdata *)data;
214 int _size = (int)(GL_GRID_ICON_SIZE * ad->maininfo.win_scale);
215 int _w = (int)(GL_GRID_ITEM_SIZE_W * ad->maininfo.win_scale);
216 int _h = (int)(GL_GRID_ITEM_SIZE_H * ad->maininfo.win_scale);
218 if (count == GL_GRID_ITEM_ZOOM_LEVEL_01_CNT) {
219 _size *= GL_GRID_ITEM_ZOOM_LEVEL_01;
220 _w *= GL_GRID_ITEM_ZOOM_LEVEL_01;
221 _h *= GL_GRID_ITEM_ZOOM_LEVEL_01;
222 } else if (count <= GL_GRID_ITEM_ZOOM_LEVEL_02_CNT) {
223 _size *= GL_GRID_ITEM_ZOOM_LEVEL_02;
224 _w *= GL_GRID_ITEM_ZOOM_LEVEL_02;
225 _h *= GL_GRID_ITEM_ZOOM_LEVEL_02;
228 elm_gengrid_item_size_set(view, _w, _h);
229 gl_dbg("Thumb width: %d, height: %d, size: %d", _w, _h, _size);