4 #include "FbBaseView.h"
5 #include "FbPhotoLayout.h"
6 #include "../views/BaseView/Info.h"
10 struct SFbPhotoLayout {
15 CLayoutMgr *pLayoutMgr;
22 void CFbPhotoLayout::sm_CbUpdateEmptyFocusSequence(void* cookie)
25 CFbBaseView *pfbBaseView = NULL;
26 Evas_Object *eoBase = (Evas_Object*)cookie;
31 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
33 pfbBaseView->UpdateEmptyFocusSequence();
37 void CFbPhotoLayout::sm_CbUpdatedGrid(void* cookie)
40 CFbBaseView *pfbBaseView = NULL;
41 Evas_Object *eoBase = (Evas_Object*)cookie;
45 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
47 pfbBaseView->UpdatedGrid();
51 void CFbPhotoLayout::sm_CbUnsetFocus(void* cookie)
54 CFbBaseView *pfbBaseView = NULL;
55 Evas_Object *eoBase = (Evas_Object*)cookie;
57 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
59 pfbBaseView->UnsetFocus();
64 void CFbPhotoLayout::sm_CbLinkApp(void* cookie, int type, int source_type, char *path)
67 CFbBaseView *pfbBaseView = NULL;
68 Evas_Object *eoBase = (Evas_Object*)cookie;
71 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
73 pfbBaseView->CbLinkApp(type, source_type, path);
78 bool CFbPhotoLayout::t_CreateFileGrid(Evas_Object *layout)
80 m->pFileGrid = new CFileGrid;
84 CFileGrid::SCallback cb;
85 cb.cbUpdateEmptyFocusSequence = sm_CbUpdateEmptyFocusSequence;
86 cb.cbUpdatedGrid = sm_CbUpdatedGrid;
87 cb.cbUnsetFocus = sm_CbUnsetFocus;
88 cb.cbLinkApp = sm_CbLinkApp;
89 cb.cookie = m->eoBase;
90 if (!m->pFileGrid->Create(m->eoWin, layout, &cb)) {
91 _DBG("Fail to create FileGrid");
100 void CFbPhotoLayout::t_DestroyFileGrid(void)
105 m->pFileGrid->Destroy();
111 void CFbPhotoLayout::t_OnShow(void)
113 elm_object_part_content_unset(m->eoBase, FBR_PART_CONTENT);
114 elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, Layout());
115 CInfo::SetGroupIndex(E_GRP_PHOTO);
116 m->pFileGrid->Update(m->updateFlag);
117 m->updateFlag = false; // set default
118 CBaseLayout::t_OnShow();
122 bool CFbPhotoLayout::Create(CLayoutMgr *mgr, void *data)
127 Evas_Object* layout = NULL;
130 _CHECK(m = new SFbPhotoLayout)
131 _CHECK(m->pLayoutMgr = mgr)
132 _CHECK(m->pViewMgr = CViewMgr::GetInstance())
133 _CHECK(m->eoBase = m->pLayoutMgr->Base())
134 _CHECK(m->eoWin = m->pViewMgr->Window())
135 _CHECK(layout = elm_layout_add(m->eoBase))
136 _CHECK(elm_layout_file_set(layout, EDJEFILE, FB_PHOTO_LAYOUT))
137 _CHECK(t_CreateFileGrid(layout))
139 m->updateFlag = false;
140 elm_object_part_content_unset(m->eoBase, FBR_PART_CONTENT);
141 elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, layout);
143 _CHECK(CBaseLayout::Create(layout))
147 _CHECK_FAIL{ CBaseLayout::Destroy(); }
148 _CHECK_FAIL{ t_DestroyFileGrid(); }
149 _CHECK_FAIL{ /* elm_layout_file_set */ }
150 _CHECK_FAIL{ /* elm_layout_add */ }
151 _CHECK_FAIL{ /* m->pViewMgr->Window()*/ }
152 _CHECK_FAIL{ /* m->pLayoutMgr->Base() */ }
153 _CHECK_FAIL{ /* CViewMgr::GetInstace() */ }
154 _CHECK_FAIL{ /* m->pLayoutMgr = mgr */ }
155 _CHECK_FAIL{ delete m; m = NULL; }
156 } _CREATE_END_AND_CATCH{ return false; }
162 void CFbPhotoLayout::Destroy(void)
166 CBaseLayout::Destroy();
173 void CFbPhotoLayout::SetFocus(Eina_Bool flag)
178 m->pFileGrid->SetFocus(flag);
182 void CFbPhotoLayout::Action(void)
186 return m->pFileGrid->Action();
190 void CFbPhotoLayout::SetUpdateFlag(bool flag)
194 m->updateFlag = flag;