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

Side by Side Diff: ui/views/widget/widget.h

Issue 9027020: Bypass ToplevelWindowEventFilter for panels. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge/sync Created 8 years, 11 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
« no previous file with comments | « ui/views/widget/native_widget_win.cc ('k') | ui/views/widget/widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 UI_VIEWS_WIDGET_WIDGET_H_ 5 #ifndef UI_VIEWS_WIDGET_WIDGET_H_
6 #define UI_VIEWS_WIDGET_WIDGET_H_ 6 #define UI_VIEWS_WIDGET_WIDGET_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <stack> 10 #include <stack>
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 enum FrameType { 104 enum FrameType {
105 FRAME_TYPE_DEFAULT, // Use whatever the default would be. 105 FRAME_TYPE_DEFAULT, // Use whatever the default would be.
106 FRAME_TYPE_FORCE_CUSTOM, // Force the custom frame. 106 FRAME_TYPE_FORCE_CUSTOM, // Force the custom frame.
107 FRAME_TYPE_FORCE_NATIVE // Force the native frame. 107 FRAME_TYPE_FORCE_NATIVE // Force the native frame.
108 }; 108 };
109 109
110 struct VIEWS_EXPORT InitParams { 110 struct VIEWS_EXPORT InitParams {
111 enum Type { 111 enum Type {
112 TYPE_WINDOW, // A decorated Window, like a frame window. 112 TYPE_WINDOW, // A decorated Window, like a frame window.
113 // Widgets of TYPE_WINDOW will have a NonClientView. 113 // Widgets of TYPE_WINDOW will have a NonClientView.
114 TYPE_PANEL, // Always on top window managed by PanelManager.
115 // Widgets of TYPE_PANEL will have a NonClientView.
114 TYPE_WINDOW_FRAMELESS, 116 TYPE_WINDOW_FRAMELESS,
115 // An undecorated Window. 117 // An undecorated Window.
116 TYPE_CONTROL, // A control, like a button. 118 TYPE_CONTROL, // A control, like a button.
117 TYPE_POPUP, // An undecorated Window, with transient properties. 119 TYPE_POPUP, // An undecorated Window, with transient properties.
118 TYPE_MENU, // An undecorated Window, with transient properties 120 TYPE_MENU, // An undecorated Window, with transient properties
119 // specialized to menus. 121 // specialized to menus.
120 TYPE_TOOLTIP, 122 TYPE_TOOLTIP,
121 TYPE_BUBBLE, 123 TYPE_BUBBLE,
122 }; 124 };
123 enum Ownership { 125 enum Ownership {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 static void SetPureViews(bool pure); 206 static void SetPureViews(bool pure);
205 static bool IsPureViews(); 207 static bool IsPureViews();
206 208
207 // Retrieves the Widget implementation associated with the given 209 // Retrieves the Widget implementation associated with the given
208 // NativeView or Window, or NULL if the supplied handle has no associated 210 // NativeView or Window, or NULL if the supplied handle has no associated
209 // Widget. 211 // Widget.
210 static Widget* GetWidgetForNativeView(gfx::NativeView native_view); 212 static Widget* GetWidgetForNativeView(gfx::NativeView native_view);
211 static Widget* GetWidgetForNativeWindow(gfx::NativeWindow native_window); 213 static Widget* GetWidgetForNativeWindow(gfx::NativeWindow native_window);
212 214
213 // Retrieves the top level widget in a native view hierarchy 215 // Retrieves the top level widget in a native view hierarchy
214 // starting at |native_view|. Top level widget is a widget with 216 // starting at |native_view|. Top level widget is a widget with TYPE_WINDOW,
215 // TYPE_WINDOW, TYPE_WINDOW_FRAMELESS, POPUP or MENU and has its own 217 // TYPE_PANEL, TYPE_WINDOW_FRAMELESS, POPUP or MENU and has its own
216 // focus manager. This may be itself if the |native_view| is top level, 218 // focus manager. This may be itself if the |native_view| is top level,
217 // or NULL if there is no toplevel in a native view hierarchy. 219 // or NULL if there is no toplevel in a native view hierarchy.
218 static Widget* GetTopLevelWidgetForNativeView(gfx::NativeView native_view); 220 static Widget* GetTopLevelWidgetForNativeView(gfx::NativeView native_view);
219 221
220 // Returns all Widgets in |native_view|'s hierarchy, including itself if 222 // Returns all Widgets in |native_view|'s hierarchy, including itself if
221 // it is one. 223 // it is one.
222 static void GetAllChildWidgets(gfx::NativeView native_view, 224 static void GetAllChildWidgets(gfx::NativeView native_view,
223 Widgets* children); 225 Widgets* children);
224 226
225 // Re-parent a NativeView and notify all Widgets in |native_view|'s hierarchy 227 // Re-parent a NativeView and notify all Widgets in |native_view|'s hierarchy
(...skipping 18 matching lines...) Expand all
244 // Returns true if the specified type requires a NonClientView. 246 // Returns true if the specified type requires a NonClientView.
245 static bool RequiresNonClientView(InitParams::Type type); 247 static bool RequiresNonClientView(InitParams::Type type);
246 248
247 void Init(const InitParams& params); 249 void Init(const InitParams& params);
248 250
249 // Returns the gfx::NativeView associated with this Widget. 251 // Returns the gfx::NativeView associated with this Widget.
250 gfx::NativeView GetNativeView() const; 252 gfx::NativeView GetNativeView() const;
251 253
252 // Returns the gfx::NativeWindow associated with this Widget. This may return 254 // Returns the gfx::NativeWindow associated with this Widget. This may return
253 // NULL on some platforms if the widget was created with a type other than 255 // NULL on some platforms if the widget was created with a type other than
254 // TYPE_WINDOW. 256 // TYPE_WINDOW or TYPE_PANEL.
255 gfx::NativeWindow GetNativeWindow() const; 257 gfx::NativeWindow GetNativeWindow() const;
256 258
257 // Add/remove observer. 259 // Add/remove observer.
258 void AddObserver(Observer* observer); 260 void AddObserver(Observer* observer);
259 void RemoveObserver(Observer* observer); 261 void RemoveObserver(Observer* observer);
260 bool HasObserver(Observer* observer); 262 bool HasObserver(Observer* observer);
261 263
262 // Returns the accelerator given a command id. Returns false if there is 264 // Returns the accelerator given a command id. Returns false if there is
263 // no accelerator associated with a given id, which is a common condition. 265 // no accelerator associated with a given id, which is a common condition.
264 virtual bool GetAccelerator(int cmd_id, ui::Accelerator* accelerator); 266 virtual bool GetAccelerator(int cmd_id, ui::Accelerator* accelerator);
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 void set_focus_on_creation(bool focus_on_creation) { 551 void set_focus_on_creation(bool focus_on_creation) {
550 focus_on_creation_ = focus_on_creation; 552 focus_on_creation_ = focus_on_creation;
551 } 553 }
552 554
553 // Returns a View* that any child Widgets backed by NativeWidgetViews 555 // Returns a View* that any child Widgets backed by NativeWidgetViews
554 // are added to. The default implementation returns the contents view 556 // are added to. The default implementation returns the contents view
555 // if it exists and the root view otherwise. 557 // if it exists and the root view otherwise.
556 virtual View* GetChildViewParent(); 558 virtual View* GetChildViewParent();
557 559
558 // True if the widget is considered top level widget. Top level widget 560 // True if the widget is considered top level widget. Top level widget
559 // is a widget of TYPE_WINDOW, TYPE_WINDOW_FRAMELESS, BUBBLE, POPUP or MENU, 561 // is a widget of TYPE_WINDOW, TYPE_PANEL, TYPE_WINDOW_FRAMELESS, BUBBLE,
560 // and has a focus manager and input method object associated with it. 562 // POPUP or MENU, and has a focus manager and input method object associated
561 // TYPE_CONTROL and TYPE_TOOLTIP is not considered top level. 563 // with it. TYPE_CONTROL and TYPE_TOOLTIP is not considered top level.
562 bool is_top_level() const { return is_top_level_; } 564 bool is_top_level() const { return is_top_level_; }
563 565
564 // Returns the bounds of work area in the screen that Widget belongs to. 566 // Returns the bounds of work area in the screen that Widget belongs to.
565 gfx::Rect GetWorkAreaBoundsInScreen() const; 567 gfx::Rect GetWorkAreaBoundsInScreen() const;
566 568
567 // Overridden from NativeWidgetDelegate: 569 // Overridden from NativeWidgetDelegate:
568 virtual bool IsModal() const OVERRIDE; 570 virtual bool IsModal() const OVERRIDE;
569 virtual bool IsDialogBox() const OVERRIDE; 571 virtual bool IsDialogBox() const OVERRIDE;
570 virtual bool CanActivate() const OVERRIDE; 572 virtual bool CanActivate() const OVERRIDE;
571 virtual bool IsInactiveRenderingDisabled() const OVERRIDE; 573 virtual bool IsInactiveRenderingDisabled() const OVERRIDE;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 // duplicate move events even though the mouse hasn't moved. 728 // duplicate move events even though the mouse hasn't moved.
727 bool last_mouse_event_was_move_; 729 bool last_mouse_event_was_move_;
728 gfx::Point last_mouse_event_position_; 730 gfx::Point last_mouse_event_position_;
729 731
730 DISALLOW_COPY_AND_ASSIGN(Widget); 732 DISALLOW_COPY_AND_ASSIGN(Widget);
731 }; 733 };
732 734
733 } // namespace views 735 } // namespace views
734 736
735 #endif // UI_VIEWS_WIDGET_WIDGET_H_ 737 #endif // UI_VIEWS_WIDGET_WIDGET_H_
OLDNEW
« no previous file with comments | « ui/views/widget/native_widget_win.cc ('k') | ui/views/widget/widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698