m(0) {}
virtual ~CAllSourceView() {}
- virtual Evas_Object *Base(void);
-
- virtual bool Create(void *data);
+ virtual bool Create(void *data, Evas_Object *eoBase);
virtual void Destroy(void);
public:
virtual ~CMenuView() {}
- virtual Evas_Object *Base(void);
-
- virtual bool Create(void *data);
+ virtual bool Create(void *data, Evas_Object *eoBase);
virtual void Destroy(void);
public:
{
Evas_Object *btn;
- btn = elm_button_add(m->base);
+ btn = elm_button_add(Base());
if (!btn) {
_ERR("add button error.");
return NULL;
return false;
}
- elm_object_part_content_set(m->base, PART_MENU_PLUGGED, m->plug_btn);
+ elm_object_part_content_set(Base(), PART_MENU_PLUGGED, m->plug_btn);
Connect(m->plug_btn, ALL_PLUG_BTN, TYPE_KEY_DOWN | TYPE_MOUSE_MOVE | TYPE_FOCUSED);
m->pPluggedLayout->Update(data, type);
}
-Evas_Object *CAllSourceView::Base(void)
-{
- ASSERT(m);
-
- return m->base;
-}
-
-bool CAllSourceView::Create(void *data)
+bool CAllSourceView::Create(void *data, Evas_Object *eoBase)
{
ASSERT(!m);
Evas_Object *win = NULL;
+ Evas_Object *base;
CViewMgr *vmgr;
vmgr = CViewMgr::GetInstance();
{
_CHECK(win = vmgr->Window());
_CHECK(m = new SAllSourceView);
- _CHECK(m->base = m_AddLayout(win));
+ _CHECK(base = m_AddLayout(win));
_CHECK(m->sigCb = m_CreateSigCbPair());
_CHECK(CSourceMgr::Initialize(sm_CbUpdateSrcList, m));
_CHECK(m->pLayoutMgr = new CLayoutMgr);
- _CHECK(m->pLayoutMgr->Create(m->base, NULL));
+ _CHECK(m->pLayoutMgr->Create(base, NULL));
_CHECK(m->pPluggedLayout = new CPluggedLayout(LAYOUT_PLUGGED));
_CHECK(m->pPluggedLayout->Create(m->pLayoutMgr, m->sigCb));
_CHECK(m->pLayoutMgr->AddLayout(m->pPluggedLayout));
+ _CHECK(CBaseView::Create(NULL, base));
_CHECK(m_AddMenuArea());
_WHEN_SUCCESS{
m->vmgr = vmgr;
m->mode = (launch_mode)(size_t)data;
CSourceMgr::GetInstance()->Refresh();
- CBaseView::Create(NULL);
}
_CHECK_FAIL{}
+ _CHECK_FAIL{ CBaseView::Destroy(); }
_CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pPluggedLayout); }
_CHECK_FAIL{ m->pPluggedLayout->Destroy(); }
_CHECK_FAIL{ delete m->pPluggedLayout; }
_CHECK_FAIL{ delete m->pLayoutMgr; }
_CHECK_FAIL{ CSourceMgr::Finalize(); }
_CHECK_FAIL{ delete m->sigCb; }
- _CHECK_FAIL{ evas_object_del(m->base); }
+ _CHECK_FAIL{ evas_object_del(base); }
_CHECK_FAIL{ delete m; m = NULL; }
_CHECK_FAIL{}
} _CREATE_END_AND_CATCH{ return false; }
{
ASSERT(m);
+ evas_object_del(Base());
+
+ Disconnect(Base());
CBaseView::Destroy();
m->pLayoutMgr->RemoveLayout(m->pPluggedLayout);
};
struct SMenuView {
- Evas_Object *base;
Evas_Object *btn[MAX_BTN_NUM];
Evas_Object *focus_btn;
CSourceInfo *node;
if (row >= bp_arr_row || col >= MAX_BTN_NUM)
return NULL;
- btn = m_AddBtn(m->base, bp_arr[row][col].part,
+ btn = m_AddBtn(Base(), bp_arr[row][col].part,
bp_arr[row][col].style,
bp_arr[row][col].text);
if (!btn)
Evas_Object *img;
const char *path;
- elm_object_part_text_set(m->base,
+ elm_object_part_text_set(Base(),
PART_FOCUS_ITEM_TEXT_NAME,
_(m->node->Name()));
- elm_object_part_text_set(m->base,
+ elm_object_part_text_set(Base(),
PART_FOCUS_ITEM_TEXT_TYPE,
_(m->node->TypeName()));
if (!path)
return false;
- img = elm_image_add(m->base);
+ img = elm_image_add(Base());
if (!img)
return false;
elm_image_file_set(img, path, NULL);
evas_object_show(img);
- elm_object_part_content_set(m->base, PART_FOCUS_ITEM_IMG, img);
+ elm_object_part_content_set(Base(), PART_FOCUS_ITEM_IMG, img);
return true;
}
-Evas_Object *CMenuView::Base(void)
-{
- ASSERT(m);
-
- return m->base;
-}
-
-
-bool CMenuView::Create(void *data)
+bool CMenuView::Create(void *data, Evas_Object *eoBase)
{
ASSERT(!m);
ASSERT(data);
}
memset(m, 0, sizeof(SMenuView));
- m->base = base;
m->node = (CSourceInfo *)data;
m->vmgr = vmgr;
+ CBaseView::Create(NULL, base);
+
if (!m_AddFocusItem()) {
_ERR("add focus item failed.");
evas_object_del(base);
Connect(base, MENU_BASE, TYPE_KEY_DOWN);
- CBaseView::Create(NULL);
-
return true;
}
{
ASSERT(m);
+ evas_object_del(Base());
+
+ Disconnect(Base());
CBaseView::Destroy();
delete m;
{
ASSERT(m);
- evas_object_show(m->base);
+ evas_object_show(Base());
t_OnResume();
}
{
ASSERT(m);
- evas_object_hide(m->base);
+ evas_object_hide(Base());
}
void CMenuView::t_OnResume(void)