apply modified CBaseView in application-common 46/38746/1 accepted/tizen/tv/20150429.051815 submit/tizen/20150429.030043
authorJehun Lim <jehun.lim@samsung.com>
Tue, 28 Apr 2015 04:07:55 +0000 (13:07 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Tue, 28 Apr 2015 04:07:55 +0000 (13:07 +0900)
Change-Id: Ife16077710e9da02ce8e3aad874b6b8b2183b68b
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
include/view/ctxtmenu-view/ctxtmenu_view.h
include/view/gallery-view/gallery_view.h
include/view/photo-viewer/photoviewer_view.h
include/view/photo-viewer/zoom_view.h
src/view/ctxtmenu-view/ctxtmenu_view.cpp
src/view/gallery-view/gallery_view.cpp
src/view/photo-viewer/photoviewer_view.cpp
src/view/photo-viewer/zoom_view.cpp

index 874018b..63da121 100644 (file)
@@ -72,11 +72,9 @@ public:
                IUnrealizedListener(this), m(0) {}
        virtual ~CCtxtMenuView() {}
 
-       virtual bool Create(void *data);
+       virtual bool Create(void *data, Evas_Object *eoBase);
        virtual void Destroy(void);
 
-       virtual Evas_Object* Base(void);
-
        virtual void OnTimeout(void);
        virtual Eina_Bool OnEvent(int type, void *event_info);
 
index 697ef4e..8e2f735 100644 (file)
@@ -112,11 +112,9 @@ public:
                m(0) {}
        virtual ~CGalleryView() {}
 
-       virtual bool Create(void *data);
+       virtual bool Create(void *data, Evas_Object *eoBase);
        virtual void Destroy(void);
 
-       virtual Evas_Object* Base(void);
-
 public:
        virtual void OnSKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_SKey_Down *ev);
        virtual void OnMouseClicked(int id, Evas_Object *obj);
index 3a4cde9..fe0677a 100644 (file)
@@ -107,11 +107,9 @@ public:
                IMouseMoveListener(this), IFocusedListener(this), m(0) {}
        virtual ~CPhotoViewerView() {}
 
-       virtual bool Create(void *data);
+       virtual bool Create(void *data, Evas_Object *eoBase);
        virtual void Destroy(void);
 
-       virtual Evas_Object* Base(void);
-
        virtual void OnTimeout(void);
        virtual Eina_Bool OnEvent(int type, void *event_info);
 
index 3c2590b..4872dd6 100644 (file)
@@ -70,11 +70,9 @@ public:
                IFocusedListener(this), IChangedListener(this), m(0) {}
        virtual ~CPhotoZoomView() {}
 
-       virtual bool Create(void *data);
+       virtual bool Create(void *data, Evas_Object *eoBase);
        virtual void Destroy(void);
 
-       virtual Evas_Object* Base(void);
-
        virtual void OnTimeout(void);
        virtual Eina_Bool OnEvent(int type, void *event_info);
 
