1 #include <Elementary.h>
5 #include <BaseLayout.h>
13 #include "FbBaseView.h"
14 #include "FbVideoLayout.h"
17 struct SFbVideoLayout {
22 CLayoutMgr *pLayoutMgr;
29 void CFbVideoLayout::sm_CbUpdateEmptyFocusSequence(void* cookie)
32 CFbBaseView *pfbBaseView = NULL;
33 Evas_Object *eoBase = (Evas_Object*)cookie;
38 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
40 pfbBaseView->UpdateEmptyFocusSequence();
44 void CFbVideoLayout::sm_CbUpdatedGrid(void* cookie)
47 CFbBaseView *pfbBaseView = NULL;
48 Evas_Object *eoBase = (Evas_Object*)cookie;
52 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
54 pfbBaseView->UpdatedGrid();
58 void CFbVideoLayout::sm_CbUnsetFocus(void* cookie)
61 CFbBaseView *pfbBaseView = NULL;
62 Evas_Object *eoBase = (Evas_Object*)cookie;
64 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
66 pfbBaseView->UnsetFocus();
71 void CFbVideoLayout::sm_CbLinkApp(void* cookie, int type, int source_type, char *path)
74 CFbBaseView *pfbBaseView = NULL;
75 Evas_Object *eoBase = (Evas_Object*)cookie;
78 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
80 pfbBaseView->CbLinkApp(type, source_type, path);
85 bool CFbVideoLayout::t_CreateFileGrid(Evas_Object *layout)
87 m->pFileGrid = new CFileGrid;
91 CFileGrid::SCallback cb;
92 cb.cbUpdateEmptyFocusSequence = sm_CbUpdateEmptyFocusSequence;
93 cb.cbUpdatedGrid = sm_CbUpdatedGrid;
94 cb.cbUnsetFocus = sm_CbUnsetFocus;
95 cb.cbLinkApp = sm_CbLinkApp;
96 cb.cookie = m->eoBase;
97 if (!m->pFileGrid->Create(m->eoWin, layout, &cb)) {
98 _DBG("Fail to create FileGrid");
107 void CFbVideoLayout::t_DestroyFileGrid(void)
112 m->pFileGrid->Destroy();
118 void CFbVideoLayout::t_OnShow(void)
120 elm_object_part_content_unset(m->eoBase, FBR_PART_CONTENT);
121 elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, Layout());
122 m->pFileGrid->Update(m->updateFlag);
123 m->updateFlag = false; // set default
124 CBaseLayout::t_OnShow();
128 bool CFbVideoLayout::Create(CLayoutMgr *mgr, void *data)
133 Evas_Object* layout = NULL;
136 _CHECK(m = new SFbVideoLayout)
137 _CHECK(m->pLayoutMgr = mgr)
138 _CHECK(m->pViewMgr = CViewMgr::GetInstance())
139 _CHECK(m->eoBase = m->pLayoutMgr->Base())
140 _CHECK(m->eoWin = m->pViewMgr->Window())
141 _CHECK(layout = elm_layout_add(m->eoBase))
142 _CHECK(elm_layout_file_set(layout, EDJEFILE, FB_VIDEO_LAYOUT))
143 _CHECK(t_CreateFileGrid(layout))
145 m->updateFlag = false;
146 elm_object_part_content_unset(m->eoBase, FBR_PART_CONTENT);
147 elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, layout);
149 _CHECK(CBaseLayout::Create(layout))
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; }
168 void CFbVideoLayout::Destroy(void)
172 CBaseLayout::Destroy();
179 void CFbVideoLayout::SetFocus(Eina_Bool flag)
184 m->pFileGrid->SetFocus(flag);
188 void CFbVideoLayout::Action(void)
192 return m->pFileGrid->Action();
196 void CFbVideoLayout::SetUpdateFlag(bool flag)
200 m->updateFlag = flag;