merge with master
[apps/core/preloaded/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_pNaviGenlist;
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         char *monitor_path;
120         bool ug_bUpperFlag;
121         Elm_Genlist_Item_Class ug_itc;
122         Elm_Genlist_Item_Class ug_topitc;
123         Elm_Genlist_Item_Class ug_separtor_no_bottom_line_itc;
124         Elm_Genlist_Item_Class ug_separtor_with_bottom_line_itc;
125         Elm_Genlist_Item_Class ug_normalitc;
126         Elm_Genlist_Item_Class ug_editfileditc;
127         Elm_Genlist_Item_Class ug_editfiledUpperSeperatoritc;
128         Elm_Genlist_Item_Class ug_editfiledBottomSeperatoritc;
129         Elm_Genlist_Item_Class ug_newfolderitec;
130         Elm_Genlist_Item_Class ug_pathinfoitec;
131 #ifdef  UG_THUMB_REAL_TIME_UPDATE
132         Ecore_Timer *ug_pThumbUpdateTimer;
133 #endif
134         Evas_Object *ug_pRadioGroup;
135         mf_search_handle search_handler;
136
137         Eina_List *search_result_list;
138         Ecore_Idler *search_idler;
139         Ecore_Idler *popup_del_idler;
140         Ecore_Idler *popup_create_idler;
141         Ecore_Idler *msg_finish_idler;
142         Ecore_Timer *pPopupTimer;
143 };
144
145
146 typedef struct _ugUiGadget ugUiGadget;
147 struct _ugUiGadget {
148         int ug_iFilterMode;
149         int ug_iSelectMode;
150         int ug_iMarkedMode;
151         int ug_iDrmFilterMode;
152         int ug_iImportMode;
153         unsigned long ug_iFileFilter;
154         int ug_iDrmFilter;
155         char *ug_pExtension;
156         Eina_List *ug_pDirList;
157         Eina_List *ug_pFilterList;
158         Eina_List *ug_pMultiSelectFileList;
159         Ecore_Pipe *ug_pInotifyPipe;
160         Ecore_Pipe *ug_pSyncPipe;
161 };
162
163 typedef struct _ugDrmInfo ugDrmInfo;
164 struct _ugDrmInfo {
165         int version;
166         int constraint_type;
167         char validity[DRM_MESSAGE_LEN];
168         char description[DRM_MESSAGE_LEN];
169         bool forward;
170 };
171
172
173 typedef struct _ugListPlay ugListPlay;
174 struct _ugListPlay {
175         char *ug_pPlayFilePath;
176         player_h ug_Player;
177         int ug_iPlayState;
178         bool ug_bDrmContentCanPlay;
179         bool ug_bDrmconsumption;
180         ugDrmInfo ug_DrmInfo;
181         Ecore_Idler *playing_err_idler;
182 };
183
184
185 typedef struct _ugData ugData;
186 struct _ugData {
187         ugMainWindow ug_MainWindow;
188         ugStatus ug_Status;
189         ugUiGadget ug_UiGadget;
190         ugListPlay ug_ListPlay;
191         ui_gadget_h ug;
192 };
193 Evas_Object *mf_ug_main_tab_layout_create(Evas_Object *parent);
194 Evas_Object *mf_ug_main_create_bg(Evas_Object *win);
195
196
197 #endif /* __DEF_MYFILE_H_ */