summaryrefslogtreecommitdiff
path: root/src/widget/mf-ug-ctrl-bar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/widget/mf-ug-ctrl-bar.c')
-rw-r--r--src/widget/mf-ug-ctrl-bar.c249
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;
+}