TOPBTN_SORT,
};
+enum layoutId {
+ ALL_LAYOUT,
+ PHOTO_LAYOUT,
+ VIDEO_LAYOUT,
+ MUSIC_LAYOUT
+};
+
const char *source_arg[] = {
"all",
"tv",
N_(""),
};
+const char* _get_layout_id(int curLayoutId){
+ switch(curLayoutId)
+ {
+ case ALL_LAYOUT:
+ return FB_ALL_LAYOUT;
+ case PHOTO_LAYOUT:
+ return FB_PHOTO_LAYOUT;
+ case VIDEO_LAYOUT:
+ return FB_VIDEO_LAYOUT;
+ case MUSIC_LAYOUT:
+ return FB_MUSIC_LAYOUT;
+ }
+ return FB_ALL_LAYOUT; // default
+}
+
struct SFbBaseView {
Evas_Object *eoWin;
Evas_Object *eoBase;
CLayoutMgr *pLayoutMgr;
- char* *pCurrentLayoutId;
+ int curLayoutId;
CFbAllLayout *pFbAllLayout;
- //CFbPhotoLayout *pFbPhotoLayout;
- //CFbMusicLayout *pFbMusicLayout;
- //CFbVideoLayout *pFbVideoLayout;
+ CFbPhotoLayout *pFbPhotoLayout;
+ CFbVideoLayout *pFbVideoLayout;
+ CFbMusicLayout *pFbMusicLayout;
SFbBaseView() {
int a;
for (a = 0; a < TOTAL_GROUP_BTNS; a++)
delete pHandlerGroup[a];
}
-
- class CHandlerBase : public CListenerMgr, public IKeyDownListener {
+
+ class CHandlerBase : public CListenerMgr, public IKeyDownListener, public IKeyUpListener{
SFbBaseView *m;
public:
- CHandlerBase(SFbBaseView *ins) : IKeyDownListener(this) { m = ins; }
+ CHandlerBase(SFbBaseView *ins) : IKeyDownListener(this), IKeyUpListener(this) { m = ins; }
virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) {
+ _DBG("m->curLayoutId = %d",m->curLayoutId);
if (!strcmp(ev->keyname, KEY_EXIT))
elm_exit();
- else if (!strcmp(ev->keyname, KEY_ENTER)) {
+ }
+ virtual void OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev)
+ {
+ _DBG("m->curLayoutId = %d",m->curLayoutId);
+ if (!strcmp(ev->keyname, KEY_ENTER) || !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
if (elm_object_focus_get(m->eoSelectedBtnGroup)) {
- m->pFbAllLayout->SetFocus(EINA_TRUE);
- // TODO: Each layout SetFocus???
+ switch(m->curLayoutId)
+ {
+ case ALL_LAYOUT:
+ m->pFbAllLayout->SetFocus(EINA_TRUE);
+ break;
+ case PHOTO_LAYOUT:
+ m->pFbPhotoLayout->SetFocus(EINA_TRUE);
+ break;
+ case VIDEO_LAYOUT:
+ m->pFbVideoLayout->SetFocus(EINA_TRUE);
+ break;
+ case MUSIC_LAYOUT:
+ m->pFbMusicLayout->SetFocus(EINA_TRUE);
+ break;
+ }
}
}
+
}
} *pHandlerBase;
switch (instance->Type()) {
case CCtxPopup::TOPBTN_SORT:
elm_object_text_set(m->eoBtnSort, text);
-#if 1
- m->pFbAllLayout->Update(true);
-#else
- m->pLayoutMgr->Show(Current_layout);
-#endif
+ switch(m->curLayoutId)
+ {
+ case ALL_LAYOUT:
+ m->pFbAllLayout->SetUpdateFlag(true);
+ break;
+ case PHOTO_LAYOUT:
+ m->pFbPhotoLayout->SetUpdateFlag(true);
+ break;
+ case VIDEO_LAYOUT:
+ m->pFbVideoLayout->SetUpdateFlag(true);
+ break;
+ case MUSIC_LAYOUT:
+ m->pFbMusicLayout->SetUpdateFlag(true);
+ break;
+ }
+ m->pLayoutMgr->Show(_get_layout_id(m->curLayoutId));
break;
case CCtxPopup::TOPBTN_SOURCE:
elm_object_text_set(m->eoBtnSource, text);
-#if 1
- m->pFbAllLayout->Update(false);
-#else
- m->pLayoutMgr->Show(Current_layout);
-#endif
+ switch(m->curLayoutId)
+ {
+ case ALL_LAYOUT:
+ m->pFbAllLayout->SetUpdateFlag(true);
+ break;
+ case PHOTO_LAYOUT:
+ m->pFbPhotoLayout->SetUpdateFlag(true);
+ break;
+ case VIDEO_LAYOUT:
+ m->pFbVideoLayout->SetUpdateFlag(true);
+ break;
+ case MUSIC_LAYOUT:
+ m->pFbMusicLayout->SetUpdateFlag(true);
+ break;
+ }
+ m->pLayoutMgr->Show(_get_layout_id(m->curLayoutId));
break;
default:
CHandlerButton(SFbBaseView *ins) : IKeyDownListener(this), IMouseMoveListener(this), IMouseClickedListener(this) { m = ins; }
virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) {
- if (!strcmp(ev->keyname, KEY_BACK))
+ _DBG("id = %d", id);
+ if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE))
elm_object_focus_set(m->eoSelectedBtnGroup, EINA_TRUE);
}
virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev) {
+ _DBG("id = %d", id);
if (!elm_object_focus_get(obj))
elm_object_focus_set(obj, EINA_TRUE);
}
virtual void OnMouseClicked(int id, Evas_Object *obj) {
+ _DBG("id = %d", id);
CSourceCtxPopup::SCallback cb;
cb.cookie = m;
cb.onSelected = sm_CbCtxPopupSelected;
IMouseClickedListener(this) { m = ins; }
virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev) {
+ _DBG("id = %d", id);
if (!elm_object_focus_get(obj))
elm_object_focus_set(obj, EINA_TRUE);
}
virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) {
- if (!strcmp(ev->keyname, KEY_BACK))
+ _DBG("id = %d", id);
+ if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE))
elm_exit();
}
virtual void OnMouseClicked(int id, Evas_Object *obj) {
m->eoSelectedBtnGroup = obj;
elm_object_signal_emit(m->eoSelectedBtnGroup, FBR_SIGNAL_GROUP_SELECTED, "");
-#if 1
- m->pFbAllLayout->Update(false);
- // TODO: not update, it should be "Show" as each layout
-#else
switch(id)
{
case E_GRP_ALL:
- m->pLayoutMgr->Show(FB_ALL_LAYOUT);
+ m->curLayoutId = ALL_LAYOUT;
break;
case E_GRP_PHOTO:
- m->pLayoutMgr->Show(FB_PHOTO_LAYOUT);
+ m->curLayoutId = PHOTO_LAYOUT;
break;
case E_GRP_VIDEO:
- m->pLayoutMgr->Show(FB_VIDEO_LAYOUT);
+ m->curLayoutId = VIDEO_LAYOUT;
break;
case E_GRP_MUSIC:
- m->pLayoutMgr->Show(FB_MUSIC_LAYOUT);
+ m->curLayoutId = MUSIC_LAYOUT;
break;
default:
- _DBG("Fix it: it can not make it , MouseClicked");
+ _ERR("Fix it: it can not make it , MouseClicked");
+ m->curLayoutId = ALL_LAYOUT; // default
break;
-
}
-#endif
+ _DBG("id = %d, m->curLayoutId = %d", id, m->curLayoutId);
+ m->pLayoutMgr->Show(_get_layout_id(m->curLayoutId));
}
} *pHandlerGroup[TOTAL_GROUP_BTNS];
};
-
Evas_Object *_add_button(Evas_Object *box)
{
Evas_Object *button;
void CFbBaseView::UpdateEmptyFocusSequence(void)
{
- int i;
_DBG("");
- for (i = 0; i < TOTAL_GROUP_BTNS; i++)
- elm_object_focus_next_object_set(m->eoBtnGroup[i], m->eoBtnSort, ELM_FOCUS_RIGHT);
-
- elm_object_focus_next_object_set(m->eoBtnGroup[E_GRP_ALL], m->eoBtnSort, ELM_FOCUS_UP);
- elm_object_focus_next_object_set(m->eoBtnSort, m->eoBtnGroup[E_GRP_ALL], ELM_FOCUS_DOWN);
- elm_object_focus_next_object_set(m->eoBtnSource, m->eoBtnGroup[E_GRP_ALL], ELM_FOCUS_DOWN);
-
if (t_SelectedGroupButton() == m->eoBtnGroup[E_GRP_ALL]) {
elm_object_part_text_set(m->eoBase, FBR_PART_NO_CONTENT, _(NO_FILE_MESSAGE));
elm_object_part_text_set(m->eoBase, FBR_PART_NO_CONTENT_SUB, _(NO_FILE_MESSAGE_SUB));
void CFbBaseView::UpdatedGrid(void)
{
- int i;
-
- for (i = 0; i < TOTAL_GROUP_BTNS; i++)
- elm_object_focus_next_object_set(m->eoBtnGroup[i],
- m->pFbAllLayout->Grid(), ELM_FOCUS_RIGHT);
-
- elm_object_focus_next_object_set(m->eoBtnGroup[E_GRP_ALL],
- m->eoBtnSort, ELM_FOCUS_UP);
- elm_object_focus_next_object_set(m->eoBtnSort,
- m->eoBtnGroup[E_GRP_ALL], ELM_FOCUS_LEFT);
- elm_object_focus_next_object_set(m->eoBtnSort,
- m->pFbAllLayout->Grid(), ELM_FOCUS_DOWN);
- elm_object_focus_next_object_set(m->eoBtnSource,
- m->pFbAllLayout->Grid(), ELM_FOCUS_DOWN);
-
elm_object_part_text_set(m->eoBase, FBR_PART_NO_CONTENT, "");
elm_object_part_text_set(m->eoBase, FBR_PART_NO_CONTENT_SUB, "");
}
struct _btn_info btninfo[TOTAL_TOP_BTNS];
btninfo[TOPBTN_SOURCE].style = FBR_STYLE_SOURCE_BTN;
btninfo[TOPBTN_SOURCE].part = FBR_PART_SOURCE_HOVERSEL;
-
+
btninfo[TOPBTN_SORT].style = FBR_STYLE_SORT_BTN;
btninfo[TOPBTN_SORT].part = FBR_PART_SORT_HOVERSEL;
elm_box_pack_end(box, m->eoBtnGroup[i]);
elm_object_style_set(m->eoBtnGroup[i], FBR_STYLE_GROUPBTN);
elm_object_text_set(m->eoBtnGroup[i], _(btninfo[i].txt));
-
+
m->pHandlerGroup[i]->Connect(m->eoBtnGroup[i], i);
ic = elm_image_add(m->eoBtnGroup[i]);
if (!ic)
continue;
- _DBG("");
snprintf(buf, sizeof(buf), "%s/%s", IMAGEDIR,
btninfo[i].icon_path);
elm_object_part_content_set(m->eoBtnGroup[i],
FBR_PART_ELM_SWALLOWICON, ic);
}
- _DBG("");
t_SetSelectedGroupButton(m->eoBtnGroup[E_GRP_ALL]);
- _DBG("");
- elm_object_signal_emit(m->eoBtnGroup[E_GRP_ALL],
- FBR_SIGNAL_GROUP_SELECTED, "");
+ elm_object_signal_emit(m->eoBtnGroup[E_GRP_ALL], FBR_SIGNAL_GROUP_SELECTED, "");
elm_object_focus_set(m->eoBtnGroup[E_GRP_ALL], EINA_TRUE);
elm_object_part_content_set(m->eoBase, FBR_PART_GROUPBTN_BOX, box);
+
+ elm_object_focus_next_object_set(m->eoBtnGroup[E_GRP_ALL], m->eoBtnGroup[E_GRP_MUSIC], ELM_FOCUS_UP);
+ elm_object_focus_next_object_set(m->eoBtnGroup[E_GRP_MUSIC], m->eoBtnGroup[E_GRP_ALL], ELM_FOCUS_DOWN);
}
void CFbBaseView::t_CreateFullView(void)
{
+ _DBG();
t_CreateTopSession();
t_CreateLeftSession();
- _DBG("UpdateLayout");
-#if 1
- m->pFbAllLayout->Update(false);
-#else
- m->pLayoutMgr->Show(Current_layout);
-#endif
+ m->pLayoutMgr->Show(_get_layout_id(m->curLayoutId));
}
void CFbBaseView::t_SetSelectedGroupButton(Evas_Object* obj)
{
- m->eoSelectedBtnGroup = obj;
- int idx = -1;
- int a;
- for (a = 0; a < TOTAL_GROUP_BTNS; a++) {
+ for (int a = 0; a < TOTAL_GROUP_BTNS; a++) {
if (m->eoBtnGroup[a] == obj)
- idx = a;
+ {
+ m->eoSelectedBtnGroup = obj;
+ CInfo::SetGroupIndex(a);
+ break;
+ }
}
- CInfo::SetGroupIndex(idx);
}
Evas_Object* CFbBaseView::t_SelectedGroupButton(void)
void CFbBaseView::t_OnUpdate(void *data)
{
- // TODO: When does this function is called? If it don't be used, Remove it.
- _DBG();
- m->pFbAllLayout->Action();
+ switch(m->curLayoutId)
+ {
+ case ALL_LAYOUT:
+ m->pFbAllLayout->Action();
+ break;
+ case PHOTO_LAYOUT:
+ m->pFbPhotoLayout->Action();
+ break;
+ case VIDEO_LAYOUT:
+ m->pFbVideoLayout->Action();
+ break;
+ case MUSIC_LAYOUT:
+ m->pFbMusicLayout->Action();
+ break;
+ }
}
void CFbBaseView::t_OnHide(void)
_CHECK(m->pLayoutMgr = new CLayoutMgr)
_CHECK(m->pLayoutMgr->Create(eoBase, NULL))
_CHECK(m->pFbAllLayout = new CFbAllLayout(FB_ALL_LAYOUT))
- //_CHECK(m->pFbPhotoLayout = new CFbPhotoLayout(FB_PHOTO_LAYOUT))
- //_CHECK(m->pFbVideoLayout = new CFbVideoLayout(FB_VIDEO_LAYOUT))
- //_CHECK(m->pFbMusicLayout = new CFbMusicLayout(FB_MUSIC_LAYOUT))
+ _CHECK(m->pFbPhotoLayout = new CFbPhotoLayout(FB_PHOTO_LAYOUT))
+ _CHECK(m->pFbVideoLayout = new CFbVideoLayout(FB_VIDEO_LAYOUT))
+ _CHECK(m->pFbMusicLayout = new CFbMusicLayout(FB_MUSIC_LAYOUT))
_CHECK(m->pFbAllLayout->Create(m->pLayoutMgr, NULL))
- //_CHECK(m->pFbPhotoLayout->Create(m->pLayoutMgr, NULL))
- //_CHECK(m->pFbVideoLayout->Create(m->pLayoutMgr, NULL))
- //_CHECK(m->pFbMusicLayout->Create(m->pLayoutMgr, NULL))
+ _CHECK(m->pFbPhotoLayout->Create(m->pLayoutMgr, NULL))
+ _CHECK(m->pFbVideoLayout->Create(m->pLayoutMgr, NULL))
+ _CHECK(m->pFbMusicLayout->Create(m->pLayoutMgr, NULL))
_CHECK(m->pLayoutMgr->AddLayout(m->pFbAllLayout))
- //_CHECK(m->pLayoutMgr->AddLayout(m->pFbPhotoLayout))
- //_CHECK(m->pLayoutMgr->AddLayout(m->pFbVideoLayout))
- //_CHECK(m->pLayoutMgr->AddLayout(m->pFbMusicLayout))
- _CHECK(CUsbConnectionListener::Create())
- _CHECK(CMediaContentDbUpdateListener::Create())
-
+ _CHECK(m->pLayoutMgr->AddLayout(m->pFbPhotoLayout))
+ _CHECK(m->pLayoutMgr->AddLayout(m->pFbVideoLayout))
+ _CHECK(m->pLayoutMgr->AddLayout(m->pFbMusicLayout))
+ _COMMAND{
+ if(!CUsbConnectionListener::Create())
+ _ERR("Fail to create CUsbConnectionListener()");
+ if(!CMediaContentDbUpdateListener::Create())
+ _ERR("Fail to create CMediaContentDbUpdateListener()");
+ }
_WHEN_SUCCESS{}
- _CHECK_FAIL{ CMediaContentDbUpdateListener::Destroy(); }
- _CHECK_FAIL{ CUsbConnectionListener::Destroy(); }
- //_CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbMusicLayout); }
- //_CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbVideoLayout); }
- //_CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbPhotoLayout); }
+ _CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbMusicLayout); }
+ _CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbVideoLayout); }
+ _CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbPhotoLayout); }
_CHECK_FAIL{ m->pLayoutMgr->RemoveLayout(m->pFbAllLayout); }
- //_CHECK_FAIL{ m->pFbMusicLayout->Destroy(); }
- //_CHECK_FAIL{ m->pFbVideoLayout->Destroy(); }
- //_CHECK_FAIL{ m->pFbPhotoLayout->Destroy(); }
+ _CHECK_FAIL{ m->pFbMusicLayout->Destroy(); }
+ _CHECK_FAIL{ m->pFbVideoLayout->Destroy(); }
+ _CHECK_FAIL{ m->pFbPhotoLayout->Destroy(); }
_CHECK_FAIL{ m->pFbAllLayout->Destroy(); }
- //_CHECK_FAIL{ delete m->pFbMusicLayout; m->pFbMusicLayout = NULL; }
- //_CHECK_FAIL{ delete m->pFbVideoLayout; m->pFbVideoLayout = NULL; }
- //_CHECK_FAIL{ delete m->pFbPhotoLayout; m->pFbPhotoLayout = NULL; }
+ _CHECK_FAIL{ delete m->pFbMusicLayout; m->pFbMusicLayout = NULL; }
+ _CHECK_FAIL{ delete m->pFbVideoLayout; m->pFbVideoLayout = NULL; }
+ _CHECK_FAIL{ delete m->pFbPhotoLayout; m->pFbPhotoLayout = NULL; }
_CHECK_FAIL{ delete m->pFbAllLayout; m->pFbAllLayout = NULL; }
_CHECK_FAIL{ m->pLayoutMgr->Destroy(); }
_CHECK_FAIL{ delete m->pLayoutMgr; m->pLayoutMgr = NULL; }
// original create grid
CInfo::SetSortType(0/*CSort::SORT_NAME_AZ*/);
evas_object_data_set(eoBase, BASE_VIEW_DATA, this);
- m->pLayoutMgr->Show(FB_ALL_LAYOUT);
+ m->curLayoutId = ALL_LAYOUT;
+ _DBG("curLayoutId = %s", _get_layout_id(m->curLayoutId));
t_CreateFullView();
elm_object_focus_allow_set(eoBase, EINA_FALSE);
m->pHandlerBase->Connect(eoBase);
ASSERT(m);
CBaseView::Destroy();
- CMediaContentDbUpdateListener::Destroy();
- CUsbConnectionListener::Destroy();
-#if 0
+ if(CMediaContentDbUpdateListener::FlagCreate())
+ CMediaContentDbUpdateListener::Destroy();
+ if(CUsbConnectionListener::FlagCreate())
+ CUsbConnectionListener::Destroy();
+
m->pLayoutMgr->RemoveLayout(m->pFbMusicLayout);
m->pFbMusicLayout->Destroy();
delete m->pFbMusicLayout;
-
+
m->pLayoutMgr->RemoveLayout(m->pFbVideoLayout);
m->pFbVideoLayout->Destroy();
delete m->pFbVideoLayout;
m->pLayoutMgr->RemoveLayout(m->pFbPhotoLayout);
m->pFbPhotoLayout->Destroy();
delete m->pFbPhotoLayout;
-#endif
m->pLayoutMgr->RemoveLayout(m->pFbAllLayout);
m->pFbAllLayout->Destroy();
}
-void CFbBaseView::OnConnect(void)
+void CFbBaseView::OnStatusChanged(SUsbHostDeviceStatus status)
{
- m->pPopup = new CPopup;
- if (!m->pPopup)
- return;
- if (!m->pPopup->Create(m->eoBase)) {
- delete m->pPopup;
- m->pPopup = NULL;
- return;
- }
+ if(status == USB_HOST_DEV_CONNECTED) {
+ m->pPopup = new CPopup;
+ if (!m->pPopup)
+ return;
+ if (!m->pPopup->Create(m->eoBase)) {
+ delete m->pPopup;
+ m->pPopup = NULL;
+ return;
+ }
- if (CInfo::SourceType() == E_USB) {
- if (!FlagConnected()) {
- CInfo::SetSourceType(E_ALL);
- elm_object_text_set(m->eoBtnSource,
- _(CSourceCtxPopup::SourceText(CInfo::SourceType())));
+ if (CInfo::SourceType() == E_USB) {
+ if (!FlagConnected()) {
+ CInfo::SetSourceType(E_ALL);
+ elm_object_text_set(m->eoBtnSource,
+ _(CSourceCtxPopup::SourceText(CInfo::SourceType())));
+ }
}
}
+ /* FIXME: should add disconnected flow */
}
m->pCtxPopup = NULL;
}
if (CInfo::SourceType() != E_TV) {
-#if 1
- m->pFbAllLayout->Update(false);
-#else
- m->pLayoutMgr->Show(Current_layout);
-#endif
+ m->pLayoutMgr->Show(_get_layout_id(m->curLayoutId));
elm_object_focus_set(t_SelectedGroupButton(), EINA_TRUE);
}
}