Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: views/desktop/desktop_window_manager.h

Issue 7740039: Don't activate POPUP window (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef VIEWS_DESKTOP_DESKTOP_WINDOW_MANAGER_H_ 5 #ifndef VIEWS_DESKTOP_DESKTOP_WINDOW_MANAGER_H_
6 #define VIEWS_DESKTOP_DESKTOP_WINDOW_MANAGER_H_ 6 #define VIEWS_DESKTOP_DESKTOP_WINDOW_MANAGER_H_
7 7
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
10 #include "views/widget/widget.h"
10 #include "views/widget/window_manager.h" 11 #include "views/widget/window_manager.h"
11 12
12 namespace gfx { 13 namespace gfx {
13 class Point; 14 class Point;
14 } 15 }
15 16
16 namespace views { 17 namespace views {
17 class Widget;
18 18
19 namespace desktop { 19 namespace desktop {
20 class WindowController; 20 class WindowController;
21 21
22 // A tentative window manager for views destktop until we have *right* 22 // A tentative window manager for views destktop until we have *right*
23 // implementation based on aura/layer API. This is minimum 23 // implementation based on aura/layer API. This is minimum
24 // implmenetation and complicated actio like moving transformed window 24 // implmenetation and complicated actio like moving transformed window
25 // doesn't work. TODO(oshima): move active widget to WindowManager. 25 // doesn't work.
26 class DesktopWindowManager : public views::WindowManager { 26 class DesktopWindowManager : public views::WindowManager,
27 public Widget::Observer {
27 public: 28 public:
28 DesktopWindowManager(Widget* desktop); 29 DesktopWindowManager(Widget* desktop);
29 virtual ~DesktopWindowManager(); 30 virtual ~DesktopWindowManager();
30 31
31 // views::WindowManager implementations: 32 // views::WindowManager implementations:
32 virtual void StartMoveDrag(views::Widget* widget, 33 virtual void StartMoveDrag(views::Widget* widget,
33 const gfx::Point& point) OVERRIDE; 34 const gfx::Point& point) OVERRIDE;
34 virtual void StartResizeDrag(views::Widget* widget, 35 virtual void StartResizeDrag(views::Widget* widget,
35 const gfx::Point& point, 36 const gfx::Point& point,
36 int hittest_code); 37 int hittest_code);
37 virtual bool SetMouseCapture(views::Widget* widget) OVERRIDE; 38 virtual bool SetMouseCapture(views::Widget* widget) OVERRIDE;
38 virtual bool ReleaseMouseCapture(views::Widget* widget) OVERRIDE; 39 virtual bool ReleaseMouseCapture(views::Widget* widget) OVERRIDE;
39 virtual bool HasMouseCapture(const views::Widget* widget) const OVERRIDE; 40 virtual bool HasMouseCapture(const views::Widget* widget) const OVERRIDE;
41 virtual bool HandleKeyEvent(views::Widget* widget,
42 const views::KeyEvent& event) OVERRIDE;
40 virtual bool HandleMouseEvent(views::Widget* widget, 43 virtual bool HandleMouseEvent(views::Widget* widget,
41 const views::MouseEvent& event) OVERRIDE; 44 const views::MouseEvent& event) OVERRIDE;
42 45
46 virtual void Register(Widget* widget) OVERRIDE;
47
43 private: 48 private:
49 // Overridden from Widget::Observer.
50 virtual void OnWidgetClosing(Widget* widget) OVERRIDE;
51 virtual void OnWidgetVisibilityChanged(Widget* widget, bool visible) OVERRIDE;
52 virtual void OnWidgetActivationChanged(Widget* widget, bool active) OVERRIDE;
53
44 void SetMouseCapture(); 54 void SetMouseCapture();
45 void ReleaseMouseCapture(); 55 void ReleaseMouseCapture();
46 bool HasMouseCapture() const; 56 bool HasMouseCapture() const;
47 57
58 void Activate(Widget* widget);
59
48 views::Widget* desktop_; 60 views::Widget* desktop_;
49 views::Widget* mouse_capture_; 61 views::Widget* mouse_capture_;
62 views::Widget* active_widget_;
50 scoped_ptr<WindowController> window_controller_; 63 scoped_ptr<WindowController> window_controller_;
51 64
52 DISALLOW_COPY_AND_ASSIGN(DesktopWindowManager); 65 DISALLOW_COPY_AND_ASSIGN(DesktopWindowManager);
53 }; 66 };
54 67
55 // An behavioral interface for objects implements window resize/movement. 68 // An behavioral interface for objects implements window resize/movement.
56 class WindowController { 69 class WindowController {
57 public: 70 public:
58 WindowController(); 71 WindowController();
59 virtual ~WindowController(); 72 virtual ~WindowController();
60 virtual bool OnMouseEvent(const views::MouseEvent& event) = 0; 73 virtual bool OnMouseEvent(const views::MouseEvent& event) = 0;
61 74
62 private: 75 private:
63 DISALLOW_COPY_AND_ASSIGN(WindowController); 76 DISALLOW_COPY_AND_ASSIGN(WindowController);
64 }; 77 };
65 78
66 } // namespace desktop 79 } // namespace desktop
67 } // namespace views 80 } // namespace views
68 81
69 #endif // VIEWS_DESKTOP_DESKTOP_WINDOW_MANAGER_H_ 82 #endif // VIEWS_DESKTOP_DESKTOP_WINDOW_MANAGER_H_
OLDNEW
« no previous file with comments | « no previous file | views/desktop/desktop_window_manager.cc » ('j') | views/desktop/desktop_window_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698