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

Side by Side Diff: ui/views/desktop/desktop_window_view.h

Issue 8598024: Now that we are doing a hard-cut-over to Aura, remove a bunch of *Views based classes that are ob... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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
« no previous file with comments | « ui/views/desktop/desktop_window_manager.cc ('k') | ui/views/desktop/desktop_window_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef UI_VIEWS_DESKTOP_DESKTOP_WINDOW_VIEW_H_
6 #define UI_VIEWS_DESKTOP_DESKTOP_WINDOW_VIEW_H_
7
8 #include "base/observer_list.h"
9 #include "ui/gfx/compositor/layer_animation_observer.h"
10 #include "views/view.h"
11 #include "views/widget/widget_delegate.h"
12
13 namespace ui {
14 class LayerAnimationSequence;
15 } // namespace ui
16
17 namespace views {
18
19 class Widget;
20
21 namespace desktop {
22
23 class DesktopWindowView : public WidgetDelegateView,
24 public ui::LayerAnimationObserver {
25 public:
26 // Observers can listen to various events on the desktop.
27 class Observer {
28 public:
29 virtual void OnDesktopBoundsChanged(const gfx::Rect& previous_bounds) = 0;
30
31 protected:
32 virtual ~Observer() {}
33 };
34
35 // The look and feel will be slightly different for different kinds of
36 // desktop.
37 enum DesktopType {
38 DESKTOP_DEFAULT,
39 DESKTOP_NETBOOK,
40 DESKTOP_OTHER
41 };
42
43 static DesktopWindowView* desktop_window_view;
44
45 explicit DesktopWindowView(DesktopType type);
46 virtual ~DesktopWindowView();
47
48 static void CreateDesktopWindow(DesktopType type);
49
50 void CreateTestWindow(const string16& title,
51 SkColor color,
52 gfx::Rect initial_bounds,
53 bool rotate);
54
55 DesktopType type() const { return type_; }
56
57 // Add/remove observer.
58 void AddObserver(Observer* observer);
59 void RemoveObserver(Observer* observer);
60 bool HasObserver(Observer* observer);
61
62 private:
63 // Overridden from View:
64 virtual void Layout() OVERRIDE;
65 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE;
66 virtual void ViewHierarchyChanged(
67 bool is_add, View* parent, View* child) OVERRIDE;
68
69 // Overridden from WidgetDelegate:
70 virtual Widget* GetWidget() OVERRIDE;
71 virtual const Widget* GetWidget() const OVERRIDE;
72 virtual bool CanResize() const OVERRIDE;
73 virtual bool CanMaximize() const OVERRIDE;
74 virtual string16 GetWindowTitle() const OVERRIDE;
75 virtual SkBitmap GetWindowAppIcon() OVERRIDE;
76 virtual SkBitmap GetWindowIcon() OVERRIDE;
77 virtual bool ShouldShowWindowIcon() const OVERRIDE;
78 virtual void WindowClosing() OVERRIDE;
79 virtual View* GetContentsView() OVERRIDE;
80 virtual NonClientFrameView* CreateNonClientFrameView() OVERRIDE;
81
82 // Implementation of ui::LayerAnimationObserver:
83 virtual void OnLayerAnimationEnded(
84 const ui::LayerAnimationSequence* animation) OVERRIDE;
85 virtual void OnLayerAnimationScheduled(
86 const ui::LayerAnimationSequence* animation) OVERRIDE;
87 virtual void OnLayerAnimationAborted(
88 const ui::LayerAnimationSequence* animation) OVERRIDE;
89
90 ObserverList<Observer> observers_;
91 DesktopType type_;
92 Widget* widget_;
93
94 DISALLOW_COPY_AND_ASSIGN(DesktopWindowView);
95 };
96
97 } // namespace desktop
98 } // namespace views
99
100 #endif // UI_VIEWS_DESKTOP_DESKTOP_WINDOW_VIEW_H_
OLDNEW
« no previous file with comments | « ui/views/desktop/desktop_window_manager.cc ('k') | ui/views/desktop/desktop_window_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698