wrt-plugins-tizen_0.4.23
[platform/framework/web/wrt-plugins-tizen.git] / src / Notification / StatusNotification.h
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #ifndef __TIZEN_STATUS_NOTIFICATION_H__
19 #define __TIZEN_STATUS_NOTIFICATION_H__
20
21 #include <MultiCallbackUserData.h>
22
23 #include <app.h>
24 #include <notification.h>
25
26 #include <JSApplicationControl.h>
27 #include "NotificationTypes.h"
28 #include "NotificationDetailInfo.h"
29
30 using namespace DeviceAPI::Common;
31
32 namespace DeviceAPI {
33 namespace Notification {
34
35 class StatusNotification
36 {
37
38 public:
39         StatusNotification(NotificationType type);              //type.
40         StatusNotification(void* noti);                                 // notification 
41         StatusNotification(int privID);                         //private ID of Notification.
42         
43         ~StatusNotification();
44         
45         NotificationProgressType getProgressType()
46         {
47                 return m_progressType;
48         }
49
50         std::string getEnumProgressType();
51         
52         void setProgressType( NotificationProgressType type)
53         {
54                 m_progressType = type;
55         }
56         void setUpdatedFlag(bool value)
57         {
58              if (value)
59                 LoggerD("set True");
60              m_notiUpdated = value;
61         }
62         
63         bool getUpdatedFlag()
64         {
65              return m_notiUpdated;
66         }
67
68         bool getLaunchFlag()
69         {
70             return m_launchFlag;
71         }
72
73         void setLaunchFlag(bool value)
74         {
75             m_launchFlag = value;
76         }
77
78         NotificationType getNotiType()
79         {
80                 return m_notiType;
81         }
82
83         void setNotiType(NotificationType type)
84         {
85                 m_notiType = type;
86         }
87         
88         int getID();
89         std::string getStatusType();
90         void setStatusType(std::string type);
91         
92         time_t getPostedTime();
93         std::string getTitle();
94         void setTitle(std::string title);
95         
96         std::string getContent();
97         char* getStrContent();
98         void setContent(std::string content);
99                 
100         std::string getIconPath() ;     
101         void setIconPath(const std::string& iconPath) ;
102
103         std::string getSoundPath() ;
104         void setSoundPath(const std::string& sound) ;
105         
106         bool getDefaultVibration() ;    
107         void setDefaultVibration(const bool& vibration) ;
108         
109         double getProgressValue() ;
110         void setProgressValue(const double & progressValue) ;
111         
112         std::string getSubIconPath() ;
113         void setSubIconPath(const std::string& subIconPath) ;
114
115 #if 0   
116         std::vector<std::string> getInformations() ;
117         std::string getInformation(int index)  ;
118         void setInformations(std::vector<std::string>& infos) ;
119         void setInformation( const std::string& info, int index) ;
120         
121         std::vector<std::string> getSubInformations() ;
122         std::string getSubInformation(int index)  ;
123         void setSubInformations(std::vector<std::string>& infos) ;
124         void setSubInformation( const std::string& info, int index) ;
125 #endif
126
127         std::vector<std::string> getThumbnails();
128         void setThumbnails(std::vector<std::string> thumbs);
129         
130         std::string getBackground() ;
131         void setBackground(const std::string imagePath) ;
132         
133         long getNumber() ;
134         const char* getStrNumber() ;
135         void setNumber(const long number) ;
136         
137         //void setStatusType(NotificationType type);
138         DeviceAPI::Application::ApplicationControlPtr getApplicationControl();
139         void setApplicationControl(DeviceAPI::Application::ApplicationControlPtr control);
140         void setApplicationId(const std::string& appId);
141         std::string getApplicationId();
142
143         void* getNotificationHandle();
144         void setNotificationHandle(void *handle);
145
146         service_h getService();
147
148         //Detail Info
149         std::vector<NotificationDetailInfo*> getDetailInfos() const;
150         void setDetailInfos(const std::vector<NotificationDetailInfo*> value);
151         int getDetailInfosNum() const;
152         void addDetailInfo(NotificationDetailInfo* value);
153         void clearDetailInfos();
154
155 private:
156                 
157         void loadThumbnails();
158         void setThumbnail( const std::string& info, int index);
159         std::string getThumbnail(int index);
160
161         std::string getInformation(int index)  ;
162         void setInformation( const std::string& info, int index) ;
163
164         std::string getSubInformation(int index)  ;
165         void setSubInformation( const std::string& info, int index) ;   
166         
167         void loadDetailInfos();
168                 
169 protected:
170
171         //NotificationType m_notiType;
172         NotificationType m_notiType;
173         service_h m_service;
174         notification_h m_notiHandle;
175         NotificationProgressType m_progressType;
176         bool m_notiUpdated;
177         bool m_launchFlag;
178         
179         std::vector<std::string> m_thumbs;                              //thumbnail images path
180         std::vector<NotificationDetailInfo*> m_detailInfos;   // detail Info
181         
182 };
183
184 } // Notification
185 } // DeviceAPI
186
187 #endif // __TIZEN_STATUS_NOTIFICATION_H__