| Index: chrome/browser/app_modal_dialog_queue.h
|
| ===================================================================
|
| --- chrome/browser/app_modal_dialog_queue.h (revision 17006)
|
| +++ chrome/browser/app_modal_dialog_queue.h (working copy)
|
| @@ -7,10 +7,12 @@
|
|
|
| #include <queue>
|
|
|
| +#include "base/singleton.h"
|
| #include "chrome/browser/app_modal_dialog.h"
|
|
|
| // Keeps a queue of AppModalDialogs, making sure only one app modal
|
| // dialog is shown at a time.
|
| +// This class is a singleton.
|
| class AppModalDialogQueue {
|
| public:
|
| // Adds a modal dialog to the queue, if there are no other dialogs in the
|
| @@ -23,13 +25,13 @@
|
| // sloppy app modality.
|
| // Note: The AppModalDialog |dialog| must be window modal before it
|
| // can be added as app modal.
|
| - static void AddDialog(AppModalDialog* dialog);
|
| + void AddDialog(AppModalDialog* dialog);
|
|
|
| // Removes the current dialog in the queue (the one that is being shown).
|
| // Shows the next dialog in the queue, if any is present. This does not
|
| // ensure that the currently showing dialog is closed, it just makes it no
|
| // longer app modal.
|
| - static void ShowNextDialog();
|
| + void ShowNextDialog();
|
|
|
| // Activates and shows the current dialog, if the user clicks on one of the
|
| // windows disabled by the presence of an app modal dialog. This forces
|
| @@ -37,29 +39,35 @@
|
| // opened the dialog on another virtual desktop. Assumes there is currently a
|
| // dialog being shown. (Call BrowserList::IsShowingAppModalDialog to test
|
| // this condition).
|
| - static void ActivateModalDialog();
|
| + void ActivateModalDialog();
|
|
|
| // Returns true if there is currently an active app modal dialog box.
|
| - static bool HasActiveDialog() {
|
| + bool HasActiveDialog() {
|
| return active_dialog_ != NULL;
|
| }
|
|
|
| // Accessor for |active_dialog_|.
|
| - static AppModalDialog* active_dialog() {
|
| + AppModalDialog* active_dialog() {
|
| return active_dialog_;
|
| }
|
|
|
| private:
|
| + friend struct DefaultSingletonTraits<AppModalDialogQueue>;
|
| +
|
| + AppModalDialogQueue() : active_dialog_(NULL) { }
|
| +
|
| // Shows |dialog| and notifies the BrowserList that a modal dialog is showing.
|
| - static void ShowModalDialog(AppModalDialog* dialog);
|
| + void ShowModalDialog(AppModalDialog* dialog);
|
|
|
| // Contains all app modal dialogs which are waiting to be shown, with the
|
| // currently modal dialog at the front of the queue.
|
| - static std::queue<AppModalDialog*>* app_modal_dialog_queue_;
|
| + std::queue<AppModalDialog*> app_modal_dialog_queue_;
|
|
|
| // The currently active app-modal dialog box's delegate. NULL if there is no
|
| // active app-modal dialog box.
|
| - static AppModalDialog* active_dialog_;
|
| + AppModalDialog* active_dialog_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(AppModalDialogQueue);
|
| };
|
|
|
| #endif // CHROME_BROWSER_APP_MODAL_DIALOG_QUEUE_H__
|
|
|