Tizen 2.1 base
[apps/home/ug-myfile-efl.git] / src / include / mf-ug-main.h
1 /*
2  * Copyright 2012          Samsung Electronics Co., Ltd
3  *
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
7  *
8  *  http://floralicense.org/license/
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
18
19
20
21 #ifndef __DEF_MF_UG_MAIN_H_
22 #define __DEF_MF_UG_MAIN_H_
23
24 #define __ARM__
25
26 #include <Elementary.h>
27 #include <Ethumb.h>
28 #include <glib.h>
29 #include <Ecore.h>
30 #include <glib-object.h>
31 #include <ui-gadget-module.h>
32 #include <ui-gadget.h>
33 #include <app.h>
34 #include <stdbool.h>
35 #include <drm_client.h>
36 #include <drm_client_types.h>
37 #include <media_content.h>
38 #include <player.h>
39
40
41
42 #include "mf-ug-dlog.h"
43 #include "mf-ug-conf.h"
44 #include "mf-ug-search.h"
45 /***********    Global Definitions              ***********/
46 #ifndef UG_MODULE_API
47 #define UG_MODULE_API __attribute__ ((visibility("default")))
48 #endif
49
50 typedef void (*ugCallBack) (void *, Evas_Object *, void *);
51
52 typedef struct _ugNaviBar ugNaviBar;
53
54 struct _ugNaviBar {
55         char *ug_pNaviLabel;
56         char *ug_pNaviTitle;
57         char *ug_pCurrentPath;
58         bool ug_bNaviFlagInUse;
59 };
60
61
62 typedef struct _ugMainWindow ugMainWindow;
63 struct _ugMainWindow {
64         Evas_Object *ug_pWindow;
65         Evas_Object *ug_pBackGround;
66         Evas_Object *ug_pTabBackGround;
67         Evas_Object *ug_pMainLayout;
68         Evas_Object *ug_pNormalPopup;
69         Evas_Object *ug_pSearchLabel;
70         Evas_Object *ug_pSelectInfoLayout;
71         Evas_Object *ug_pRadioGroup;
72         Evas_Object *ug_pTabBar;
73
74         Evas_Object *ug_pNaviBar;
75         Evas_Object *ug_pNaviLayout;
76         Evas_Object *ug_pContent;
77         Evas_Object *ug_pNaviCtrlBar;
78         Evas_Object *ug_pNaviBox;
79
80         Evas_Object *ug_pEditField;
81         Evas_Object *ug_pEntry;
82         Evas_Object *ug_pSelectAllLayout;
83         Evas_Object *ug_pSelectAllCheckBox;
84         Evas_Object *ug_pSearchPopup;
85         Evas_Object *ug_pContextPopup;
86
87         Elm_Object_Item *ug_pPreNaviItem;
88         Elm_Object_Item *ug_pNaviItem;
89         Eina_List *ug_pNaviBarList;
90 };
91
92
93 typedef struct _ugStatus ugStatus;
94 struct _ugStatus {
95         GString *ug_pPath;
96         int ug_iState;
97         int ug_iSortType;
98         int ug_iRadioOn;
99         int ug_iMmcFlag;
100         int ug_iCtrlBarType;
101         int ug_iRadioValue;     /** current the radio box selected item value **/
102         int ug_iSelectedSortType;
103         int ug_iMore;
104         int ug_iCheckedCount;
105         int ug_iTotalCount;
106         int ug_iViewType;
107
108         bool ug_bAudioPlayFlag;
109         bool ug_bInstallFlag;
110         bool ug_bSettingEntry;
111         bool ug_bInSettingView;
112         bool ug_bNoContentFlag;
113         bool ug_bCancelDisableFlag;
114         bool ug_b_NaviPushFlag;
115         Eina_Bool ug_bSelectAllChecked;
116         int  ug_iThemeType;
117         char *ug_pUpper_folder;
118         char *ug_pEntryPath;
119         bool ug_bUpperFlag;
120         Elm_Genlist_Item_Class ug_itc;
121         Elm_Genlist_Item_Class ug_topitc;
122         Elm_Genlist_Item_Class ug_separtor_no_bottom_line_itc;
123         Elm_Genlist_Item_Class ug_separtor_with_bottom_line_itc;
124         Elm_Genlist_Item_Class ug_normalitc;
125         Elm_Genlist_Item_Class ug_editfileditc;
126         Elm_Genlist_Item_Class ug_editfiledUpperSeperatoritc;
127         Elm_Genlist_Item_Class ug_editfiledBottomSeperatoritc;
128         Elm_Genlist_Item_Class ug_newfolderitec;
129         Elm_Genlist_Item_Class ug_pathinfoitec;
130 #ifdef  UG_THUMB_REAL_TIME_UPDATE
131         Ecore_Timer *ug_pThumbUpdateTimer;
132 #endif
133         Evas_Object *ug_pRadioGroup;
134         mf_search_handle search_handler;
135
136         Eina_List *search_result_list;
137         Ecore_Idler *search_idler;
138         Ecore_Idler *popup_del_idler;
139         Ecore_Idler *popup_create_idler;
140         Ecore_Idler *msg_finish_idler;
141         Ecore_Timer *pPopupTimer;
142 };
143
144
145 typedef struct _ugUiGadget ugUiGadget;
146 struct _ugUiGadget {
147         int ug_iFilterMode;
148         int ug_iSelectMode;
149         int ug_iMarkedMode;
150         int ug_iDrmFilterMode;
151         int ug_iImportMode;
152         unsigned long ug_iFileFilter;
153         int ug_iDrmFilter;
154         char *ug_pExtension;
155         Eina_List *ug_pDirList;
156         Eina_List *ug_pFilterList;
157         Eina_List *ug_pMultiSelectFileList;
158         Ecore_Pipe *ug_pInotifyPipe;
159         Ecore_Pipe *ug_pSyncPipe;
160 };
161
162 typedef struct _ugDrmInfo ugDrmInfo;
163 struct _ugDrmInfo {
164         int version;
165         int constraint_type;
166         char validity[DRM_MESSAGE_LEN];
167         char description[DRM_MESSAGE_LEN];
168         bool forward;
169 };
170
171
172 typedef struct _ugListPlay ugListPlay;
173 struct _ugListPlay {
174         char *ug_pPlayFilePath;
175         player_h ug_Player;
176         int ug_iPlayState;
177         bool ug_bDrmContentCanPlay;
178         bool ug_bDrmconsumption;
179         ugDrmInfo ug_DrmInfo;
180         Ecore_Idler *playing_err_idler;
181 };
182
183
184 typedef struct _ugData ugData;
185 struct _ugData {
186         ugMainWindow ug_MainWindow;
187         ugStatus ug_Status;
188         ugUiGadget ug_UiGadget;
189         ugListPlay ug_ListPlay;
190         ui_gadget_h ug;
191 };
192 Evas_Object *mf_ug_main_tab_layout_create(Evas_Object *parent);
193 Evas_Object *mf_ug_main_create_bg(Evas_Object *win);
194
195
196 #endif /* __DEF_MYFILE_H_ */