Applied latest source code
[apps/native/preloaded/MusicPlayer.git] / inc / MpArtistContentListForm.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.1 (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
7 //
8 //     http://floralicense.org/license/
9 //
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.
15 //
16
17 /**
18  * @file                MpArtistContentListForm.h
19  * @brief               This is the header file for ArtistContentListForm class.
20  */
21
22 #ifndef _MP_ARTIST_CONTENT_LIST_FORM_H_
23 #define _MP_ARTIST_CONTENT_LIST_FORM_H_
24
25 #include "MpContentListForm.h"
26 #include "MpTableviewItemTag.h"
27 #include "MpThumbnailBase.h"
28
29 class ArtistListPresentationModel;
30
31 class ArtistContentListForm
32         : public ContentListForm
33         , public ThumbnailBase
34         , public Tizen::Ui::Controls::IGroupedTableViewItemProvider
35         , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener
36         , public Tizen::App::IAppControlResponseListener
37 {
38 public:
39         ArtistContentListForm(void);
40         ~ArtistContentListForm(void);
41
42         result Initialize(void);
43
44 private:
45         virtual result OnInitializing(void);
46         virtual result OnTerminating(void);
47         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
48                                                                         const Tizen::Ui::Scenes::SceneId& currentSceneId,
49                                                                         Tizen::Base::Collection::IList* pArgs);
50         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
51                                                                         const Tizen::Ui::Scenes::SceneId& nextSceneId);
52         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
53
54         virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId,
55                                 const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult,
56                                 const Tizen::Base::Collection::IMap* pExtraData);
57
58         virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex,
59                                                                                         Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
60         virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex,
61                                                                                         Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
62         virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex,
63                                                                                         int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
64         virtual int GetGroupCount(void);
65         virtual int GetItemCount(int groupIndex);
66         virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
67         virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
68         virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
69         virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
70         virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
71         virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
72         virtual int GetDefaultItemHeight(void);
73         virtual int GetDefaultGroupItemHeight(void);
74
75         virtual void OnThumbnailInfoReveivedN(ThumbnailInfo* pThumbnailInfo);
76         virtual void OnFormMenuRequested(Tizen::Ui::Controls::Form& source);
77         virtual void OnFontSizeChanged(void);
78
79 protected:
80         virtual int GetCheckedItemCount(void);
81         virtual Tizen::Base::Collection::IList* GetPickerArgumentListN(PickerType pickerType, PickerArgumentType argumentType);
82
83         virtual bool IsEmptyContentList(void);
84
85         virtual result SetHeader(void);
86         virtual void SetItemCheckedAll(bool isChecked);
87
88         virtual void UpdateTableView(void);
89         virtual void UpdateContentList(void);
90         virtual void RemoveCheckedTableviewItem(bool itemRemove);
91 private:
92         result Construct(void);
93         result CreateTableViewItem(Tizen::Ui::Controls::TableViewItem& parent, const ContentInformation& contentInfo);
94         result CreateTableViewGroupItem(Tizen::Ui::Controls::TableViewGroupItem& parent, const ContentInformation& contentInfo);
95
96         ContentInformation* GetContentInformationActivatedStateContextItem(void);
97
98         result InitCheckedItemMultiHashMap(void);
99         void RemoveCheckedItemMultiHashMap(void);
100
101         result AddCheckedItem(int groupIndex, int itemIndex);
102         result RemoveCheckedItem(int groupIndex, int itemIndex);
103         result SetItemChecked(int groupIndex, int itemIndex, bool check);
104         void SetItemCheckedAt(int groupIndex, bool check);
105         void SetItemCheckedStateChanged(Tizen::Ui::Controls::TableViewItemStatus status, int groupIndex, int itemIndex);
106
107         int GetCheckedItemCountAt(int groupIndex);
108         int GetTotalItemCount(void);
109         int GetOffsetContentIndex(const int groupIndex);
110
111         Tizen::Base::Collection::ArrayList* MakePlayerSceneParam(int albumIndex, int startIndex);
112         result RemoveConentCheckedAll(void);
113
114         result EventHandlerContextMenuItemCaller(void);
115         result EventHandlerContextMenuItemCall(ContentInformation& contentInfo);
116         result EventHandlerContextMenuItemMessageEmail(ContentInformation& contentInfo, Tizen::Base::String providerId);
117
118 private:
119         Tizen::Ui::Controls::GroupedTableView* __pContentGroupedTableView;
120         Tizen::Ui::Controls::TableViewContextItem* __pTableViewContextItem;
121         Tizen::Base::Collection::MultiHashMapT<int, int>* __pCheckedItemCountMultiHashMap;
122         Tizen::Base::String __artistName;
123         Tizen::Graphics::Bitmap* __pThumbnail;
124
125         TableviewItemTag __activatedStateContextItem;
126         ArtistListPresentationModel* __pPresentationModel;
127
128         int __currentContentIndex;
129 };
130
131 #endif // _MP_ARTIST_CONTENT_LIST_FORM_H_