index 3866c11..d27e386 100644 (file)
@@ -53,7 +53,6 @@ enum EObjectType {
 
 struct SCtxtMenuView {
        Evas_Object *win;  // Not NULL
-       Evas_Object *base; // Not NULL
 
        Evas_Object *grid;
        Evas_Object *func_btn[MAX_FUNC_BTN];
@@ -68,7 +67,6 @@ struct SCtxtMenuView {
 
        SCtxtMenuView() {
                win = NULL;
-               base = NULL;
                grid = NULL;
 
                for (int a = 0; a < MAX_FUNC_BTN; a++)
@@ -369,7 +367,7 @@ bool CCtxtMenuView::m_LoadContentThumbnail(void)
        const char *thumbpath;
        CMediaInfo *minfo;
 
-       photocam = elm_photocam_add(m->base);
+       photocam = elm_photocam_add(Base());
        if (!photocam) {
                _ERR("elm_photocam_add failed");
                return false;
@@ -407,7 +405,7 @@ bool CCtxtMenuView::m_LoadContentThumbnail(void)
        elm_photocam_paused_set(photocam, EINA_TRUE);
        elm_photocam_zoom_mode_set(photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
 
-       elm_object_part_content_set(m->base, PART_CONTENT_THUMBNAIL, photocam);
+       elm_object_part_content_set(Base(), PART_CONTENT_THUMBNAIL, photocam);
 
        return true;
 }
@@ -427,7 +425,7 @@ bool CCtxtMenuView::m_LoadContentInfo(void)
        if (!minfo)
                return false;
 
-       box = elm_box_add(m->base);
+       box = elm_box_add(Base());
        if (!box) {
                _ERR("elm_box_add failed");
                return false;
@@ -435,13 +433,13 @@ bool CCtxtMenuView::m_LoadContentInfo(void)
        evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        elm_box_horizontal_set(box, EINA_FALSE);
 
-       elm_object_part_content_set(m->base, PART_CONTENT_INFO, box);
+       elm_object_part_content_set(Base(), PART_CONTENT_INFO, box);
 
        name = minfo->Name();
        if (name) {
-               elm_object_part_text_set(m->base, PART_CONTENT_TITLE, name);
+               elm_object_part_text_set(Base(), PART_CONTENT_TITLE, name);
        } else {
-               elm_object_part_text_set(m->base, PART_CONTENT_TITLE, _(TEXT_NONAME));
+               elm_object_part_text_set(Base(), PART_CONTENT_TITLE, _(TEXT_NONAME));
        }
 
        type = minfo->Type();
@@ -526,7 +524,7 @@ bool CCtxtMenuView::m_DrawGengrid(void)
        if (m->grid)
                return true;
 
-       grid = elm_gengrid_add(m->base);
+       grid = elm_gengrid_add(Base());
        if (!grid) {
                _ERR("elm_gengrid_add failed");
                return false;
@@ -544,9 +542,9 @@ bool CCtxtMenuView::m_DrawGengrid(void)
        Connect(grid, CTXT_MENU_GRID, TYPE_MOUSE_MOVE | TYPE_FOCUSED |
                        TYPE_REALIZED | TYPE_UNREALIZED);
 
-       elm_object_part_text_set(m->base,
+       elm_object_part_text_set(Base(),
                        PART_RELCONT_TXT, _(TEXT_RELATED_CONTENT));
-       elm_object_part_content_set(m->base, PART_RELCONT, grid);
+       elm_object_part_content_set(Base(), PART_RELCONT, grid);
 
        elm_object_focus_next_object_set(grid, grid, ELM_FOCUS_LEFT);
 
@@ -694,7 +692,7 @@ bool CCtxtMenuView::m_DrawFuncBtn(void)
        if (!minfo)
                return false;
 
-       box = elm_box_add(m->base);
+       box = elm_box_add(Base());
        if (!box) {
                _ERR("elm_box_add failed");
                return false;
@@ -764,7 +762,7 @@ bool CCtxtMenuView::m_DrawFuncBtn(void)
                elm_object_focus_next_object_set(m->grid, m->grid, ELM_FOCUS_UP);
        }
 
-       elm_object_part_content_set(m->base, PART_FUNC_BTN, box);
+       elm_object_part_content_set(Base(), PART_FUNC_BTN, box);
 
        return true;
 
@@ -774,14 +772,13 @@ err:
 }
 
 
-bool CCtxtMenuView::Create(void* d)
+bool CCtxtMenuView::Create(void *data, Evas_Object *eoBase)
 {
-       view_data *data = (view_data*)d;
-
        ASSERT(!m);
        ASSERT(data);
 
        Evas_Object *win;
+       Evas_Object *base;
 
        win = CViewMgr::GetInstance()->Window();
        if (!win)
@@ -791,22 +788,24 @@ bool CCtxtMenuView::Create(void* d)
        if (!m)
                return false;
 
-       m->base = elm_layout_add(win);
-       if (!m->base) {
+       base = elm_layout_add(win);
+       if (!base) {
                _ERR("elm_layout_add failed");
                delete m;
                m = NULL;
                return false;
        }
 
-       elm_layout_file_set(m->base, EDJEFILE, GRP_CTXT_MENU);
+       elm_layout_file_set(base, EDJEFILE, GRP_CTXT_MENU);
 
        m->pMediadata = CMediadata::GetInstance();
        if (!m->pMediadata)
                goto err;
 
        m->win = win;
-       m->vd = data;
+       m->vd = (struct view_data *)data;
+
+       CBaseView::Create(NULL, base);
 
        if (!m_DrawSelectedContent())
                goto err;
@@ -821,15 +820,13 @@ bool CCtxtMenuView::Create(void* d)
                goto err;
        }
 
-       Connect(m->base, CTXT_MENU_VIEW, TYPE_KEY_DOWN);
-
-       CBaseView::Create(NULL);
+       Connect(base, CTXT_MENU_VIEW, TYPE_KEY_DOWN);
 
        return true;
 
 err:
        _ERR("draw items failed");
-       evas_object_del(m->base);
+       evas_object_del(base);
        delete m;
        m = NULL;
        return false;
@@ -839,28 +836,25 @@ void CCtxtMenuView::Destroy(void)
 {
        ASSERT(m);
 
+       evas_object_del(Base());
+
+       Disconnect(Base());
        CBaseView::Destroy();
+
        m->cTimeout.Destroy();
-       evas_object_del(m->base);
+
        delete m;
        m = NULL;
 }
 
-Evas_Object* CCtxtMenuView::Base(void)
-{
-       ASSERT(m);
-
-       return m->base;
-}
-
 void CCtxtMenuView::t_OnShow(void)
 {
        ASSERT(m);
 
-       evas_object_show(m->base);
+       evas_object_show(Base());
 
-       if (evas_object_above_get(m->base))
-               evas_object_raise(m->base);
+       if (evas_object_above_get(Base()))
+               evas_object_raise(Base());
 
        t_OnResume();
 }
@@ -869,7 +863,7 @@ void CCtxtMenuView::t_OnHide(void)
 {
        ASSERT(m);
 
-       evas_object_hide(m->base);
+       evas_object_hide(Base());
 
        t_OnPause();
 }
index cd1b462..9746b02 100644 (file)
@@ -41,7 +41,6 @@ enum EObjectType {
 
 struct SGalleryView {
        Evas_Object *win;
-       Evas_Object *base;
 
        Evas_Object *btn[MENUITEM_SIZE];
        Evas_Object *focused_btn;
@@ -82,7 +81,6 @@ struct SGalleryView {
 
        SGalleryView() {
                win = NULL;
-               base = NULL;
 
                ctxpopup = NULL;
                hover_btn = NULL;
@@ -250,7 +248,7 @@ Evas_Object *CGalleryView::m_GetHoverselObject(const char **text_arr,
 {
        Evas_Object *hoversel;
 
-       hoversel = elm_button_add(m->base);
+       hoversel = elm_button_add(Base());
        if (!hoversel)
                return NULL;
 
@@ -285,18 +283,18 @@ bool CGalleryView::m_DrawTopArea(void)
 {
        Evas_Object *hoversel;
 
-       elm_object_part_text_set(m->base, PART_TITLETEXT, _(TEXT_GALLERY));
+       elm_object_part_text_set(Base(), PART_TITLETEXT, _(TEXT_GALLERY));
 
        hoversel = m_GetHoverselObject(sorttext, SORT_TEXT_SIZE, STYLE_SORT);
        if (!hoversel)
                return false;
-       elm_object_part_content_set(m->base, PART_HOVERSELAREA1, hoversel);
+       elm_object_part_content_set(Base(), PART_HOVERSELAREA1, hoversel);
        m->sortbtn = hoversel;
 
        hoversel = m_GetHoverselObject(sourcetext, SOURCE_TEXT_SIZE, STYLE_SOURCE);
        if (!hoversel)
                return false;
-       elm_object_part_content_set(m->base, PART_HOVERSELAREA2, hoversel);
+       elm_object_part_content_set(Base(), PART_HOVERSELAREA2, hoversel);
        m->sourcebtn = hoversel;
 
        return true;
@@ -307,7 +305,7 @@ bool CGalleryView::m_DrawLeftArea(void)
        Evas_Object *box, *ic;
        int i;
 
-       box = util_ui_add_box(m->base);
+       box = util_ui_add_box(Base());
        if (!box)
                return false;
 
@@ -340,7 +338,7 @@ bool CGalleryView::m_DrawLeftArea(void)
 
        evas_object_show(box);
 
-       elm_object_part_content_set(m->base, PART_LEFTSWALLOW, box);
+       elm_object_part_content_set(Base(), PART_LEFTSWALLOW, box);
 
        m->pMediadata->CreateMediaList(m->source_type, m->arglist->media_type);
 
@@ -488,11 +486,12 @@ Eina_List *CGalleryView::sm_CbGetMediaList(void *cookie)
        return m->pMediadata->MediaList();
 }
 
-bool CGalleryView::Create(void *data)
+bool CGalleryView::Create(void *data, Evas_Object *eoBase)
 {
        ASSERT(!m);
 
        Evas_Object *win;
+       Evas_Object *base;
 
        win = CViewMgr::GetInstance()->Window();
        ASSERT(win);
@@ -501,8 +500,8 @@ bool CGalleryView::Create(void *data)
        if (!m)
                return false;
 
-       m->base = elm_layout_add(win);
-       if (!m->base) {
+       base = elm_layout_add(win);
+       if (!base) {
                delete m;
                m = NULL;
                return false;
@@ -514,7 +513,7 @@ bool CGalleryView::Create(void *data)
                goto error;
        }
 
-       if (!m->pLayoutMgr->Create(m->base, NULL)) {
+       if (!m->pLayoutMgr->Create(base, NULL)) {
                _ERR("LayoutMgr init failed");
                goto error;
        }
@@ -549,7 +548,7 @@ bool CGalleryView::Create(void *data)
 
        m->pLayoutMgr->RegisterCallback(CLayoutMgr::CONDITION_LAYOUT_SHOW_NOTIFY, sm_CbLayoutShown, m);
 
-       if (!elm_layout_file_set(m->base, EDJEFILE, GRP_GALLERY_VIEW))
+       if (!elm_layout_file_set(base, EDJEFILE, GRP_GALLERY_VIEW))
                goto error;
 
        m->pViewMgr = CViewMgr::GetInstance();
@@ -567,7 +566,9 @@ bool CGalleryView::Create(void *data)
        m->current_layout = m->arglist->view;
        m->bfirsttime_launch = true;
 
-       evas_object_data_set(m->base, PRIV_DATA, m);
+       evas_object_data_set(base, PRIV_DATA, m);
+
+       CBaseView::Create(NULL, base);
 
        if (!CMediaContentListener::Create())
                goto error;
@@ -578,13 +579,11 @@ bool CGalleryView::Create(void *data)
        if (!m_DrawItems())
                goto error;
 
-       CBaseView::Create(NULL);
-
        return true;
 
 error:
        _ERR("create failed, returning NULL");
-       evas_object_del(m->base);
+       evas_object_del(base);
        delete m;
        m = NULL;
 
@@ -613,6 +612,9 @@ void CGalleryView::Destroy(void)
        m->pFolderLayout->Destroy();
        delete m->pFolderLayout;
 
+       evas_object_del(Base());
+
+       Disconnect(Base());
        CBaseView::Destroy();
        m->pLayoutMgr->Destroy();
        delete m->pLayoutMgr;
@@ -630,24 +632,15 @@ void CGalleryView::Destroy(void)
                m->ld = NULL;
        }
 
-       evas_object_del(m->base);
-
        delete m;
        m = NULL;
 }
 
-Evas_Object* CGalleryView::Base(void)
-{
-       ASSERT(m);
-
-       return m->base;
-}
-
 void CGalleryView::t_OnShow(void)
 {
        ASSERT(m);
 
-       evas_object_show(m->base);
+       evas_object_show(Base());
 
        t_OnResume();
 }
@@ -656,7 +649,7 @@ void CGalleryView::t_OnHide(void)
 {
        ASSERT(m);
 
-       evas_object_hide(m->base);
+       evas_object_hide(Base());
 
        t_OnPause();
 }
@@ -744,7 +737,7 @@ void CGalleryView::OnMouseClicked(int id, Evas_Object *obj)
                CSortCtxPopup *pCtxPopup = new CSortCtxPopup;
                m->pCtxPopup = pCtxPopup;
                pCtxPopup->SetSortType(m->sort_type);
-               pCtxPopup->Create(m->base, &cb);
+               pCtxPopup->Create(Base(), &cb);
        }
                break;
        case GALLERY_SOURCEBTN:
@@ -756,7 +749,7 @@ void CGalleryView::OnMouseClicked(int id, Evas_Object *obj)
                CSourceCtxPopup *pCtxPopup = new CSourceCtxPopup;
                m->pCtxPopup = pCtxPopup;
                pCtxPopup->SetSourceType(m->source_type);
-               pCtxPopup->Create(m->base, &cb);
+               pCtxPopup->Create(Base(), &cb);
        }
                break;
        default:
index cd37eda..a6eaab4 100644 (file)
@@ -62,7 +62,6 @@ enum EObjectType {
 
 struct SPhotoViewerView {
        Evas_Object *win;
-       Evas_Object *base;
 
        Evas_Object *btn[MAX_PHOTO_ICONS];
        Evas_Object *focusedbtn;
@@ -97,7 +96,6 @@ struct SPhotoViewerView {
 
        SPhotoViewerView() {
                win = NULL;
-               base = NULL;
 
                focusedbtn = NULL;
                vd = NULL;
@@ -170,7 +168,7 @@ void CPhotoViewerView::m_OnPrevBtnClicked(Evas_Object *obj,
                                                        TIMEOUT_PREVIEWBAR,
                                                        sm_CbTimerPreviewBar,
                                                        this);
-                               elm_object_signal_emit(m->base,
+                               elm_object_signal_emit(Base(),
                                                SIG_PREVIEWBAR_SHOW, "");
                        }
                }
@@ -229,7 +227,7 @@ void CPhotoViewerView::m_OnNextBtnClicked(Evas_Object *obj,
                                                        TIMEOUT_PREVIEWBAR,
                                                        sm_CbTimerPreviewBar,
                                                        this);
-                               elm_object_signal_emit(m->base,
+                               elm_object_signal_emit(Base(),
                                                SIG_PREVIEWBAR_SHOW, "");
                        }
                }
@@ -297,7 +295,7 @@ void CPhotoViewerView::m_OnSettingBtnClicked(Evas_Object *obj,
        CSettingCtxPopup *pCtxPopup = new CSettingCtxPopup;
        m->pCtxPopup = pCtxPopup;
        pCtxPopup->SetSlideshowSpeed(m->slideshow_speed);
-       pCtxPopup->Create(m->base, &cb);
+       pCtxPopup->Create(Base(), &cb);
 
        m_OnTimerTooltip();
 }
@@ -352,7 +350,7 @@ void CPhotoViewerView::m_OnRotateBtnClicked(Evas_Object *obj,
        if (!file_path)
                return;
 
-       image = elm_image_add(m->base);
+       image = elm_image_add(Base());
        if (!image)
                return;
 
@@ -422,7 +420,7 @@ Eina_Bool CPhotoViewerView::m_OnTimerPreviewBar(void)
        ecore_timer_del(m->pvbar_timer);
        m->pvbar_timer = NULL;
 
-       elm_object_signal_emit(m->base, SIG_PREVIEWBAR_HIDE, "");
+       elm_object_signal_emit(Base(), SIG_PREVIEWBAR_HIDE, "");
 
        return ECORE_CALLBACK_CANCEL;
 }
@@ -463,7 +461,7 @@ bool CPhotoViewerView::m_DrawContentArea(CMediaInfo *minfo)
        const char *file_path;
        int width, height;
 
-       if (!m->base || !minfo)
+       if (!Base() || !minfo)
                return false;
 
        file_path = minfo->Path();
@@ -473,7 +471,7 @@ bool CPhotoViewerView::m_DrawContentArea(CMediaInfo *minfo)
        if (m->photocam)
                evas_object_del(m->photocam);
 
-       m->photocam = elm_photocam_add(m->base);
+       m->photocam = elm_photocam_add(Base());
        if (!m->photocam)
                return false;
 
@@ -488,7 +486,7 @@ bool CPhotoViewerView::m_DrawContentArea(CMediaInfo *minfo)
        elm_object_focus_allow_set(m->photocam, EINA_FALSE);
        elm_scroller_policy_set(m->photocam,
                        ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO);
-       elm_object_part_content_set(m->base, PART_CONTENTAREA, m->photocam);
+       elm_object_part_content_set(Base(), PART_CONTENTAREA, m->photocam);
 
        return true;
 }
@@ -503,14 +501,14 @@ bool CPhotoViewerView::m_DrawTopArea(CMediaInfo *minfo)
        int source;
        struct tm tm;
 
-       if (!m->base)
+       if (!Base())
                return false;
 
        display_name = minfo->Name();
        if (!display_name)
                return false;
 
-       elm_object_part_text_set(m->base, PART_TITLETEXT, display_name);
+       elm_object_part_text_set(Base(), PART_TITLETEXT, display_name);
 
        created_time = minfo->CreatedTime();
        if (created_time > 0) {
@@ -519,25 +517,25 @@ bool CPhotoViewerView::m_DrawTopArea(CMediaInfo *minfo)
        } else
                snprintf(buf, sizeof(buf), "%s", _(TEXT_NODATE));
 
-       elm_object_part_text_set(m->base, PART_DATETEXT, buf);
+       elm_object_part_text_set(Base(), PART_DATETEXT, buf);
 
        elm_photocam_image_size_get(m->photocam, &width, &height);
        snprintf(buf, sizeof(buf), "%d x %d", width, height);
-       elm_object_part_text_set(m->base, PART_RESOLUTIONTEXT, buf);
+       elm_object_part_text_set(Base(), PART_RESOLUTIONTEXT, buf);
 
        source = minfo->Source();
        if (source == E_SOURCE_USB) {
-               elm_object_part_text_set(m->base, PART_SOURCETEXT, _("USB"));
+               elm_object_part_text_set(Base(), PART_SOURCETEXT, _("USB"));
        } else {
-               elm_object_part_text_set(m->base, PART_SOURCETEXT, _("TV"));
+               elm_object_part_text_set(Base(), PART_SOURCETEXT, _("TV"));
        }
 
        snprintf(buf, sizeof(buf), "/%d", m->totalcount);
-       elm_object_part_text_set(m->base, PART_COUNTTEXT, buf);
+       elm_object_part_text_set(Base(), PART_COUNTTEXT, buf);
 
        m->current_idx = util_eina_list_get_index(m->vd->media_list, minfo);
        snprintf(buf, sizeof(buf), "%d", m->current_idx + 1);
-       elm_object_part_text_set(m->base, PART_CURRENTTEXT, buf);
+       elm_object_part_text_set(Base(), PART_CURRENTTEXT, buf);
 
        return true;
 }
@@ -578,7 +576,7 @@ bool CPhotoViewerView::m_DrawPreviewBar(void)
        Evas_Object *ly, *scr, *box;
        int x, y, w, h;
 
-       ly = elm_layout_add(m->base);
+       ly = elm_layout_add(Base());
        if (!ly)
                return false;
 
@@ -603,7 +601,7 @@ bool CPhotoViewerView::m_DrawPreviewBar(void)
        elm_object_part_content_set(ly, PART_PREVIEWBAR_SCR, scr);
        elm_object_content_set(scr, box);
 
-       elm_object_part_content_set(m->base, PART_PREVIEWBAR, ly);
+       elm_object_part_content_set(Base(), PART_PREVIEWBAR, ly);
 
        m->pvbar_scr = scr;
        m->pvbar_box = box;
@@ -682,7 +680,7 @@ bool CPhotoViewerView::m_DrawPreviewBarBorder(void)
        Evas *evas;
        Evas_Object *img;
 
-       evas = evas_object_evas_get(m->base);
+       evas = evas_object_evas_get(Base());
        if (!evas)
                return false;
 
@@ -698,7 +696,7 @@ bool CPhotoViewerView::m_DrawPreviewBarBorder(void)
 
        evas_object_color_set(img, 255, 255, 255, 100);
 
-       elm_object_part_content_set(m->base, PART_PREVIEWBAR_BORDER, img);
+       elm_object_part_content_set(Base(), PART_PREVIEWBAR_BORDER, img);
 
        return true;
 }
@@ -813,11 +811,11 @@ bool CPhotoViewerView::m_DrawBottomArea(void)
                "rotate"
        };
 
-       if (!m->base)
+       if (!Base())
                return false;
 
        for (i = 0; i < MAX_PHOTO_ICONS; i++) {
-               m->btn[i] = m_AddTooltipBtn(m->base, photo_icon_style[i], _(tooltip_text[i]));
+               m->btn[i] = m_AddTooltipBtn(Base(), photo_icon_style[i], _(tooltip_text[i]));
                if (!m->btn[i]) {
                        for (j = 0; j < i; j++)
                                m->btn[j] = NULL;
@@ -825,7 +823,7 @@ bool CPhotoViewerView::m_DrawBottomArea(void)
                }
 
                snprintf(buf, sizeof(buf), "part_btn%d", i);
-               elm_object_part_content_set(m->base, buf, m->btn[i]);
+               elm_object_part_content_set(Base(), buf, m->btn[i]);
 
                elm_object_signal_callback_add(m->btn[i], "btn,anim,finish",
                                _source_name[i], _edje_callback_function[i], this);
@@ -934,11 +932,12 @@ Eina_Bool CPhotoViewerView::OnFocus(void)
        return ECORE_CALLBACK_CANCEL;
 }
 
-bool CPhotoViewerView::Create(void *data)
+bool CPhotoViewerView::Create(void *data, Evas_Object *eoBase)
 {
        ASSERT(!m);
 
        Evas_Object *win;
+       Evas_Object *base;
 
        win = CViewMgr::GetInstance()->Window();
        ASSERT(win);
@@ -947,8 +946,8 @@ bool CPhotoViewerView::Create(void *data)
        if (!m)
                return false;
 
-       m->base = elm_layout_add(win);
-       if (!m->base) {
+       base = elm_layout_add(win);
+       if (!base) {
                delete m;
                m = NULL;
                return false;
@@ -958,29 +957,29 @@ bool CPhotoViewerView::Create(void *data)
        if (!m->pViewMgr)
                goto error;
 
-       if (!elm_layout_file_set(m->base, EDJEFILE, GRP_PHOTO_VIEWER))
+       if (!elm_layout_file_set(base, EDJEFILE, GRP_PHOTO_VIEWER))
                goto error;
 
        m->win = win;
        m->vd = (struct view_data *)data;
        m->totalcount = eina_list_count(m->vd->media_list);
 
+       CBaseView::Create(NULL, base);
+
        if (!m_DrawItems())
                goto error;
 
-       elm_object_signal_callback_add(m->base, SIG_MENU_SHOW_FINISH, "",
+       elm_object_signal_callback_add(base, SIG_MENU_SHOW_FINISH, "",
                                sm_CbShowMenuViewFinish, this);
 
        /* temp hot fix */
        m->focus_timer = ecore_timer_add(0.25, sm_CbFocus, this);
 
-       CBaseView::Create(NULL);
-
        return true;
 
 error:
        _ERR("error in creating layout");
-       evas_object_del(m->base);
+       evas_object_del(base);
        delete m;
        m = NULL;
 
@@ -991,6 +990,9 @@ void CPhotoViewerView::Destroy()
 {
        ASSERT(m);
 
+       evas_object_del(Base());
+
+       Disconnect(Base());
        CBaseView::Destroy();
 
        m->cTimeoutHandler.Destroy();
@@ -1012,24 +1014,15 @@ void CPhotoViewerView::Destroy()
 
        elm_box_clear(m->pvbar_box);
 
-       evas_object_del(m->base);
-
        delete m;
        m = NULL;
 }
 
-Evas_Object* CPhotoViewerView::Base(void)
-{
-       ASSERT(m);
-
-       return m->base;
-}
-
 void CPhotoViewerView::t_OnShow(void)
 {
        ASSERT(m);
 
-       evas_object_show(m->base);
+       evas_object_show(Base());
 
        t_OnResume();
 }
@@ -1038,7 +1031,7 @@ void CPhotoViewerView::t_OnHide(void)
 {
        ASSERT(m);
 
-       evas_object_hide(m->base);
+       evas_object_hide(Base());
 
        t_OnPause();
 }
@@ -1112,7 +1105,7 @@ void CPhotoViewerView::OnTimeout(void)
                m->pCtxPopup = NULL;
        }
 
-       elm_object_signal_emit(m->base, SIG_MENU_HIDE, "");
+       elm_object_signal_emit(Base(), SIG_MENU_HIDE, "");
 
        m_HideMenuView();
 
@@ -1121,7 +1114,7 @@ void CPhotoViewerView::OnTimeout(void)
                                        sm_CbTimerPreviewBar, this);
        else if (m->slideshow_state == STATE_PLAY) {
                m->pvbar_timer = NULL;
-               elm_object_signal_emit(m->base, SIG_PREVIEWBAR_HIDE, "");
+               elm_object_signal_emit(Base(), SIG_PREVIEWBAR_HIDE, "");
        }
 
        m->menu_show = false;
@@ -1145,13 +1138,13 @@ Eina_Bool CPhotoViewerView::OnEvent(int type, void *event_info)
                        sm_CbNextBtnClicked(this, NULL, NULL, NULL);
                else if (!strcmp(ev->keyname, KEY_UP)) {
                        if (m->slideshow_state == STATE_PAUSE) {
-                               elm_object_signal_emit(m->base, SIG_MENU_SHOW, "");
+                               elm_object_signal_emit(Base(), SIG_MENU_SHOW, "");
                                r = EINA_TRUE;
                        }
                } else if (!strcmp(ev->keyname, KEY_ENTER) ||
                        !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
                        if (m->slideshow_state == STATE_PAUSE) {
-                               elm_object_signal_emit(m->base, SIG_MENU_SHOW, "");
+                               elm_object_signal_emit(Base(), SIG_MENU_SHOW, "");
                                r = EINA_TRUE;
                        }
                } else if (!strcmp(ev->keyname, KEY_BACK) ||
@@ -1160,7 +1153,7 @@ Eina_Bool CPhotoViewerView::OnEvent(int type, void *event_info)
                                OnMouseClicked(PHOTOVIEWER_BTN,
                                                m->btn[SLIDESHOW_BTN_IDX]);
 
-                       elm_object_signal_emit(m->base, SIG_MENU_SHOW, "");
+                       elm_object_signal_emit(Base(), SIG_MENU_SHOW, "");
 
                        r = EINA_TRUE;
                } else if (!strcmp(ev->keyname, KEY_MENU) ||
@@ -1173,7 +1166,7 @@ Eina_Bool CPhotoViewerView::OnEvent(int type, void *event_info)
                        OnMouseClicked(PHOTOVIEWER_BTN,
                                                m->btn[SLIDESHOW_BTN_IDX]);
 
-               elm_object_signal_emit(m->base, SIG_MENU_SHOW, "");
+               elm_object_signal_emit(Base(), SIG_MENU_SHOW, "");
 
                r = EINA_TRUE;
        }
index e2096eb..5519e4b 100644 (file)
@@ -55,7 +55,6 @@ enum EObjectType {
 
 struct SPhotoZoomView {
        Evas_Object *eoWin;
-       Evas_Object *eoBase;
 
        Evas_Object *eoPhotocam;
        Evas_Object *eoBtn;
@@ -85,7 +84,6 @@ struct SPhotoZoomView {
 
        SPhotoZoomView() {
                eoWin = NULL;
-               eoBase = NULL;
 
                eoPhotocam = NULL;
                eoPhotocamNavi = NULL;
@@ -129,7 +127,7 @@ Eina_Bool CPhotoZoomView::m_OnTimer(void)
                ELM_PHOTOCAM_ZOOM_MODE_MANUAL);
        elm_photocam_zoom_set(m->eoPhotocam, ZOOM_VALUE_X2);
 
-       lbl = elm_label_add(m->eoBase);
+       lbl = elm_label_add(Base());
        if (!lbl)
                return false;
 
@@ -137,7 +135,7 @@ Eina_Bool CPhotoZoomView::m_OnTimer(void)
 
        elm_object_text_set(lbl, buf);
        evas_object_size_hint_min_set(lbl, SIZE_LABEL_ZOOM_LEVEL_WIDTH, 0);
-       elm_object_part_content_set(m->eoBase, PART_TEXT, lbl);
+       elm_object_part_content_set(Base(), PART_TEXT, lbl);
 
        if (!m_MoveZoomNaviImg())
                return ECORE_CALLBACK_CANCEL;
@@ -180,7 +178,7 @@ void CPhotoZoomView::m_OnSliderChanged(void)
        zoom_level = 1 / val;
        elm_photocam_zoom_set(m->eoPhotocam, zoom_level);
 
-       lbl = elm_object_part_content_get(m->eoBase, PART_TEXT);
+       lbl = elm_object_part_content_get(Base(), PART_TEXT);
        if (!lbl)
                return;
 
@@ -188,7 +186,7 @@ void CPhotoZoomView::m_OnSliderChanged(void)
 
        elm_object_text_set(lbl, buf);
        evas_object_size_hint_min_set(lbl, SIZE_LABEL_ZOOM_LEVEL_WIDTH, 0);
-       elm_object_part_content_set(m->eoBase, PART_TEXT, lbl);
+       elm_object_part_content_set(Base(), PART_TEXT, lbl);
 
        m_OnContentMoved();
 }
@@ -203,24 +201,24 @@ void CPhotoZoomView::m_UpdateArrow(void)
        elm_photocam_image_size_get(m->eoPhotocam, &width, &height);
 
        if (x == 0)
-               elm_object_signal_emit(m->eoBase, SIG_LEFTARROW_HIDE, "");
+               elm_object_signal_emit(Base(), SIG_LEFTARROW_HIDE, "");
        else
-               elm_object_signal_emit(m->eoBase, SIG_LEFTARROW_SHOW, "");
+               elm_object_signal_emit(Base(), SIG_LEFTARROW_SHOW, "");
 
        if (x + w >= width - 1)
-               elm_object_signal_emit(m->eoBase, SIG_RIGHTARROW_HIDE, "");
+               elm_object_signal_emit(Base(), SIG_RIGHTARROW_HIDE, "");
        else
-               elm_object_signal_emit(m->eoBase, SIG_RIGHTARROW_SHOW, "");
+               elm_object_signal_emit(Base(), SIG_RIGHTARROW_SHOW, "");
 
        if (y == 0)
-               elm_object_signal_emit(m->eoBase, SIG_UPARROW_HIDE, "");
+               elm_object_signal_emit(Base(), SIG_UPARROW_HIDE, "");
        else
-               elm_object_signal_emit(m->eoBase, SIG_UPARROW_SHOW, "");
+               elm_object_signal_emit(Base(), SIG_UPARROW_SHOW, "");
 
        if (y + h >= height - 1)
-               elm_object_signal_emit(m->eoBase, SIG_DOWNARROW_HIDE, "");
+               elm_object_signal_emit(Base(), SIG_DOWNARROW_HIDE, "");
        else
-               elm_object_signal_emit(m->eoBase, SIG_DOWNARROW_SHOW, "");
+               elm_object_signal_emit(Base(), SIG_DOWNARROW_SHOW, "");
 }
 
 
@@ -312,7 +310,7 @@ void CPhotoZoomView::m_MoveZoomNavi(Evas_Coord_Point coord)
 
 bool CPhotoZoomView::m_DrawSlider(void)
 {
-       m->eoSlider = elm_slider_add(m->eoBase);
+       m->eoSlider = elm_slider_add(Base());
        if (!m->eoSlider)
                return false;
 
@@ -328,7 +326,7 @@ bool CPhotoZoomView::m_DrawSlider(void)
 
        evas_object_show(m->eoSlider);
 
-       elm_object_part_content_set(m->eoBase, PART_SLIDER, m->eoSlider);
+       elm_object_part_content_set(Base(), PART_SLIDER, m->eoSlider);
 
        evas_object_propagate_events_set(m->eoSlider, EINA_FALSE);
 
@@ -339,37 +337,37 @@ bool CPhotoZoomView::m_DrawSlider(void)
 
 bool CPhotoZoomView::m_DrawArrow(void)
 {
-       m->arrow.eoUp = elm_image_add(m->eoBase);
+       m->arrow.eoUp = elm_image_add(Base());
        if (!m->arrow.eoUp)
                return false;
 
        elm_image_file_set(m->arrow.eoUp, IMAGE_UPARROW, NULL);
        Connect(m->arrow.eoUp, ZOOM_ARROW, TYPE_CLICKED);
-       elm_object_part_content_set(m->eoBase, PART_UPARROW, m->arrow.eoUp);
+       elm_object_part_content_set(Base(), PART_UPARROW, m->arrow.eoUp);
 
-       m->arrow.eoDown = elm_image_add(m->eoBase);
+       m->arrow.eoDown = elm_image_add(Base());
        if (!m->arrow.eoDown)
                return false;
 
        elm_image_file_set(m->arrow.eoDown, IMAGE_DOWNARROW, NULL);
        Connect(m->arrow.eoDown, ZOOM_ARROW, TYPE_CLICKED);
-       elm_object_part_content_set(m->eoBase, PART_DOWNARROW, m->arrow.eoDown);
+       elm_object_part_content_set(Base(), PART_DOWNARROW, m->arrow.eoDown);
 
-       m->arrow.eoLeft = elm_image_add(m->eoBase);
+       m->arrow.eoLeft = elm_image_add(Base());
        if (!m->arrow.eoLeft)
                return false;
 
        elm_image_file_set(m->arrow.eoLeft, IMAGE_LEFTARROW, NULL);
        Connect(m->arrow.eoLeft, ZOOM_ARROW, TYPE_CLICKED);
-       elm_object_part_content_set(m->eoBase, PART_LEFTARROW, m->arrow.eoLeft);
+       elm_object_part_content_set(Base(), PART_LEFTARROW, m->arrow.eoLeft);
 
-       m->arrow.eoRight = elm_image_add(m->eoBase);
+       m->arrow.eoRight = elm_image_add(Base());
        if (!m->arrow.eoRight)
                return false;
 
        elm_image_file_set(m->arrow.eoRight, IMAGE_RIGHTARROW, NULL);
        Connect(m->arrow.eoRight, ZOOM_ARROW, TYPE_CLICKED);
-       elm_object_part_content_set(m->eoBase, PART_RIGHTARROW, m->arrow.eoRight);
+       elm_object_part_content_set(Base(), PART_RIGHTARROW, m->arrow.eoRight);
 
        return true;
 }
@@ -380,14 +378,14 @@ bool CPhotoZoomView::m_DrawContent(void)
        const char *file_path;
        CMediaInfo *minfo;
 
-       if (!m->eoBase || !m->minfo)
+       if (!Base() || !m->minfo)
                return false;
 
-       m->eoBtn = elm_button_add(m->eoBase);
+       m->eoBtn = elm_button_add(Base());
        if (!m->eoBtn)
                return false;
 
-       elm_object_part_content_set(m->eoBase, PART_CONTENT_BTN, m->eoBtn);
+       elm_object_part_content_set(Base(), PART_CONTENT_BTN, m->eoBtn);
        evas_object_show(m->eoBtn);
 
        Connect(m->eoBtn, ZOOM_CONTENT_BTN, TYPE_KEY_DOWN);
@@ -398,7 +396,7 @@ bool CPhotoZoomView::m_DrawContent(void)
        if (!file_path)
                return false;
 
-       m->eoPhotocam = elm_photocam_add(m->eoBase);
+       m->eoPhotocam = elm_photocam_add(Base());
        if (!m->eoPhotocam)
                return false;
 
@@ -411,7 +409,7 @@ bool CPhotoZoomView::m_DrawContent(void)
        evas_object_smart_callback_add(m->eoPhotocam, SIG_SCROLL,
                                        sm_CbContentMoved, this);
 
-       elm_object_part_content_set(m->eoBase, PART_CONTENTAREA, m->eoPhotocam);
+       elm_object_part_content_set(Base(), PART_CONTENTAREA, m->eoPhotocam);
 
        Connect(m->eoPhotocam, ZOOM_CONTENT, TYPE_FOCUSED);
 
@@ -439,7 +437,7 @@ bool CPhotoZoomView::m_DrawZoomNavi(void)
        const char *file_path;
        CMediaInfo *minfo;
 
-       if (!m->eoBase || !m->minfo)
+       if (!Base() || !m->minfo)
                return false;
 
        minfo = m->minfo;
@@ -448,11 +446,11 @@ bool CPhotoZoomView::m_DrawZoomNavi(void)
        if (!file_path)
                return false;
 
-       ly = elm_layout_add(m->eoBase);
+       ly = elm_layout_add(Base());
        if (!ly)
                return false;
 
-       elm_object_part_content_set(m->eoBase, PART_ZOOM_NAVI, ly);
+       elm_object_part_content_set(Base(), PART_ZOOM_NAVI, ly);
        elm_layout_file_set(ly, EDJEFILE, GRP_ZOOM_NAVI);
 
        evas = evas_object_evas_get(ly);
@@ -509,7 +507,7 @@ void CPhotoZoomView::t_OnShow(void)
 {
        ASSERT(m);
 
-       evas_object_show(m->eoBase);
+       evas_object_show(Base());
 
        elm_object_focus_allow_set(m->eoPhotocam, EINA_TRUE);
        elm_object_focus_set(m->eoPhotocam, EINA_TRUE);
@@ -522,7 +520,7 @@ void CPhotoZoomView::t_OnHide(void)
 {
        ASSERT(m);
 
-       evas_object_hide(m->eoBase);
+       evas_object_hide(Base());
 
        t_OnPause();
 }
@@ -544,34 +542,36 @@ void CPhotoZoomView::t_OnResume(void)
 }
 
 
-bool CPhotoZoomView::Create(void *data)
+bool CPhotoZoomView::Create(void *data, Evas_Object *eoBase)
 {
        ASSERT(!m);
 
        _CREATE_BEGIN{
+               Evas_Object *base;
+
                _CHECK(m = new SPhotoZoomView);
                _CHECK(m->eoWin = CViewMgr::GetInstance()->Window());
-               _CHECK(m->eoBase = elm_layout_add(m->eoWin));
-               _CHECK(elm_layout_file_set(m->eoBase, EDJEFILE, GRP_ZOOM_VIEW));
+               _CHECK(base = elm_layout_add(m->eoWin));
+               _CHECK(elm_layout_file_set(base, EDJEFILE, GRP_ZOOM_VIEW));
                _COMMAND{ m->minfo = (CMediaInfo*)data; }
+               _CHECK(CBaseView::Create(NULL, base));
                _CHECK(m_DrawContent());
                _CHECK(m_DrawZoomNavi());
                _CHECK(m->timer = ecore_timer_add(TIMEOUT_ZOOMNAVI, sm_CbTimer, this));
                _CHECK(m->cTimeout.Create(TIMEOUT_PHOTOZOOM, this));
-               _CHECK(CBaseView::Create(NULL));
 
-               _CHECK_FAIL{ CBaseView::Destroy(); }
                _CHECK_FAIL{ m->cTimeout.Destroy(); }
                _CHECK_FAIL{ ecore_timer_del(m->timer); }
                _CHECK_FAIL{ /* m_DrawZoomNavi() */ }
                _CHECK_FAIL{ /* m_DrawContent() */ }
+               _CHECK_FAIL{ CBaseView::Destroy(); }
                _CHECK_FAIL{ /* elm_layout_file_set */ }
-               _CHECK_FAIL{ evas_object_del(m->eoBase); }
+               _CHECK_FAIL{ evas_object_del(base); }
                _CHECK_FAIL{ /* CViewMgr::GetInstance()->Window() */ }
                _CHECK_FAIL{ delete m; m = NULL; }
        } _CREATE_END_AND_CATCH{ return false; }
 
-       Connect(m->eoBase, ZOOM_VIEW, TYPE_KEY_DOWN | TYPE_KEY_UP);
+       Connect(Base(), ZOOM_VIEW, TYPE_KEY_DOWN | TYPE_KEY_UP);
 
        return true;
 }
@@ -581,24 +581,18 @@ void CPhotoZoomView::Destroy(void)
 {
        ASSERT(m);
 
+       evas_object_del(Base());
+
+       Disconnect(Base());
        CBaseView::Destroy();
 
        m->cTimeout.Destroy();
-       evas_object_del(m->eoBase);
 
        delete m;
        m = NULL;
 }
 
 
-Evas_Object* CPhotoZoomView::Base(void)
-{
-       ASSERT(m);
-
-       return m->eoBase;
-}
-
-
 void CPhotoZoomView::m_ViewKeyDown(Evas_Event_Key_Down *ev)
 {
        if (m->timeout)
@@ -611,7 +605,7 @@ void CPhotoZoomView::m_ViewKeyDown(Evas_Event_Key_Down *ev)
                elm_object_focus_set(m->eoPhotocam, EINA_FALSE);
                elm_object_focus_set(m->eoSlider, EINA_TRUE);
 
-               elm_object_signal_emit(m->eoBase, SIG_FOCUS_ZOOMBAR, "");
+               elm_object_signal_emit(Base(), SIG_FOCUS_ZOOMBAR, "");
        } else if (!strcmp(ev->keyname, KEY_BACK) ||
                !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                CViewMgr::GetInstance()->PopView();
@@ -665,7 +659,7 @@ void CPhotoZoomView::OnSKeyDown(int id, Evas *e, Evas_Object *obj,
                        elm_object_focus_set(m->eoSlider, EINA_FALSE);
                        elm_object_focus_set(m->eoPhotocam, EINA_TRUE);
 
-                       elm_object_signal_emit(m->eoBase, SIG_UNFOCUS_ZOOMBAR, "");
+                       elm_object_signal_emit(Base(), SIG_UNFOCUS_ZOOMBAR, "");
                        break;
                default:
                        break;
@@ -796,7 +790,7 @@ void CPhotoZoomView::OnChanged(int id, Evas_Object *obj)
 
 void CPhotoZoomView::OnTimeout(void)
 {
-       elm_object_signal_emit(m->eoBase, SIG_HIDE, "");
+       elm_object_signal_emit(Base(), SIG_HIDE, "");
 
        if (elm_object_focus_get(m->eoSlider)) {
                elm_object_focus_set(m->eoSlider, EINA_FALSE);
@@ -811,7 +805,7 @@ void CPhotoZoomView::OnTimeout(void)
 
 Eina_Bool CPhotoZoomView::OnEvent(int type, void *event_info)
 {
-       elm_object_signal_emit(m->eoBase, SIG_SHOW, "");
+       elm_object_signal_emit(Base(), SIG_SHOW, "");
 
        m->timeout = EINA_FALSE;