Index: include/AdblockPlus/FilterEngine.h |
diff --git a/include/AdblockPlus/FilterEngine.h b/include/AdblockPlus/FilterEngine.h |
index a6fa146265620ebd4faa813689ae907955092c8c..1aabd2eaa2e188a5ab216b47d694a5094835dc0c 100644 |
--- a/include/AdblockPlus/FilterEngine.h |
+++ b/include/AdblockPlus/FilterEngine.h |
@@ -186,6 +186,12 @@ namespace AdblockPlus |
typedef std::tr1::function<void(const std::string&, const JsValuePtr)> FilterChangeCallback; |
/** |
+ * Callback type invoked when a new notification should be shown. |
+ * The parameter is the Notification object to be shown. |
+ */ |
+ typedef std::tr1::function<void(const NotificationPtr&)> NotificationAvailableCallback; |
+ |
+ /** |
* Constructor. |
* @param jsEngine `JsEngine` instance used to run JavaScript code |
* internally. |
@@ -238,12 +244,23 @@ namespace AdblockPlus |
std::vector<SubscriptionPtr> FetchAvailableSubscriptions() const; |
/** |
- * Determines which notification is to be shown next. |
+ * Invokes the listener set via SetNotificationAvailableCallback() with the |
+ * next notification to be shown. |
* @param url URL to match notifications to (optional). |
- * @return Notification to be shown, or `null` if there is no any. |
*/ |
- NotificationPtr GetNextNotificationToShow( |
- const std::string& url = std::string()); |
+ void ShowNextNotification(const std::string& url = std::string()); |
+ |
+ /** |
+ * Sets the callback invoked when a notification should be shown. |
+ * @param callback Callback to invoke. |
+ */ |
+ void SetNotificationAvailableCallback(const NotificationAvailableCallback& value); |
+ |
+ /** |
+ * Removes the callback invoked when a notification should be shown. |
+ * available. |
+ */ |
+ void RemoveNotificationAvailableCallback(); |
/** |
* Checks if any active filter matches the supplied URL. |
@@ -386,6 +403,8 @@ namespace AdblockPlus |
void UpdateCheckDone(const std::string& eventName, |
UpdateCheckDoneCallback callback, JsValueList& params); |
void FilterChanged(FilterChangeCallback callback, JsValueList& params); |
+ void NotificationAvailable(const NotificationAvailableCallback& callback, |
+ const JsValueList& params); |
}; |
} |