1 #include <Elementary.h>
5 #include <BaseLayout.h>
13 #include "FbBaseView.h"
14 #include "FbMusicLayout.h"
15 #include "../views/BaseView/Info.h"
19 struct SFbMusicLayout {
24 CLayoutMgr *pLayoutMgr;
31 void CFbMusicLayout::sm_CbUpdateEmptyFocusSequence(void* cookie)
34 CFbBaseView *pfbBaseView = NULL;
35 Evas_Object *eoBase = (Evas_Object*)cookie;
40 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
42 pfbBaseView->UpdateEmptyFocusSequence();
46 void CFbMusicLayout::sm_CbUpdatedGrid(void* cookie)
49 CFbBaseView *pfbBaseView = NULL;
50 Evas_Object *eoBase = (Evas_Object*)cookie;
54 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
56 pfbBaseView->UpdatedGrid();
60 void CFbMusicLayout::sm_CbUnsetFocus(void* cookie)
63 CFbBaseView *pfbBaseView = NULL;
64 Evas_Object *eoBase = (Evas_Object*)cookie;
66 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
68 pfbBaseView->UnsetFocus();
73 void CFbMusicLayout::sm_CbLinkApp(void* cookie, int type, int source_type, char *path)
76 CFbBaseView *pfbBaseView = NULL;
77 Evas_Object *eoBase = (Evas_Object*)cookie;
80 pfbBaseView = (CFbBaseView*)evas_object_data_get(eoBase, BASE_VIEW_DATA);
82 pfbBaseView->CbLinkApp(type, source_type, path);
87 bool CFbMusicLayout::t_CreateFileGrid(Evas_Object *layout)
89 m->pFileGrid = new CFileGrid;
93 CFileGrid::SCallback cb;
94 cb.cbUpdateEmptyFocusSequence = sm_CbUpdateEmptyFocusSequence;
95 cb.cbUpdatedGrid = sm_CbUpdatedGrid;
96 cb.cbUnsetFocus = sm_CbUnsetFocus;
97 cb.cbLinkApp = sm_CbLinkApp;
98 cb.cookie = m->eoBase;
99 if (!m->pFileGrid->Create(m->eoWin, layout, &cb)) {
100 _DBG("Fail to create FileGrid");
109 void CFbMusicLayout::t_DestroyFileGrid(void)
114 m->pFileGrid->Destroy();
120 void CFbMusicLayout::t_OnShow(void)
122 elm_object_part_content_unset(m->eoBase, FBR_PART_CONTENT);
123 elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, Layout());
124 CInfo::SetGroupIndex(E_GRP_MUSIC);
125 m->pFileGrid->Update(m->updateFlag);
126 m->updateFlag = false; // set default
127 CBaseLayout::t_OnShow();
131 bool CFbMusicLayout::Create(CLayoutMgr *mgr, void *data)
136 Evas_Object* layout = NULL;
139 _CHECK(m = new SFbMusicLayout)
140 _CHECK(m->pLayoutMgr = mgr)
141 _CHECK(m->pViewMgr = CViewMgr::GetInstance())
142 _CHECK(m->eoBase = m->pLayoutMgr->Base())
143 _CHECK(m->eoWin = m->pViewMgr->Window())
144 _CHECK(layout = elm_layout_add(m->eoBase))
145 _CHECK(elm_layout_file_set(layout, EDJEFILE, FB_MUSIC_LAYOUT))
146 _CHECK(t_CreateFileGrid(layout))
148 m->updateFlag = false;
149 elm_object_part_content_unset(m->eoBase, FBR_PART_CONTENT);
150 elm_object_part_content_set(m->eoBase, FBR_PART_CONTENT, layout);
152 _CHECK(CBaseLayout::Create(layout))
156 _CHECK_FAIL{ CBaseLayout::Destroy(); }
157 _CHECK_FAIL{ t_DestroyFileGrid(); }
158 _CHECK_FAIL{ /* elm_layout_file_set */ }
159 _CHECK_FAIL{ /* elm_layout_add */ }
160 _CHECK_FAIL{ /* m->pViewMgr->Window()*/ }
161 _CHECK_FAIL{ /* m->pLayoutMgr->Base() */ }
162 _CHECK_FAIL{ /* CViewMgr::GetInstace() */ }
163 _CHECK_FAIL{ /* m->pLayoutMgr = mgr */ }
164 _CHECK_FAIL{ delete m; m = NULL; }
165 } _CREATE_END_AND_CATCH{ return false; }
171 void CFbMusicLayout::Destroy(void)
175 CBaseLayout::Destroy();
182 void CFbMusicLayout::SetFocus(Eina_Bool flag)
186 m->pFileGrid->SetFocus(flag);
190 void CFbMusicLayout::Action(void)
194 return m->pFileGrid->Action();
198 void CFbMusicLayout::SetUpdateFlag(bool flag)
202 m->updateFlag = flag;