| Index: chrome/browser/chromeos/wm_message_listener.h
|
| ===================================================================
|
| --- chrome/browser/chromeos/wm_message_listener.h (revision 40691)
|
| +++ chrome/browser/chromeos/wm_message_listener.h (working copy)
|
| @@ -8,6 +8,7 @@
|
| #include <gtk/gtk.h>
|
|
|
| #include "base/message_loop.h"
|
| +#include "base/observer_list.h"
|
| #include "base/singleton.h"
|
| #include "chrome/browser/chromeos/wm_ipc.h"
|
|
|
| @@ -18,10 +19,27 @@
|
|
|
| // WmMessageListener listens for messages from the window manager that need to
|
| // be dealt with by Chrome.
|
| +// To listen for window manager messages add an observer.
|
| class WmMessageListener : public MessageLoopForUI::Observer {
|
| public:
|
| + // Observer is notified any time a message is received from the window
|
| + // manager.
|
| + class Observer {
|
| + public:
|
| + virtual void ProcessWmMessage(const WmIpc::Message& message,
|
| + GdkWindow* window) = 0;
|
| + };
|
| +
|
| static WmMessageListener* instance();
|
|
|
| + void AddObserver(Observer* observer) {
|
| + observers_.AddObserver(observer);
|
| + }
|
| +
|
| + void RemoveObserver(Observer* observer) {
|
| + observers_.RemoveObserver(observer);
|
| + }
|
| +
|
| // MessageLoopForUI::Observer overrides.
|
| virtual void WillProcessEvent(GdkEvent* event);
|
| virtual void DidProcessEvent(GdkEvent* event);
|
| @@ -35,6 +53,8 @@
|
| // Invoked when a valid WmIpc::Message is received.
|
| void ProcessMessage(const WmIpc::Message& message, GdkWindow* window);
|
|
|
| + ObserverList<Observer> observers_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WmMessageListener);
|
| };
|
|
|
|
|