Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: include/AdblockPlus/Notification.h

Issue 5797488346791936: Issue 1107 - Support notifications (Closed)
Left Patch Set: Created Jan. 19, 2015, 12:50 p.m.
Right Patch Set: fix comment Created Jan. 23, 2015, 3:56 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « include/AdblockPlus/FilterEngine.h ('k') | lib/api.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2015 Eyeo GmbH 3 * Copyright (C) 2006-2015 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 #ifndef ADBLOCK_PLUS_NOTIFICATION_H 18 #ifndef ADBLOCK_PLUS_NOTIFICATION_H
19 #define ADBLOCK_PLUS_NOTIFICATION_H 19 #define ADBLOCK_PLUS_NOTIFICATION_H
20 20
21 #include <string> 21 #include <string>
22 #include <vector> 22 #include <vector>
23 #include <memory> 23 #include "tr1_memory.h"
24 24
25 namespace AdblockPlus 25 namespace AdblockPlus
26 { 26 {
27 class FilterEngine; 27 class FilterEngine;
28 /**
29 * Possible notification types.
30 */
28 enum NotificationType 31 enum NotificationType
29 { 32 {
30 NOTIFICATION_TYPE_INFORMATION = 0, 33 NOTIFICATION_TYPE_INFORMATION,
31 NOTIFICATION_TYPE_QUESTION = 1, 34 NOTIFICATION_TYPE_QUESTION,
32 NOTIFICATION_TYPE_CRITICAL = 2 35 NOTIFICATION_TYPE_CRITICAL
33 }; 36 };
34 37
35 struct NotificationTexts 38 /**
36 { 39 * Wrapper for an Adblock Plus notification object.
37 std::string title; 40 */
38 std::string message; 41 class Notification: public JsValue
39 };
40
41 class Notification : public JsValue
42 { 42 {
43 friend class FilterEngine; 43 friend class FilterEngine;
44 protected: 44 protected:
45 struct PrivateCtrArg{};
46 static std::tr1::shared_ptr<Notification> JsValueToNotification(const JsValu ePtr& jsValue); 45 static std::tr1::shared_ptr<Notification> JsValueToNotification(const JsValu ePtr& jsValue);
47 /// @param jsText is javascript object returned by getLocalizedTexts. 46 /**
48 static NotificationTexts JsTextsToNotificationTexts(const JsValue& jsText); 47 * Constructor.
48 * @param jsValue `JsValuePtr` notification JavaScript object.
49 */
50 explicit Notification(const JsValuePtr& jsValue);
49 public: 51 public:
50 Notification(NotificationType type, const std::string& id, const JsValuePtr& jsValue, PrivateCtrArg); 52 /**
51 Notification(const JsValuePtr& value, PrivateCtrArg); 53 * Retrieves the type of this notification.
52 std::string GetId() const; 54 * @return Type of this notification.
55 */
53 NotificationType GetType() const; 56 NotificationType GetType() const;
54 void SetTitle(const std::string& value, const std::string& locale = std::str ing()); 57
55 void SetMessage(const std::string& value, const std::string& locale = std::s tring()); 58 /**
56 std::vector<std::string> GetUrlFilters() const; 59 * Retrieves the title of this notification.
57 void AddUrlFilter(const std::string& value); 60 * @return Title of this notification.
61 */
62 const std::string& GetTitle() const;
63
64 /**
65 * Retrieves the message of this notification.
66 * @return Message of this notification.
67 */
68 const std::string& GetMessageString() const;
69
70 /**
71 * Marks this notification as shown. It is only relevant for question
72 * notifications. Other notifications are marked automatically.
73 */
74 void MarkAsShown();
58 private: 75 private:
59 void SetMultilingualProperty(const std::string& propertyName, const std::str ing& value, const std::string& locale); 76 std::string title;
77 std::string message;
78 NotificationType type;
60 }; 79 };
80 typedef std::tr1::shared_ptr<Notification> NotificationPtr;
61 } 81 }
62 82
63 #endif 83 #endif
LEFTRIGHT

Powered by Google App Engine
This is Rietveld