Add Layout Dummy Functions / It will be confirmed later.
[profile/tv/apps/native/filebrowser.git] / src / layouts / FbAllLayout.cpp
1 #include <Elementary.h>
2 #include <AppCommon.h>
3 #include <BaseView.h>
4 #include <ViewMgr.h>
5 #include <BaseLayout.h>
6 #include <LayoutMgr.h>
7
8 #include "dbg.h"
9 #include "define.h"
10 #include "FileGrid.h"
11
12 #include <CtxPopup.h>
13 #include "FbBaseView.h"
14 #include "FbAllLayout.h"
15
16
17 struct SFbAllLayout {
18         Evas_Object *eoWin;
19         Evas_Object *eoBase;
20         CFileGrid  *pFileGrid;
21
22         CLayoutMgr *pLayoutMgr;
23         CViewMgr   *pViewMgr;
24 };
25
26
27 void CFbAllLayout::sm_CbUpdateEmptyFocusSequence(void* cookie)
28 {
29         _DBG();
30         CFbBaseView *pfbBaseView = NULL;
31         Evas_Object *eoBase = (Evas_Object*)cookie;
32
33         if (!eoBase)
34                 return;
35
36         pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
37         ASSERT(pfbBaseView);
38         pfbBaseView->UpdateEmptyFocusSequence();
39 }
40
41
42 void CFbAllLayout::sm_CbUpdatedGrid(void* cookie)
43 {
44         _DBG();
45         CFbBaseView *pfbBaseView = NULL;
46         Evas_Object *eoBase = (Evas_Object*)cookie;
47         if (!eoBase)
48                 return;
49
50         pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
51         ASSERT(pfbBaseView);
52         pfbBaseView->UpdatedGrid();
53 }
54
55
56 void CFbAllLayout::sm_CbUnsetFocus(void* cookie)
57 {
58         _DBG();
59         CFbBaseView *pfbBaseView = NULL;
60         Evas_Object *eoBase = (Evas_Object*)cookie;
61         if (eoBase) {
62                 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
63                 ASSERT(pfbBaseView);
64                 pfbBaseView->UnsetFocus();
65         }
66 }
67
68
69 void CFbAllLayout::sm_CbLinkApp(void* cookie, int type, int source_type, char *path)
70 {
71         _DBG();
72         CFbBaseView *pfbBaseView = NULL;
73         Evas_Object *eoBase = (Evas_Object*)cookie;
74         if (eoBase)
75         {
76                 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
77                 ASSERT(pfbBaseView);
78                 pfbBaseView->CbLinkApp(type, source_type, path);
79         }
80 }
81
82
83 bool CFbAllLayout::t_CreateFileGrid(Evas_Object *layout)
84 {
85         m->pFileGrid = new CFileGrid;
86         if (!m->pFileGrid)
87                 return false;
88
89         CFileGrid::SCallback cb;
90         cb.cbUpdateEmptyFocusSequence = sm_CbUpdateEmptyFocusSequence;
91         cb.cbUpdatedGrid = sm_CbUpdatedGrid;
92         cb.cbUnsetFocus = sm_CbUnsetFocus;
93         cb.cbLinkApp = sm_CbLinkApp;
94         cb.cookie = m->eoBase;
95         if (!m->pFileGrid->Create(m->eoWin, layout, &cb)) {
96                 delete m->pFileGrid;
97                 m->pFileGrid = NULL;
98                 return false;
99         }
100         return true;
101 }
102
103
104 void CFbAllLayout::t_DestroyFileGrid(void)
105 {
106         if (!m->pFileGrid)
107                 return;
108
109         m->pFileGrid->Destroy();
110         delete m->pFileGrid;
111         m->pFileGrid = NULL;
112 }
113
114
115 void CFbAllLayout::t_OnShow(void)
116 {
117         _DBG();
118
119         m->pFileGrid->Update(false);
120 //      CBaseLayout::t_OnShow();
121         return;
122 }
123
124
125 void CFbAllLayout::t_OnHide(void)
126 {
127 //      CBaseLayout::t_OnHide();
128         return;
129 }
130
131
132 bool CFbAllLayout::Create(CLayoutMgr *mgr, void *data)
133 {
134         ASSERT(!m);
135         ASSERT(mgr);
136         
137         Evas_Object *layout = NULL;
138
139         _CREATE_BEGIN{
140                 _CHECK(m = new SFbAllLayout)
141                 _CHECK(m->pLayoutMgr = mgr)
142                 _CHECK(m->pViewMgr = CViewMgr::GetInstance())
143                 _CHECK(m->eoBase = m->pLayoutMgr->Base())
144                 _CHECK(m->eoWin = m->pViewMgr->Window())
145                 _CHECK(layout = elm_layout_add(m->eoBase))
146                 _CHECK(elm_layout_file_set(layout, EDJEFILE, FB_ALL_LAYOUT))
147                 _CHECK(t_CreateFileGrid(layout))
148                 _COMMAND{ elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, layout); }
149                 _CHECK(CBaseLayout::Create(layout))
150
151                 _WHEN_SUCCESS{}
152
153                 _CHECK_FAIL{ CBaseLayout::Destroy(); }
154                 _CHECK_FAIL{ t_DestroyFileGrid(); }
155                 _CHECK_FAIL{ /* elm_layout_file_set */ }
156                 _CHECK_FAIL{ /* elm_layout_add */ }
157                 _CHECK_FAIL{ /* m->pViewMgr->Window()*/ }
158                 _CHECK_FAIL{ /* m->pLayoutMgr->Base() */ }
159                 _CHECK_FAIL{ /* CViewMgr::GetInstace() */ }
160                 _CHECK_FAIL{ /* m->pLayoutMgr = mgr */ }
161                 _CHECK_FAIL{ delete m; m = NULL; }
162         } _CREATE_END_AND_CATCH{ return false; }
163
164         return true;
165 }
166
167
168 void CFbAllLayout::Destroy(void)
169 {
170         ASSERT(m);
171
172         CBaseLayout::Destroy();
173         t_DestroyFileGrid();
174         delete m;
175         m = NULL;
176 }
177
178
179 void CFbAllLayout::Update(bool flag)
180 {
181         ASSERT(m);
182         _DBG();
183
184         m->pFileGrid->Update(flag);
185 }
186
187
188 void CFbAllLayout::SetFocus(Eina_Bool flag)
189 {
190         ASSERT(m);
191         _DBG();
192
193         m->pFileGrid->SetFocus(flag);
194 }
195
196
197 Evas_Object* CFbAllLayout::Grid(void)
198 {
199         ASSERT(m);
200         
201         return m->pFileGrid->Grid();
202 }
203
204
205 void CFbAllLayout::Action(void)
206 {
207         ASSERT(m);
208         
209         return m->pFileGrid->Action();
210 }