2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __CONTEXT_VIEW_H__
18 #define __CONTEXT_VIEW_H__
24 class CContextView : public CBaseView, public CListenerMgr,
25 public IKeyDownListener, public IKeyUpListener,
26 public IMouseMoveListener, public IMouseUpListener,
27 public IFocusedListener, public IUnfocusedListener {
29 struct SContextView* m;
32 static void sm_CbRltdCtntSelected(void *data, Evas_Object *obj, const char *emission, const char *source);
34 static void sm_CbPopupKeyPressed(void *data, Evas *e, Evas_Object *obj, void *ei);
35 void m_OnPopUpKeyPressed(Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev);
37 static void sm_CbRemove(void *data, Evas_Object *obj, void *ei);
38 void m_OnRemove(Evas_Object *obj);
40 static void sm_CbCancel(void *data, Evas_Object *obj, void *ei);
41 void m_OnCancel(Evas_Object *obj);
43 static int sm_CbSortPlaylist(const void *d1, const void *d2);
44 static void sm_CbPopupDeleted(void *data, Evas *e, Evas_Object *obj, void *ei);
46 static void sm_CbPopupBtnClicked(void *data, Evas_Object *obj, void *ei);
47 void m_OnPopupBtnClicked(Evas_Object *obj);
49 static Eina_Bool sm_CbSelectIdler(void *dt);
50 Eina_Bool m_OnSelectIdler(void);
55 Evas_Object *m_AddScroller(Evas_Object *base);
56 void m_SetBtnDownFocus(Evas_Object *btn);
57 void m_SetLayoutFocusOrder(Evas_Object *btn);
58 void m_SetBtnsFocusOrder(Evas_Object *btn, Evas_Object *prv,
59 int btnTypeIndex, int btnTypeFirst, int btnTypeLast);
60 bool m_AddBtnLabel(Evas_Object *btn, const char *txt);
61 bool m_AddBtnIcon(Evas_Object *btn, const char *icon);
62 bool m_AddBtnInfo(Evas_Object *btn, const char *icon, const char *txt);
63 Evas_Object *m_AddButton(Evas_Object *base);
64 Evas_Object *m_AddBtnBox(Evas_Object *base);
65 bool m_CreateBtnsPart(void);
66 Eina_List *m_OtherSongsOfArtist(char *artist, char *title);
67 Eina_List *m_OtherAlbumsOfArtist(char *artist, char *album);
68 Eina_List *m_OtherSimilarArtist(char *artist);
69 Eina_List *m_OtherSongsOfGenre(char *genre);
70 SRltvCtnt *m_InfoOfAlbum(char *album);
71 SRltvCtnt *m_InfoOfArtist(char *artist);
72 SRltvCtnt *m_InfoOfGenre(char *genre);
73 bool m_GetContextDetails(SContentInfo *cinfo, char **path,
74 char **title, char **subtitle, char **subtitle2,
75 char **rltvtitle, SRltvCtnt **ctntinfo,
76 Eina_List **rltvlist);
77 Evas_Object *m_AddRltvCtnt(Evas_Object *obj, char *name, char *icon);
78 bool m_AddTableContents(Eina_List *list);
79 Evas_Object *m_AddTable(Evas_Object *base);
80 bool m_CreateRltvContent(Eina_List *list);
81 bool m_CreateMoreinfoLayout(SRltvCtnt *rctnt, Evas_Object *img);
82 bool m_CreateInfoPart(void);
83 bool m_CreateFullView(void);
84 Evas_Object *m_CreatePlaylistPopup(void);
85 Evas_Object *m_CreateRemovePopup(Evas_Object *base, const char *msg,
86 Evas_Object_Event_Cb _close_cb, Evas_Smart_Cb _remove_cb,
87 Evas_Smart_Cb _cancel_cb, void *dt);
88 void m_DestroyPopup(void);
89 void m_HandleBtnSelected(int btnType);
90 void m_HandleMoreinfoSelected(Evas_Object *obj);
93 virtual void t_OnShow(void);
94 virtual void t_OnHide(void);
95 virtual void t_OnUpdate(void* data);
98 CContextView(const char *pViewId) :
100 IKeyDownListener(this),
101 IKeyUpListener(this),
102 IMouseMoveListener(this),
103 IMouseUpListener(this),
104 IFocusedListener(this),
105 IUnfocusedListener(this),
107 virtual ~CContextView() {}
109 virtual bool Create(void *data);
110 virtual void Destroy(void);
112 virtual Evas_Object* Base(void);
115 virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev);
116 virtual void OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev);
117 virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev);
118 virtual void OnMouseUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Up *ev);
119 virtual void OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item);
120 virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item);
124 #endif /*__CONTEXT_VIEW_H__*/