| Index: ash/display/display_error_dialog.h
|
| diff --git a/ash/display/display_error_dialog.h b/ash/display/display_error_dialog.h
|
| index cd7829ea7caf4e03fde14049eabfb76715d6088f..541adc39ea3122f03017ef79e595ce54949d4561 100644
|
| --- a/ash/display/display_error_dialog.h
|
| +++ b/ash/display/display_error_dialog.h
|
| @@ -8,7 +8,8 @@
|
| #include "ash/ash_export.h"
|
| #include "ash/display/display_controller.h"
|
| #include "base/compiler_specific.h"
|
| -#include "base/gtest_prod_util.h"
|
| +#include "chromeos/display/output_configurator.h"
|
| +#include "ui/views/widget/widget_observer.h"
|
| #include "ui/views/window/dialog_delegate.h"
|
|
|
| namespace aura {
|
| @@ -32,16 +33,14 @@ namespace internal {
|
| class ASH_EXPORT DisplayErrorDialog : public views::DialogDelegateView,
|
| public ash::DisplayController::Observer {
|
| public:
|
| - // Shows the error dialog.
|
| - static void ShowDialog();
|
| + // Shows the error dialog for |failed_new_state| and returns it.
|
| + static DisplayErrorDialog* ShowDialog(chromeos::OutputState failed_new_state);
|
|
|
| - private:
|
| - FRIEND_TEST_ALL_PREFIXES(DisplayErrorDialogTest, Normal);
|
| - FRIEND_TEST_ALL_PREFIXES(DisplayErrorDialogTest, CallTwice);
|
| - FRIEND_TEST_ALL_PREFIXES(DisplayErrorDialogTest, SingleDisplay);
|
| - FRIEND_TEST_ALL_PREFIXES(DisplayErrorDialogTest, DisplayDisconnected);
|
| + // Update the error message for |failed_new_state|.
|
| + void UpdateMessageForState(chromeos::OutputState failed_new_state);
|
|
|
| - DisplayErrorDialog();
|
| + private:
|
| + explicit DisplayErrorDialog(chromeos::OutputState failed_new_state);
|
| virtual ~DisplayErrorDialog();
|
|
|
| // views::DialogDelegate overrides:
|
| @@ -56,14 +55,35 @@ class ASH_EXPORT DisplayErrorDialog : public views::DialogDelegateView,
|
| // ash::DisplayController::Observer overrides:
|
| virtual void OnDisplayConfigurationChanging() OVERRIDE;
|
|
|
| - // Returns the pointer of the current instance of this dialog.
|
| - static DisplayErrorDialog* GetInstanceForTest();
|
| -
|
| views::Label* label_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DisplayErrorDialog);
|
| };
|
|
|
| +// The class to observe the output failures and shows the error dialog when
|
| +// necessary.
|
| +class ASH_EXPORT DisplayErrorObserver
|
| + : public chromeos::OutputConfigurator::Observer,
|
| + public views::WidgetObserver {
|
| + public:
|
| + DisplayErrorObserver();
|
| + virtual ~DisplayErrorObserver();
|
| +
|
| + const DisplayErrorDialog* dialog() const { return dialog_; }
|
| +
|
| + // chromeos::OutputConfigurator::Observer overrides:
|
| + virtual void OnDisplayModeChangeFailed(
|
| + chromeos::OutputState failed_new_state) OVERRIDE;
|
| +
|
| + // views::WidgetObserver overrides:
|
| + virtual void OnWidgetClosing(views::Widget* widget) OVERRIDE;
|
| +
|
| + private:
|
| + DisplayErrorDialog* dialog_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DisplayErrorObserver);
|
| +};
|
| +
|
| } // namespace internal
|
| } // namespace ash
|
|
|
|
|