Index: ash/system/toast/toast_manager.h |
diff --git a/ash/system/toast/toast_manager.h b/ash/system/toast/toast_manager.h |
index d46832d383f7a2a6cc1809283b211b5f11b9f5bc..f9870e2340ee4509d8d185ae89a3a01820469791 100644 |
--- a/ash/system/toast/toast_manager.h |
+++ b/ash/system/toast/toast_manager.h |
@@ -5,12 +5,13 @@ |
#ifndef ASH_SYSTEM_TOAST_TOAST_MANAGER_H_ |
#define ASH_SYSTEM_TOAST_TOAST_MANAGER_H_ |
+#include <list> |
#include <memory> |
-#include <queue> |
#include <string> |
#include "ash/ash_export.h" |
#include "ash/shell_observer.h" |
+#include "ash/system/toast/toast_data.h" |
#include "ash/system/toast/toast_overlay.h" |
#include "base/memory/weak_ptr.h" |
#include "base/threading/thread_checker.h" |
@@ -25,7 +26,9 @@ class ASH_EXPORT ToastManager : public ToastOverlay::Delegate { |
// Show a toast. If there are queued toasts, succeeding toasts are queued as |
// well, and are shown one by one. |
- void Show(const std::string& text, uint64_t duration_ms); |
+ void Show(const ToastData& data); |
+ |
+ void Cancel(const std::string& id); |
// ToastOverlay::Delegate overrides: |
void OnClosed() override; |
@@ -34,14 +37,17 @@ class ASH_EXPORT ToastManager : public ToastOverlay::Delegate { |
friend class ToastManagerTest; |
void ShowLatest(); |
- void OnDurationPassed(int toast_id); |
+ void OnDurationPassed(int toast_number); |
- int toast_id_for_testing() const { return toast_id_; } |
ToastOverlay* GetCurrentOverlayForTesting() { return overlay_.get(); } |
- void ResetToastIdForTesting() { toast_id_ = 0; } |
+ int serial_for_testing() const { return serial_; } |
+ void ResetSerialForTesting() { serial_ = 0; } |
+ |
+ // ID of the toast which is currently shown. Empty if no toast is visible. |
+ std::string current_toast_id_; |
- int toast_id_ = 0; |
- std::queue<std::pair<std::string, uint64_t>> queue_; |
+ int serial_ = 0; |
+ std::list<ToastData> queue_; |
std::unique_ptr<ToastOverlay> overlay_; |
base::WeakPtrFactory<ToastManager> weak_ptr_factory_; |