OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2012 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 CHROME_BROWSER_UI_VIEWS_FRAME_APP_NON_CLIENT_FRAME_VIEW_AURA_H_ | |
6 #define CHROME_BROWSER_UI_VIEWS_FRAME_APP_NON_CLIENT_FRAME_VIEW_AURA_H_ | |
7 #pragma once | |
8 | |
9 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h" | |
10 #include "ui/base/animation/animation_delegate.h" | |
11 #include "ui/views/controls/button/button.h" | |
12 #include "ui/views/mouse_watcher.h" | |
13 | |
14 namespace aura { | |
15 class Window; | |
16 } | |
17 | |
18 namespace ui { | |
19 class SlideAnimation; | |
20 } | |
21 | |
22 // NonClientFrameViewAura implementation for apps. | |
23 class AppNonClientFrameViewAura : public BrowserNonClientFrameView, | |
24 public ui::AnimationDelegate, | |
25 public views::MouseWatcherListener { | |
26 public: | |
27 AppNonClientFrameViewAura( | |
28 BrowserFrame* frame, BrowserView* browser_view); | |
29 virtual ~AppNonClientFrameViewAura(); | |
30 | |
31 // NonClientFrameView: | |
32 virtual gfx::Rect GetBoundsForClientView() const OVERRIDE; | |
33 virtual gfx::Rect GetWindowBoundsForClientBounds( | |
34 const gfx::Rect& client_bounds) const OVERRIDE; | |
35 virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE; | |
36 virtual void GetWindowMask( | |
37 const gfx::Size& size, | |
38 gfx::Path* window_mask) OVERRIDE; | |
39 virtual void ResetWindowControls() OVERRIDE; | |
40 virtual void UpdateWindowIcon() OVERRIDE; | |
41 | |
42 // BrowserNonClientFrameView: | |
43 virtual gfx::Rect GetBoundsForTabStrip(views::View* tabstrip) const | |
sky
2012/02/13 16:01:32
Similar to const, don't leave OVERRIDE on a line b
DaveMoore
2012/02/13 18:58:40
Done.
| |
44 OVERRIDE; | |
45 virtual int GetHorizontalTabStripVerticalOffset(bool restored) const | |
46 OVERRIDE; | |
47 virtual void UpdateThrobber(bool running) OVERRIDE; | |
48 | |
49 // View: | |
50 virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE; | |
51 | |
52 // ui::AnimationDelegate. | |
53 virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE; | |
54 | |
55 // views::MouseWatcherListener. | |
56 virtual void MouseMovedOutOfHost() OVERRIDE; | |
57 | |
58 // Close the app window. | |
59 void Close(); | |
60 | |
61 // Restore the app window (will result in switching the frame_view back). | |
62 void Restore(); | |
63 | |
64 private: | |
65 class ControlView; | |
66 class Host; | |
67 | |
68 gfx::Rect GetControlBounds() const; | |
69 | |
70 // The View containing the restore and close buttons. | |
71 ControlView* control_view_; | |
72 // The widget holding the control_view_. | |
73 views::Widget* control_widget_; | |
74 // The animation that controls the display of the control_widget. | |
75 scoped_ptr<ui::SlideAnimation> show_animation_; | |
76 // Tracks the mouse and causes the controls to slide back up when it exits. | |
77 views::MouseWatcher mouse_watcher_; | |
78 | |
79 DISALLOW_COPY_AND_ASSIGN(AppNonClientFrameViewAura); | |
80 }; | |
81 | |
82 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_APP_NON_CLIENT_FRAME_VIEW_AURA_H_ | |
OLD | NEW |