2 * Copyright (c) 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.
18 #include "gl-ui-util.h"
20 #include "gl-controlbar.h"
21 #include "gl-albums.h"
22 #include "gl-thumbs.h"
25 #include "gl-strings.h"
27 #include "gl-notify.h"
28 #include "gl-progressbar.h"
29 #include "gl-ctxpopup.h"
31 #define GL_CTRL_STYLE_TABBAR "tabbar"
32 #define GL_CTRL_STYLE_TABBAR_LAND "tabbar/item_horizontal"
34 #define GL_CTRL_SEG_STYLE "gallery/default"
36 #define GL_SEGMENT_WIDTH_MIN_INC (396*elm_config_scale_get())
38 static int __gl_ctrl_reset_btn(void *data, int grid_mode)
40 GL_CHECK_VAL(data, -1);
41 gl_appdata *ad = (gl_appdata *)data;
44 gl_dbg("changed between tool tab(all/image/video)");
45 if (grid_mode == GL_THUMB_VIDEOS)
46 is_zero = _gl_data_is_item_cnt_zero(ad, MEDIA_CONTENT_TYPE_VIDEO);
47 else if (grid_mode == GL_THUMB_IMAGES)
48 is_zero = _gl_data_is_item_cnt_zero(ad, MEDIA_CONTENT_TYPE_IMAGE);
50 /* none items, disable 'edit' button */
52 _gl_ui_disable_btn(ad->gridinfo.edit_btn);
53 _gl_ui_disable_slideshow(ad, true);
55 _gl_ui_enable_btn(ad->gridinfo.edit_btn);
56 _gl_ui_disable_slideshow(ad, false);
61 void _gl_ctrl_segment_change_cb(void *data, Evas_Object *obj, void *event_info)
64 gl_appdata *ad = (gl_appdata *)data;
67 if (ad->uginfo.ug_called_by_me || ad->gridinfo.grid_append_idler) {
68 gl_dbgW("UG invoked or appending gridview!");
72 const char *label = NULL;
73 label = elm_object_item_text_get((Elm_Object_Item *)event_info);
75 gl_dbg("label: %s", label);
76 _gl_ctxpopup_del(data);
78 int old_m = ad->gridinfo.view_mode;
80 if (!g_strcmp0(label, GL_STR_ALL)) {
81 gl_dbg("Creating all-media view");
82 ad->gridinfo.view_mode = GL_THUMB_ALL;
83 } else if (!g_strcmp0(label, GL_STR_IMAGES)) {
84 gl_dbg("Creating image view");
85 ad->gridinfo.view_mode = GL_THUMB_IMAGES;
86 } else if (!g_strcmp0(label, GL_STR_VIDEOS)) {
87 gl_dbg("Creating video view");
88 ad->gridinfo.view_mode = GL_THUMB_VIDEOS;
90 gl_dbgE("Wrong label!");
94 if (ad->gridinfo.view_mode == old_m) {
95 gl_dbgW("Already showed!");
99 if (ad->gridinfo.all_grid_view == NULL)
100 ad->gridinfo.all_grid_view = _gl_thumbs_add_grid(ad,
101 ad->gridinfo.navi_content_ly,
102 ad->gridinfo.view_mode,
105 _gl_thumbs_update_view(ad);
107 elm_object_part_content_unset(ad->gridinfo.navi_content_ly,
109 evas_object_show(ad->gridinfo.all_grid_view);
110 elm_object_part_content_set(ad->gridinfo.navi_content_ly,
112 ad->gridinfo.all_grid_view);
114 __gl_ctrl_reset_btn(ad, ad->gridinfo.view_mode);
115 gl_set_view_mode(ad, GL_VIEW_THUMBS);
118 /* Pop naviframe item when show albums/tags edit view */
119 static int _gl_ctrl_popup_edit_view(void *data)
121 GL_CHECK_VAL(data, -1);
122 gl_appdata *ad = (gl_appdata *)data;
123 GL_CHECK_VAL(ad->ctrlinfo.nf_it, -1);
125 elm_naviframe_item_pop_to(ad->ctrlinfo.nf_it);
126 ad->ctrlinfo.nf_it_edit = NULL;
130 static int __gl_ctrl_reset_albums(void *data)
132 GL_CHECK_VAL(data, -1);
133 gl_appdata *ad = (gl_appdata *)data;
134 int view_mode = gl_get_view_mode(ad);
136 if (view_mode == GL_VIEW_ALBUMS_EDIT) {
138 _gl_data_finalize_albums_selected_list(ad);
139 /* Refresh albums list */
140 _gl_data_get_cluster_list(ad);
146 static int __gl_ctrl_reset_tags(void *data)
148 GL_CHECK_VAL(data, -1);
149 gl_appdata *ad = (gl_appdata *)data;
150 int view_mode = gl_get_view_mode(ad);
153 if (view_mode == GL_VIEW_TAGS_EDIT)
154 _gl_data_finalize_tags_selected_list(ad);
156 if (ad->taginfo.tags_view)
157 gl_tag_unset_rename(ad);
158 ad->taginfo.current_tag = NULL;
163 static int __gl_ctrl_reset_previous_tab(void *data)
165 GL_CHECK_VAL(data, -1);
166 gl_appdata *ad = (gl_appdata *)data;
168 switch (ad->ctrlinfo.tab_mode) {
169 case GL_CTRL_TAB_ALBUMS:
170 __gl_ctrl_reset_albums(ad);
172 case GL_CTRL_TAB_TAGS:
173 __gl_ctrl_reset_tags(ad);
176 gl_dbgE("Wrong tabbar mode!");
180 /* Delete layout and edit view */
181 _gl_destroy_ctrl_edit_view(ad);
182 /* Delete naviframe item */
183 _gl_ctrl_popup_edit_view(ad);
185 /* Hide previous view */
186 Evas_Object *pre_view = NULL;
187 pre_view = elm_object_part_content_unset(ad->ctrlinfo.ctrlbar_view_ly,
189 evas_object_hide(pre_view);
194 static int __gl_ctrl_remake_btns(void *data, gl_ctrl_tab_mode mode)
196 GL_CHECK_VAL(data, -1);
197 gl_appdata *ad = (gl_appdata *)data;
199 /* Reset some flags */
200 ad->albuminfo.b_edit_disable = false;
201 ad->taginfo.b_edit_disable = false;
204 case GL_CTRL_TAB_ALBUMS:
205 gl_dbg("GL_CTRL_TAB_ALBUMS");
207 _gl_ui_add_btns_albums(ad, GL_UI_ALBUMS_REMAKE);
209 case GL_CTRL_TAB_TAGS:
210 gl_dbg("GL_CTRL_TAB_TAGS");
211 _gl_tags_add_btns(ad);
214 gl_dbgE("Error mode!");
222 static void _gl_ctrl_view_change_cb(void *data, Evas_Object *obj, void *event_info)
226 gl_appdata *ad = (gl_appdata *)data;
227 int view_mode = gl_get_view_mode(ad);
228 gl_dbg("view_mode: %d, tab_mode: %d", view_mode, ad->ctrlinfo.tab_mode);
229 Elm_Object_Item *it = elm_toolbar_selected_item_get(obj);
231 const char *selected_label = elm_object_item_text_get(it);
232 GL_CHECK(selected_label);
233 gl_dbg("Tab %s selected.", selected_label);
234 _gl_ctxpopup_del(data);
236 if (!g_strcmp0(selected_label, GL_STR_CTRL_ITEM_ALBUMS)) {
238 if (ad->ctrlinfo.tab_mode == GL_CTRL_TAB_ALBUMS) {
239 gl_dbg("Already in Albums Tab.");
242 __gl_ctrl_reset_previous_tab(ad);
243 gl_set_view_mode(ad, GL_VIEW_ALBUMS);
245 _gl_data_get_cluster_list(ad);
246 gl_albums_update_items(ad);
248 if (ad->albuminfo.albums_nocontents) {
249 gl_ctrl_disable_ctrlbar(ad, true);
251 evas_object_show(ad->albuminfo.albums_view);
252 elm_object_part_content_set(ad->ctrlinfo.ctrlbar_view_ly,
254 ad->albuminfo.albums_view);
257 ad->ctrlinfo.tab_mode = GL_CTRL_TAB_ALBUMS;
259 __gl_ctrl_remake_btns(ad, GL_CTRL_TAB_ALBUMS);
260 } else if (!g_strcmp0(selected_label, GL_STR_CTRL_ITEM_TAGS)) {
262 if (ad->ctrlinfo.tab_mode == GL_CTRL_TAB_TAGS) {
263 gl_dbg("Already in Tags Tab.");
267 __gl_ctrl_reset_previous_tab(ad);
268 gl_set_view_mode(ad, GL_VIEW_TAGS);
270 if (ad->taginfo.tags_view)
271 gl_tag_update_view(ad);
273 ad->taginfo.tags_view = gl_tag_create_view(ad,
274 ad->ctrlinfo.ctrlbar_view_ly);
275 evas_object_show(ad->taginfo.tags_view);
276 elm_object_part_content_set(ad->ctrlinfo.ctrlbar_view_ly,
277 "contents", ad->taginfo.tags_view);
279 ad->taginfo.current_tag = NULL;
280 ad->ctrlinfo.tab_mode = GL_CTRL_TAB_TAGS;
282 __gl_ctrl_remake_btns(ad, GL_CTRL_TAB_TAGS);
286 static int __gl_ctrl_disable_btn(void *data, int mode)
288 GL_CHECK_VAL(data, -1);
289 gl_appdata *ad = (gl_appdata *)data;
291 if (mode == GL_NAVI_ALBUMS) {
292 gl_dbg("GL_NAVI_ALBUMS");
293 /* disable 'edit' button */
294 ad->albuminfo.b_edit_disable = true;
295 } else if (mode == GL_NAVI_TAGS) {
296 gl_dbg("GL_NAVI_TAGS");
297 /* disable 'edit' button */
298 ad->taginfo.b_edit_disable = true;
299 }else if (mode == GL_NAVI_THUMBS) {
300 gl_dbg("GL_NAVI_THUMBS");
301 /* disable 'edit' button */
302 _gl_ui_disable_btn(ad->gridinfo.edit_btn);
303 _gl_ui_disable_btn(ad->gridinfo.slideshow_btn);
304 /* Check title button */
305 if (ad->ctrlinfo.tab_mode == GL_CTRL_TAB_TAGS)
306 _gl_ui_show_add_btn(ad);
308 gl_dbgE("Unkonw mode");
314 static int __gl_ctrl_enable_btn(void *data, int mode)
316 GL_CHECK_VAL(data, -1);
317 gl_appdata *ad = (gl_appdata *)data;
318 gl_dbg("mode: %d", mode);
320 if (mode == GL_NAVI_ALBUMS) {
321 gl_dbg("GL_NAVI_ALBUMS");
322 /* enable 'edit' item */
323 if (!gl_check_gallery_empty(ad) &&
324 ad->albuminfo.cluster_list->edit_cnt) {
325 ad->albuminfo.b_edit_disable = false;
327 ad->albuminfo.b_edit_disable = true;
329 } else if (mode == GL_NAVI_THUMBS) {
330 gl_dbg("GL_NAVI_THUMBS");
331 /* enable 'Edit' button */
332 _gl_ui_enable_btn(ad->gridinfo.edit_btn);
333 /* Check more button */
334 if (ad->ctrlinfo.tab_mode == GL_CTRL_TAB_TAGS) {
335 Evas_Object *more_btn = NULL;
336 more_btn = _gl_ui_get_btn(ad, NULL, GL_NAVIFRAME_MORE);
337 if (ad->maininfo.medias_cnt)
338 _gl_ui_enable_btn(more_btn);
340 _gl_ui_disable_btn(more_btn);
341 /* Check "+" button */
342 _gl_ui_show_add_btn(ad);
345 if (ad->maininfo.medias_cnt)
346 _gl_ui_disable_slideshow(ad, false);
348 _gl_ui_disable_slideshow(ad, true);
349 } else if (mode == GL_NAVI_TAGS) {
350 gl_dbg("GL_NAVI_TAGS");
351 /* enable 'edit' button not only favorites tag */
352 if (_gl_data_get_tag_count_all(ad) > 1)
353 ad->taginfo.b_edit_disable = false;
355 ad->taginfo.b_edit_disable = true;
357 gl_dbgE("Unkonw mode");
364 /* Enable all buttons except for some special cases */
365 static int __gl_ctrl_enable_btns(gl_appdata *ad, Elm_Object_Item *nf_it)
368 GL_CHECK_VAL(ad, -1);
369 GL_CHECK_VAL(nf_it, -1);
370 bool b_disable_del = false;
371 bool b_disable_share = false;
373 int view_mode = gl_get_view_mode(ad);
374 if (view_mode == GL_VIEW_ALBUMS_EDIT) {
375 GL_CHECK_VAL(ad->albuminfo.selected_albums_elist, -1);
377 sel_cnt = _gl_data_get_albums_selected_cnt(ad);
379 gl_cluster *album_item = NULL;
381 for (i = 0; i < sel_cnt; i++) {
382 if (b_disable_del && b_disable_share)
384 album_item = eina_list_nth(ad->albuminfo.selected_albums_elist,
386 if (album_item == NULL || album_item->cluster == NULL ||
387 album_item->cluster->uuid == NULL) {
388 gl_dbgE("Invlaid album item!");
391 /* All albums couldn't be deleted, so disable Delete item */
392 if (album_item->cluster->type == GL_STORE_T_ALL) {
393 gl_dbg("All albums, disable Delete item.");
394 b_disable_del = true;
397 b_disable_share = true;
402 int share_m = gl_get_share_mode(ad);
403 if ((view_mode == GL_VIEW_THUMBS_EDIT ||
404 view_mode == GL_VIEW_ALBUMS_EDIT ||
405 view_mode == GL_VIEW_TAGS_EDIT) && share_m == GL_SHARE_DRM) {
406 gl_dbgW("Selected item is DRM file!");
407 b_disable_share = true;
410 /* more-share-delete */
411 _gl_ui_disable_each_btn(nf_it, false, b_disable_share, b_disable_del);
416 gl_ctrl_create_ctrlbar_view(Evas_Object * parent)
419 GL_CHECK_NULL(parent);
421 Evas_Object *layout = NULL;
422 layout = gl_ui_load_edj(parent, GL_EDJ_FILE, GL_GRP_CONTROLBAR);
423 GL_CHECK_NULL(layout);
424 evas_object_show(layout);
429 Evas_Object *gl_ctrl_create_ctrlbar_ly(Evas_Object *parent)
432 gl_dbg_launch(" gl_ctrl_create_ctrlbar_ly:start");
433 GL_CHECK_NULL(parent);
434 Evas_Object *layout = NULL;
435 layout = gl_ui_load_edj(parent, GL_EDJ_FILE, GL_GRP_CONTROLBAR_LY);
436 GL_CHECK_NULL(layout);
437 evas_object_show(layout);
439 gl_dbg_launch(" gl_ctrl_create_ctrlbar_ly:end");
444 Evas_Object *gl_ctrl_create_ctrlbar(void *data, int mode)
446 gl_dbg_launch(" gl_ctrl_create_ctrlbar:start");
447 gl_dbg("mode: %d", mode);
449 gl_appdata *ad = (gl_appdata *)data;
450 Evas_Object *cbar = NULL;
451 Elm_Object_Item *item[GL_CTRL_TAB_CNT];
453 if (ad->ctrlinfo.ctrlbar != NULL) {
454 gl_dbg("Remove the existed control bar");
455 evas_object_del(ad->ctrlinfo.ctrlbar);
456 ad->ctrlinfo.ctrlbar = NULL;
459 gl_dbg_launch(" elm_toolbar_add:start");
460 cbar = elm_toolbar_add(ad->ctrlinfo.ctrlbar_ly);
461 gl_dbg_launch(" elm_toolbar_add:end");
463 gl_dbg("elm_toolbar_add:done");
464 elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
465 elm_toolbar_transverse_expanded_set(cbar, EINA_TRUE);
467 if (mode != GL_CTRL_TAB_ALBUMS) {
468 ad->ctrlinfo.tab_mode = -1;
469 gl_dbgW("Set tab_mode as -1!");
472 if (mode == GL_CTRL_TAB_ALBUMS || mode == GL_CTRL_TAB_TAGS) {
473 int rotate_mode = ad->maininfo.rotate_mode;
474 ad->ctrlinfo.rotate_mode = rotate_mode;
475 gl_dbg("Rotate_mode is %d", rotate_mode);
476 if ((rotate_mode == APP_DEVICE_ORIENTATION_270) ||
477 (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
478 elm_object_style_set(cbar, GL_CTRL_STYLE_TABBAR_LAND);
480 elm_object_style_set(cbar, GL_CTRL_STYLE_TABBAR);
483 gl_dbg_launch(" elm_toolbar_item_append:start");
484 item[GL_CTRL_TAB_ALBUMS] = elm_toolbar_item_append(cbar,
486 GL_STR_CTRL_ITEM_ALBUMS,
487 _gl_ctrl_view_change_cb,
489 item[GL_CTRL_TAB_TAGS] = elm_toolbar_item_append(cbar,
491 GL_STR_CTRL_ITEM_TAGS,
492 _gl_ctrl_view_change_cb,
494 gl_dbg_launch(" elm_toolbar_item_append:end");
495 gl_dbg("elm_toolbar_item_append:done");
496 elm_toolbar_select_mode_set(cbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
498 if (ad->albuminfo.gallery_launched == true) {
499 if (gl_check_gallery_empty(ad)) {
501 * disable control bar when none album exists.
502 * or file system is unmounted.
504 gl_dbg("Disable tabbar items");
506 for (i = 0; i < GL_CTRL_TAB_CNT; i++)
507 elm_object_item_disabled_set(item[i],
511 elm_toolbar_item_selected_set(item[mode], EINA_TRUE);
514 gl_dbg_launch(" gl_ctrl_create_ctrlbar:end");
519 //disable/enable controlbar tab event.
521 gl_ctrl_disable_tab_event(void *data, bool disabled)
523 GL_CHECK_VAL(data, -1);
524 gl_appdata *ad = (gl_appdata *)data;
525 GL_CHECK_VAL(ad->ctrlinfo.ctrlbar, -1);
526 gl_dbgE("TODO: Check me");
528 if (gl_get_view_mode(ad) == GL_VIEW_ALBUMS)
532 evas_object_smart_callback_del(ad->ctrlinfo.ctrlbar,
533 "view,change,before",
534 _gl_ctrl_view_change_cb);
538 evas_object_smart_callback_add(ad->ctrlinfo.ctrlbar,
539 "view,change,before",
540 _gl_ctrl_view_change_cb, ad);
547 /* Select new tab, view changed callback would be invoked */
548 int _gl_ctrl_sel_tabbar_item(void *data, const char *aul_type)
550 GL_CHECK_VAL(data, -1);
551 GL_CHECK_VAL(aul_type, -1);
552 gl_appdata *ad = (gl_appdata *)data;
553 Elm_Object_Item *cbar_it = NULL;
554 cbar_it = elm_toolbar_first_item_get(ad->ctrlinfo.ctrlbar);
555 const char *text = NULL;
556 int len = strlen(aul_type);
557 bool b_found = false;
558 const char *tab_i18n_text = NULL;
559 gl_dbg("AUL type: %s", aul_type);
561 if (strncasecmp(aul_type, GL_AUL_ALBUM, len) == 0)
562 tab_i18n_text = GL_STR_CTRL_ITEM_ALBUMS;
563 else if (strncasecmp(aul_type, GL_AUL_TAG, len) == 0)
564 tab_i18n_text = GL_STR_CTRL_ITEM_TAGS;
566 gl_dbgE("Wrong type!");
567 GL_CHECK_VAL(tab_i18n_text, -1);
569 /* Get item to be selected */
571 text = elm_object_item_text_get(cbar_it);
572 if (!strncasecmp(text, tab_i18n_text, len)) {
577 cbar_it = elm_toolbar_item_next_get(cbar_it);
580 if (b_found && cbar_it) {
581 elm_toolbar_item_selected_set(cbar_it, EINA_TRUE);
584 gl_dbgE("Failed to get tabbar item!");
589 int _gl_ctrl_show_tabbar(void *data, bool b_show)
591 GL_CHECK_VAL(data, -1);
592 gl_appdata *ad = (gl_appdata *)data;
593 GL_CHECK_VAL(ad->ctrlinfo.ctrlbar_ly, -1);
594 GL_CHECK_VAL(ad->ctrlinfo.ctrlbar_view_ly, -1);
595 int rotate_mode = ad->maininfo.rotate_mode;
596 gl_dbg("Tabbar show: %d, rotate_mode: %d", b_show, rotate_mode);
597 Evas_Object *view_ly = ad->ctrlinfo.ctrlbar_view_ly;
599 if (gl_get_view_mode(ad) == GL_VIEW_ALBUMS_RENAME ||
600 gl_get_view_mode(ad) == GL_VIEW_ALBUMS_EDIT) {
601 gl_dbg("Rename album, set edit layout");
602 view_ly = ad->ctrlinfo.ctrlbar_edit_ly;
606 if ((rotate_mode == APP_DEVICE_ORIENTATION_270) ||
607 (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
608 edje_object_signal_emit(_EDJ(view_ly),
609 GL_SIGNAL_VIEW_TABBAR_BG_HIDE,
611 edje_object_signal_emit(_EDJ(ad->ctrlinfo.ctrlbar_ly),
612 GL_SIGNAL_VIEW_TABBAR_LAND,
615 edje_object_signal_emit(_EDJ(view_ly),
616 GL_SIGNAL_VIEW_TABBAR_BG_HIDE,
618 edje_object_signal_emit(_EDJ(ad->ctrlinfo.ctrlbar_ly),
619 GL_SIGNAL_VIEW_TABBAR_DEFAULT,
623 if ((rotate_mode == APP_DEVICE_ORIENTATION_270) ||
624 (rotate_mode == APP_DEVICE_ORIENTATION_90)) {
625 edje_object_signal_emit(_EDJ(view_ly),
626 GL_SIGNAL_VIEW_TABBAR_BG_SHOW_LAND,
628 edje_object_signal_emit(_EDJ(ad->ctrlinfo.ctrlbar_ly),
629 "elm,tabbar,state,hide", "elm");
631 edje_object_signal_emit(_EDJ(view_ly),
632 GL_SIGNAL_VIEW_TABBAR_BG_SHOW_PORT,
634 edje_object_signal_emit(_EDJ(ad->ctrlinfo.ctrlbar_ly),
635 "elm,tabbar,state,hide", "elm");
641 bool gl_ctrl_rotate_ctrlbar(void *data, int mode)
643 GL_CHECK_FALSE(data);
644 gl_appdata *ad = (gl_appdata *)data;
647 /* Rotate top tabbar */
651 view_mode = gl_get_view_mode(ad);
652 gl_dbg("view mode: %d.", view_mode);
654 bool b_show_tabbar = true;
656 if (view_mode == GL_VIEW_ALBUMS || view_mode == GL_VIEW_ALBUMS_EDIT ||
657 view_mode == GL_VIEW_TAGS || view_mode == GL_VIEW_TAGS_EDIT) {
658 int rotate_mode = ad->maininfo.rotate_mode;
659 if (view_mode == GL_VIEW_TAGS &&
660 (ad->entryinfo.entry_mode == GL_ENTRY_NEW_TAG ||
661 ad->entryinfo.entry_mode == GL_ENTRY_RENAME_TAG)) {
662 /* New tag view, return */
663 gl_dbg("Add an empty tag.");
666 char *cbar_style = GL_CTRL_STYLE_TABBAR;
667 if (rotate_mode == APP_DEVICE_ORIENTATION_270 ||
668 rotate_mode == APP_DEVICE_ORIENTATION_90) {
669 gl_dbg("Landscape, small mode.");
670 /* set horizontal style: icon+text */
671 cbar_style = GL_CTRL_STYLE_TABBAR_LAND;
673 elm_object_style_set(ad->ctrlinfo.ctrlbar, cbar_style);
676 _gl_ctrl_show_tabbar(ad, b_show_tabbar);
682 //disable/enable controlbar items.
683 int gl_ctrl_disable_ctrlbar(void *data, bool disabled)
685 GL_CHECK_VAL(data, -1);
686 gl_appdata *ad = (gl_appdata *)data;
687 GL_CHECK_VAL(ad->ctrlinfo.ctrlbar, -1);
688 gl_dbg("Controlbar items disabled: %d.", disabled);
691 elm_toolbar_select_mode_set(ad->ctrlinfo.ctrlbar,
692 ELM_OBJECT_SELECT_MODE_NONE);
694 elm_toolbar_select_mode_set(ad->ctrlinfo.ctrlbar,
695 ELM_OBJECT_SELECT_MODE_ALWAYS);
699 int _gl_ctrl_disable_btn(void *data, bool disabled, int mode)
701 GL_CHECK_VAL(data, -1);
702 gl_dbg("Title button disabled: %d.", disabled);
704 __gl_ctrl_disable_btn(data, mode);
706 __gl_ctrl_enable_btn(data, mode);
711 int _gl_ctrl_disable_btns(void *data, Elm_Object_Item *nf_it, bool b_disable)
713 gl_dbg("b_disable: %d", b_disable);
714 GL_CHECK_VAL(data, -1);
715 GL_CHECK_VAL(nf_it, -1);
718 __gl_ctrl_enable_btns(data, nf_it);
720 _gl_ui_disable_btns(nf_it, true);