diff options
Diffstat (limited to 'src/widget/mf-ug-ctrl-bar.c')
-rw-r--r-- | src/widget/mf-ug-ctrl-bar.c | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/src/widget/mf-ug-ctrl-bar.c b/src/widget/mf-ug-ctrl-bar.c new file mode 100644 index 0000000..6153099 --- /dev/null +++ b/src/widget/mf-ug-ctrl-bar.c @@ -0,0 +1,249 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <Eina.h> +#include <Elementary.h> + +#include "mf-ug-winset.h" +#include "mf-ug-cb.h" +#include "mf-ug-fm-svc-wrapper.h" +#include "mf-ug-util.h" +#include "mf-ug-resource.h" + +#define UG_CTRL_STYLE_TYPE "controlbar" + + +/****************************** +** Prototype : __mf_ug_ctrl_bar_create +** Description : Samsung +** Input : Evas_Object *parent +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2010/12/10 +** Author : Samsung +** Modification : Created function +** +******************************/ +static Evas_Object *__mf_ug_ctrl_bar_create(Evas_Object *parent) +{ + UG_TRACE_BEGIN; + ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL"); + + Evas_Object *pCtrlBar = NULL; + + pCtrlBar = elm_toolbar_add(parent); + elm_toolbar_shrink_mode_set(pCtrlBar, ELM_TOOLBAR_SHRINK_EXPAND); + elm_object_style_set(pCtrlBar, "naviframe"); + elm_object_focus_set(pCtrlBar, EINA_FALSE); + evas_object_show(pCtrlBar); + UG_TRACE_END; + return pCtrlBar; +} + + +/****************************** +** Prototype : __mf_ug_ctrl_bar_append_item +** Description : Samsung +** Input : void *data +** Evas_Object *ctrl_bar +** int type +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2010/12/10 +** Author : Samsung +** Modification : Created function +** +******************************/ +static void __mf_ug_ctrl_bar_append_item(void *data, Evas_Object *ctrl_bar, int type) +{ + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + Evas_Object *pCtrlBar = ctrl_bar; + ug_mf_retm_if(pCtrlBar == NULL, "pCtrlBar is NULL"); + Elm_Object_Item *item = NULL; + if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) { + item = elm_toolbar_item_append(pCtrlBar, NULL, NULL, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); + item = elm_toolbar_item_append(pCtrlBar, NULL, NULL, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); + item = elm_toolbar_item_append(pCtrlBar, NULL, NULL, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); + //elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_SET, (Evas_Smart_Cb) mf_ug_cb_add_button_cb, ugd); + } else { + if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE || + ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE || + ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) { + elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_IMPORT, (Evas_Smart_Cb) mf_ug_cb_add_button_cb, ugd); + item = elm_toolbar_item_append(pCtrlBar, NULL, NULL, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); + //elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_SEARCH, (Evas_Smart_Cb) mf_ug_search_view_enter_search_routine, ugd); + } else if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE) { + elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_EXPORT, (Evas_Smart_Cb) mf_ug_cb_add_button_cb, ugd); + elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_CREATE, (Evas_Smart_Cb) mf_ug_cb_create_new_folder, ugd); + } else { + elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_ATTACH, (Evas_Smart_Cb) mf_ug_cb_add_button_cb, ugd); + } + } + + elm_toolbar_item_append(pCtrlBar, NULL, MF_UG_LABEL_CANCEL, (Evas_Smart_Cb) mf_ug_cb_back_button_cb, ugd); + + + UG_TRACE_END; +} + + +/****************************** +** Prototype : mf_ug_ctrl_bar_set +** Description : Samsung +** Input : void* data +** ugNaviBar *pNavi_s +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2010/12/10 +** Author : Samsung +** Modification : Created function +** +******************************/ +void mf_ug_ctrl_bar_set(void *data, ugNaviBar *pNavi_s) +{ + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + Evas_Object *pNaviBar = ugd->ug_MainWindow.ug_pNaviBar; + Evas_Object *pCtrlBar = NULL; + + int type = ugd->ug_Status.ug_iCtrlBarType; + pCtrlBar = __mf_ug_ctrl_bar_create(pNaviBar); + ugd->ug_MainWindow.ug_pNaviCtrlBar = pCtrlBar; + type = CTRL_BAR_NORMAL; + __mf_ug_ctrl_bar_append_item(ugd, pCtrlBar, type); + evas_object_show(pCtrlBar); + elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, UG_CTRL_STYLE_TYPE, pCtrlBar); + UG_TRACE_END; +} + +/****************************** +** Prototype : mf_ug_ctrl_bar_disable_item +** Description : Samsung +** Input : void *data +** bool disable +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2010/12/10 +** Author : Samsung +** Modification : Created function +** +******************************/ +void mf_ug_ctrl_bar_disable_item(void *data, bool disable) +{ + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + Evas_Object *pCtrlBar = NULL; + + ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); + ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed"); + + pCtrlBar = ugd->ug_MainWindow.ug_pNaviCtrlBar; + + Elm_Object_Item *it = NULL; + it = elm_toolbar_first_item_get(pCtrlBar); + + while(it) { + const char *button_label = elm_object_item_text_get(it); + const char *disable_labe = NULL; + if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) { + disable_labe = MF_UG_LABEL_SET; + } else if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE || + ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE || + ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) { + disable_labe = MF_UG_LABEL_IMPORT; + } else { + disable_labe = MF_UG_LABEL_ATTACH; + } + if (g_strcmp0(button_label, disable_labe) == 0) { + elm_object_item_disabled_set(it, !disable); + } + it = elm_toolbar_item_next_get(it); + } +} + +/****************************** +** Prototype : mf_ug_ctrl_bar_set_item_disable +** Description : Samsung +** Input : void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2010/12/10 +** Author : Samsung +** Modification : Created function +** +******************************/ +void mf_ug_ctrl_bar_set_item_disable(void *data) +{ + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + bool disable = false; + + if (ugd->ug_Status.ug_bNoContentFlag == true) { + mf_ug_navi_bar_button_set_disable(ugd, true); + } else { + disable = mf_ug_util_is_genlist_selected(ugd); + mf_ug_navi_bar_button_set_disable(ugd, !disable); + } + UG_TRACE_END; +} + +void mf_ug_ctrl_bar_recover(void *data) +{ + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + + ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); + ug_mf_retm_if(pNavi_s == NULL, "get navi failed"); + + Evas_Object *naviBar = ugd->ug_MainWindow.ug_pNaviBar; + Evas_Object *ctrl_bar = NULL; + + ug_mf_retm_if(naviBar == NULL, "navi is NULL"); + ctrl_bar = elm_object_item_part_content_get(ugd->ug_MainWindow.ug_pNaviItem, UG_CTRL_STYLE_TYPE); + ugd->ug_MainWindow.ug_pNaviCtrlBar = ctrl_bar; +} |