diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-01 06:42:51 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-01 06:42:51 +0000 |
commit | 196e945a6a0d734bd3c867a34fe5c9b0c60d0734 (patch) | |
tree | 7590bf944307a43bfd527bac99f1a02d45ec97c8 /chromeos/display/output_configurator.h | |
parent | 9d29124d4a1fa47803ff5b371406c722b7c82507 (diff) | |
download | chromium_src-196e945a6a0d734bd3c867a34fe5c9b0c60d0734.zip chromium_src-196e945a6a0d734bd3c867a34fe5c9b0c60d0734.tar.gz chromium_src-196e945a6a0d734bd3c867a34fe5c9b0c60d0734.tar.bz2 |
Add Fade-out/Fade-in animation during output-configuration change.
BUG=127493
TEST=manually checked on lumpy
Review URL: https://chromiumcodereview.appspot.com/10817028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149382 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/display/output_configurator.h')
-rw-r--r-- | chromeos/display/output_configurator.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/chromeos/display/output_configurator.h b/chromeos/display/output_configurator.h index b1518db..bbf0063 100644 --- a/chromeos/display/output_configurator.h +++ b/chromeos/display/output_configurator.h @@ -7,6 +7,7 @@ #include "base/basictypes.h" #include "base/event_types.h" +#include "base/observer_list.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop.h" #include "chromeos/chromeos_export.h" @@ -40,6 +41,13 @@ enum OutputState { // it. class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { public: + class Observer { + public: + // Called when the change of the display mode finished. It will usually + // start the fading in the displays. + virtual void OnDisplayModeChanged() = 0; + }; + explicit OutputConfigurator(bool is_extended_display_enabled); virtual ~OutputConfigurator(); @@ -67,6 +75,9 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { // Spurious events will have no effect. virtual bool Dispatch(const base::NativeEvent& event) OVERRIDE; + void AddObserver(Observer* observer); + void RemoveObserver(Observer* observer); + private: // The information we need to cache from an output to implement operations // such as power state but also to eliminate duplicate operations within a @@ -124,6 +135,9 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { // with the result. void CheckIsProjectingAndNotify(); + // Fires OnDisplayModeChanged() event to the observers. + void NotifyOnDisplayChanged(); + // This is detected by the constructor to determine whether or not we should // be enabled. If we aren't running on ChromeOS, we can't assume that the // Xrandr X11 extension is supported. @@ -161,6 +175,8 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { // This is used for rotating display modes. OutputState output_state_; + ObserverList<Observer> observers_; + DISALLOW_COPY_AND_ASSIGN(OutputConfigurator); }; |