2 #include <Elementary.h>
6 #include <BaseLayout.h>
14 #include "FbBaseView.h"
15 #include "FbBaseLayout.h"
18 struct SFbBaseLayout {
23 CLayoutMgr *pLayoutMgr;
28 void CFbBaseLayout::sm_CbUpdateEmptyFocusSequence(void* cookie)
31 CFbBaseView *pfbBaseView = NULL;
32 Evas_Object *eoBase = (Evas_Object*)cookie;
37 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
39 pfbBaseView->UpdateEmptyFocusSequence();
43 void CFbBaseLayout::sm_CbUpdatedGrid(void* cookie)
46 CFbBaseView *pfbBaseView = NULL;
47 Evas_Object *eoBase = (Evas_Object*)cookie;
51 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
53 pfbBaseView->UpdatedGrid();
57 void CFbBaseLayout::sm_CbUnsetFocus(void* cookie)
60 CFbBaseView *pfbBaseView = NULL;
61 Evas_Object *eoBase = (Evas_Object*)cookie;
63 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
65 pfbBaseView->UnsetFocus();
70 void CFbBaseLayout::sm_CbLinkApp(void* cookie, int type, int source_type, char *path)
73 CFbBaseView *pfbBaseView = NULL;
74 Evas_Object *eoBase = (Evas_Object*)cookie;
77 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
79 pfbBaseView->CbLinkApp(type, source_type, path);
84 bool CFbBaseLayout::t_CreateFileGrid(Evas_Object *layout)
86 m->pFileGrid = new CFileGrid;
90 CFileGrid::SCallback cb;
91 cb.cbUpdateEmptyFocusSequence = sm_CbUpdateEmptyFocusSequence;
92 cb.cbUpdatedGrid = sm_CbUpdatedGrid;
93 cb.cbUnsetFocus = sm_CbUnsetFocus;
94 cb.cbLinkApp = sm_CbLinkApp;
95 cb.cookie = m->eoBase;
96 if (!m->pFileGrid->Create(m->eoWin, layout, &cb)) {
105 void CFbBaseLayout::t_DestroyFileGrid(void)
110 m->pFileGrid->Destroy();
116 bool CFbBaseLayout::Create(CLayoutMgr *mgr, void *data)
121 Evas_Object *layout = NULL;
124 _CHECK(m = new SFbBaseLayout)
125 _CHECK(m->pLayoutMgr = mgr)
126 _CHECK(m->pViewMgr = CViewMgr::GetInstance())
127 _CHECK(m->eoBase = m->pLayoutMgr->Base())
128 _CHECK(m->eoWin = m->pViewMgr->Window())
129 _CHECK(layout = elm_layout_add(m->eoBase))
130 _CHECK(elm_layout_file_set(layout, EDJEFILE, FB_BASE_LAYOUT))
131 _CHECK(t_CreateFileGrid(layout))
132 _COMMAND{ elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, layout); }
133 _CHECK(CBaseLayout::Create(layout))
137 _CHECK_FAIL{ CBaseLayout::Destroy(); }
138 _CHECK_FAIL{ t_DestroyFileGrid(); }
139 _CHECK_FAIL{ /* elm_layout_file_set */ }
140 _CHECK_FAIL{ /* elm_layout_add */ }
141 _CHECK_FAIL{ /* m->pViewMgr->Window()*/ }
142 _CHECK_FAIL{ /* m->pLayoutMgr->Base() */ }
143 _CHECK_FAIL{ /* CViewMgr::GetInstace() */ }
144 _CHECK_FAIL{ /* m->pLayoutMgr = mgr */ }
145 _CHECK_FAIL{ delete m; m = NULL; }
146 } _CREATE_END_AND_CATCH{ return false; }
152 void CFbBaseLayout::Destroy(void)
156 CBaseLayout::Destroy();
163 void CFbBaseLayout::Update(bool flag)
168 m->pFileGrid->Update(flag);
172 void CFbBaseLayout::SetFocus(Eina_Bool flag)
177 m->pFileGrid->SetFocus(flag);
181 Evas_Object* CFbBaseLayout::Grid(void)
185 return m->pFileGrid->Grid();
189 void CFbBaseLayout::Action(void)
193 return m->pFileGrid->Action();