| LEFT | RIGHT | 
|---|
| 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, | 33     NOTIFICATION_TYPE_INFORMATION, | 
| 31     NOTIFICATION_TYPE_QUESTION, | 34     NOTIFICATION_TYPE_QUESTION, | 
| 32     NOTIFICATION_TYPE_CRITICAL | 35     NOTIFICATION_TYPE_CRITICAL | 
| 33   }; | 36   }; | 
| 34 | 37 | 
|  | 38   /** | 
|  | 39    * Wrapper for an Adblock Plus notification object. | 
|  | 40    */ | 
| 35   class Notification: public JsValue | 41   class Notification: public JsValue | 
| 36   { | 42   { | 
| 37     friend class FilterEngine; | 43     friend class FilterEngine; | 
| 38   protected: | 44   protected: | 
| 39     struct PrivateCtrArg{}; |  | 
| 40     static std::tr1::shared_ptr<Notification> JsValueToNotification(const JsValu
    ePtr& jsValue); | 45     static std::tr1::shared_ptr<Notification> JsValueToNotification(const JsValu
    ePtr& jsValue); | 
|  | 46     /** | 
|  | 47      * Constructor. | 
|  | 48      * @param jsValue `JsValuePtr` notification JavaScript object. | 
|  | 49      */ | 
|  | 50     explicit Notification(const JsValuePtr& jsValue); | 
| 41   public: | 51   public: | 
| 42     explicit Notification(const JsValuePtr& jsValue, PrivateCtrArg); | 52     /** | 
|  | 53      * Retrieves the type of this notification. | 
|  | 54      * @return Type of this notification. | 
|  | 55      */ | 
| 43     NotificationType GetType() const; | 56     NotificationType GetType() const; | 
|  | 57 | 
| 44     /** | 58     /** | 
| 45      * Localizes the texts of the supplied notification. | 59      * Retrieves the title of this notification. | 
| 46      * @return the translated texts. | 60      * @return Title of this notification. | 
| 47      */ | 61      */ | 
| 48     const std::string& GetTitle() const; | 62     const std::string& GetTitle() const; | 
|  | 63 | 
|  | 64     /** | 
|  | 65      * Retrieves the message of this notification. | 
|  | 66      * @return Message of this notification. | 
|  | 67      */ | 
| 49     const std::string& GetMessageString() const; | 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      */ | 
| 50     void MarkAsShown(); | 74     void MarkAsShown(); | 
| 51   private: | 75   private: | 
| 52     std::string title; | 76     std::string title; | 
| 53     std::string message; | 77     std::string message; | 
| 54     NotificationType type; | 78     NotificationType type; | 
| 55   }; | 79   }; | 
| 56   typedef std::tr1::shared_ptr<Notification> NotificationPtr; | 80   typedef std::tr1::shared_ptr<Notification> NotificationPtr; | 
| 57 } | 81 } | 
| 58 | 82 | 
| 59 #endif | 83 #endif | 
| LEFT | RIGHT | 
|---|