OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 UI_VIEWS_WINDOW_NON_CLIENT_VIEW_H_ | 5 #ifndef UI_VIEWS_WINDOW_NON_CLIENT_VIEW_H_ |
6 #define UI_VIEWS_WINDOW_NON_CLIENT_VIEW_H_ | 6 #define UI_VIEWS_WINDOW_NON_CLIENT_VIEW_H_ |
7 | 7 |
8 #include "ui/views/view.h" | 8 #include "ui/views/view.h" |
9 #include "ui/views/view_targeter_delegate.h" | 9 #include "ui/views/view_targeter_delegate.h" |
10 | 10 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 // | | | +----------------------------------------+ | | | | 128 // | | | +----------------------------------------+ | | | |
129 // | | +--------------------------------------------+ | | | 129 // | | +--------------------------------------------+ | | |
130 // | +------------------------------------------------+ | | 130 // | +------------------------------------------------+ | |
131 // +----------------------------------------------------+ | 131 // +----------------------------------------------------+ |
132 // | 132 // |
133 // The NonClientFrameView and ClientView are siblings because due to theme | 133 // The NonClientFrameView and ClientView are siblings because due to theme |
134 // changes the NonClientFrameView may be replaced with different | 134 // changes the NonClientFrameView may be replaced with different |
135 // implementations (e.g. during the switch from DWM/Aero-Glass to Vista Basic/ | 135 // implementations (e.g. during the switch from DWM/Aero-Glass to Vista Basic/ |
136 // Classic rendering). | 136 // Classic rendering). |
137 // | 137 // |
138 class VIEWS_EXPORT NonClientView : public View { | 138 class VIEWS_EXPORT NonClientView : public View, public ViewTargeterDelegate { |
139 public: | 139 public: |
140 // Internal class name. | 140 // Internal class name. |
141 static const char kViewClassName[]; | 141 static const char kViewClassName[]; |
142 | 142 |
143 NonClientView(); | 143 NonClientView(); |
144 virtual ~NonClientView(); | 144 virtual ~NonClientView(); |
145 | 145 |
146 // Returns the current NonClientFrameView instance, or NULL if | 146 // Returns the current NonClientFrameView instance, or NULL if |
147 // it does not exist. | 147 // it does not exist. |
148 NonClientFrameView* frame_view() const { return frame_view_.get(); } | 148 NonClientFrameView* frame_view() const { return frame_view_.get(); } |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 void SetAccessibleName(const base::string16& name); | 210 void SetAccessibleName(const base::string16& name); |
211 | 211 |
212 // NonClientView, View overrides: | 212 // NonClientView, View overrides: |
213 virtual gfx::Size GetPreferredSize() const OVERRIDE; | 213 virtual gfx::Size GetPreferredSize() const OVERRIDE; |
214 virtual gfx::Size GetMinimumSize() const OVERRIDE; | 214 virtual gfx::Size GetMinimumSize() const OVERRIDE; |
215 virtual gfx::Size GetMaximumSize() const OVERRIDE; | 215 virtual gfx::Size GetMaximumSize() const OVERRIDE; |
216 virtual void Layout() OVERRIDE; | 216 virtual void Layout() OVERRIDE; |
217 virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE; | 217 virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE; |
218 virtual const char* GetClassName() const OVERRIDE; | 218 virtual const char* GetClassName() const OVERRIDE; |
219 | 219 |
220 virtual views::View* GetEventHandlerForRect(const gfx::Rect& rect) OVERRIDE; | |
221 virtual views::View* GetTooltipHandlerForPoint( | 220 virtual views::View* GetTooltipHandlerForPoint( |
222 const gfx::Point& point) OVERRIDE; | 221 const gfx::Point& point) OVERRIDE; |
223 | 222 |
224 protected: | 223 protected: |
225 // NonClientView, View overrides: | 224 // NonClientView, View overrides: |
226 virtual void ViewHierarchyChanged( | 225 virtual void ViewHierarchyChanged( |
227 const ViewHierarchyChangedDetails& details) OVERRIDE; | 226 const ViewHierarchyChangedDetails& details) OVERRIDE; |
228 | 227 |
229 private: | 228 private: |
| 229 // ViewTargeterDelegate: |
| 230 virtual View* TargetForRect(View* root, const gfx::Rect& rect) OVERRIDE; |
| 231 |
230 // A ClientView object or subclass, responsible for sizing the contents view | 232 // A ClientView object or subclass, responsible for sizing the contents view |
231 // of the window, hit testing and perhaps other tasks depending on the | 233 // of the window, hit testing and perhaps other tasks depending on the |
232 // implementation. | 234 // implementation. |
233 ClientView* client_view_; | 235 ClientView* client_view_; |
234 | 236 |
235 // The NonClientFrameView that renders the non-client portions of the window. | 237 // The NonClientFrameView that renders the non-client portions of the window. |
236 // This object is not owned by the view hierarchy because it can be replaced | 238 // This object is not owned by the view hierarchy because it can be replaced |
237 // dynamically as the system settings change. | 239 // dynamically as the system settings change. |
238 scoped_ptr<NonClientFrameView> frame_view_; | 240 scoped_ptr<NonClientFrameView> frame_view_; |
239 | 241 |
240 // The overlay view, when non-NULL and visible, takes up the entire widget and | 242 // The overlay view, when non-NULL and visible, takes up the entire widget and |
241 // is placed on top of the ClientView and NonClientFrameView. | 243 // is placed on top of the ClientView and NonClientFrameView. |
242 View* overlay_view_; | 244 View* overlay_view_; |
243 | 245 |
244 // The accessible name of this view. | 246 // The accessible name of this view. |
245 base::string16 accessible_name_; | 247 base::string16 accessible_name_; |
246 | 248 |
247 DISALLOW_COPY_AND_ASSIGN(NonClientView); | 249 DISALLOW_COPY_AND_ASSIGN(NonClientView); |
248 }; | 250 }; |
249 | 251 |
250 } // namespace views | 252 } // namespace views |
251 | 253 |
252 #endif // UI_VIEWS_WINDOW_NON_CLIENT_VIEW_H_ | 254 #endif // UI_VIEWS_WINDOW_NON_CLIENT_VIEW_H_ |
OLD | NEW |