Apply IActivatedListener for gengrid / genlist.
[profile/tv/apps/native/musicplayer.git] / include / song-layout.h
index fe1be2b..5a429c7 100644 (file)
 #define __SONG_LAYOUT_H__
 
 
-class CSongLayout : public CExtBaseLayout, public CListenerMgr, public IKeyDownListener {
+struct SSongItemInfo;
+
+class CSongLayout : public CExtBaseLayout, public CListenerMgr,
+       public IKeyDownListener, public IMouseMoveListener, public IActivatedListener {
 private:
        struct SSongLayout *m;
 
@@ -28,10 +31,25 @@ private:
        static void sm_CbRemoveListItem(void *data, Evas_Object *obj);
        static void sm_CbGenlistKeyDown(void *dt, Evas *e, Evas_Object *obj, void *ei);
 
-       static void sm_CbSelectItem(void *cookie);
-       void m_OnSelectItem(void);
+       static void sm_CbCtxtUpdate(void *dt, enum EActionType type, int lid);
+       void m_OnCtxtUpdate(EActionType type, int lid);
+
+       static void sm_CbCtxtClose(void *dt);
+       void m_OnCtxtClose(void);
+
+       static void sm_CbItemSelect(void *data, Evas_Object *obj, void *event_info);
+       void m_OnItemSelect(Evas_Object *obj, void *event_info);
+
+       static int sm_CbSortArtistAZ(const void *d1, const void *d2);
+       static int sm_CbSortArtistZA(const void *d1, const void *d2);
+       static int sm_CbSortAlbumAZ(const void *d1, const void *d2);
+       static int sm_CbSortAlbumZA(const void *d1, const void *d2);
 
 private:
+       SSongItemInfo *m_FindItemInfoFromItem(Eina_List *list, Elm_Object_Item *item);
+       void m_UpdateSongList(bool sort_flag);
+       void m_SortSongList(void);
+       void m_EmptySongList(bool sort_flag);
        void m_GotoPlayback(void);
        void m_GotoPlaybackUri(void);
        void m_CreateSongList(void);
@@ -40,7 +58,12 @@ protected:
        virtual void t_OnShow(void);
 
 public:
-       CSongLayout(const char *pLayoutId) : CExtBaseLayout(pLayoutId), IKeyDownListener(this), m(0) {}
+       CSongLayout(const char *pLayoutId) :
+               CExtBaseLayout(pLayoutId),
+               IKeyDownListener(this),
+               IMouseMoveListener(this),
+               IActivatedListener(this),
+               m(0) {}
        virtual ~CSongLayout() {}
 
        bool Create(CLayoutMgr *mgr, const char *uri);
@@ -50,6 +73,8 @@ public:
 
 public:
        virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev);
+       virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev);
+       virtual void OnActivated(int id, Evas_Object *obj, Elm_Object_Item *item);
 };