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

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

Issue 307030: New widget factories & methods to support desktop notifications, GTK stubs.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_WIDGET_WIDGET_H_ 5 #ifndef VIEWS_WIDGET_WIDGET_H_
6 #define VIEWS_WIDGET_WIDGET_H_ 6 #define VIEWS_WIDGET_WIDGET_H_
7 7
8 #include "app/gfx/native_widget_types.h" 8 #include "app/gfx/native_widget_types.h"
9 9
10 class ThemeProvider; 10 class ThemeProvider;
(...skipping 25 matching lines...) Expand all
36 // 36 //
37 // The Widget is responsible for handling various system events and forwarding 37 // The Widget is responsible for handling various system events and forwarding
38 // them to the appropriate view. 38 // them to the appropriate view.
39 // 39 //
40 ///////////////////////////////////////////////////////////////////////////// 40 /////////////////////////////////////////////////////////////////////////////
41 41
42 class Widget { 42 class Widget {
43 public: 43 public:
44 virtual ~Widget() { } 44 virtual ~Widget() { }
45 45
46 // Creates a transparent popup widget specific to the current platform useful 46 enum TransparencyParam {
47 // for transient status notifications. 47 Transparent,
48 static Widget* CreateTransparentPopupWidget(bool delete_on_destroy); 48 NotTransparent
49 };
50
51 enum EventsParam {
52 AcceptEvents,
53 NotAcceptEvents
54 };
55
56 enum DeleteParam {
57 DeleteOnDestroy,
58 NotDeleteOnDestroy
59 };
60
61 // Creates a transient popup widget specific to the current platform.
62 static Widget* CreatePopupWidget(TransparencyParam transparent,
63 EventsParam accept_events,
64 DeleteParam delete_on_destroy);
49 65
50 // Initialize the Widget with a parent and an initial desired size. 66 // Initialize the Widget with a parent and an initial desired size.
51 // |contents_view| is the view that will be the single child of RootView 67 // |contents_view| is the view that will be the single child of RootView
52 // within this Widget. As contents_view is inserted into RootView's tree, 68 // within this Widget. As contents_view is inserted into RootView's tree,
53 // RootView assumes ownership of this view and cleaning it up. If you remove 69 // RootView assumes ownership of this view and cleaning it up. If you remove
54 // this view, you are responsible for its destruction. If this value is NULL, 70 // this view, you are responsible for its destruction. If this value is NULL,
55 // the caller is responsible for populating the RootView, and sizing its 71 // the caller is responsible for populating the RootView, and sizing its
56 // contents as the window is sized. 72 // contents as the window is sized.
57 virtual void Init(gfx::NativeView parent, const gfx::Rect& bounds) = 0; 73 virtual void Init(gfx::NativeView parent, const gfx::Rect& bounds) = 0;
58 74
59 // Sets the specified view as the contents of this Widget. There can only 75 // Sets the specified view as the contents of this Widget. There can only
60 // be one contnets view child of this Widget's RootView. This view is sized to 76 // be one contents view child of this Widget's RootView. This view is sized to
61 // fit the entire size of the RootView. The RootView takes ownership of this 77 // fit the entire size of the RootView. The RootView takes ownership of this
62 // View, unless it is set as not being parent-owned. 78 // View, unless it is set as not being parent-owned.
63 virtual void SetContentsView(View* view) = 0; 79 virtual void SetContentsView(View* view) = 0;
64 80
65 // Returns the bounds of this Widget in the screen coordinate system. 81 // Returns the bounds of this Widget in the screen coordinate system.
66 // If the receiving Widget is a frame which is larger than its client area, 82 // If the receiving Widget is a frame which is larger than its client area,
67 // this method returns the client area if including_frame is false and the 83 // this method returns the client area if including_frame is false and the
68 // frame bounds otherwise. If the receiving Widget is not a frame, 84 // frame bounds otherwise. If the receiving Widget is not a frame,
69 // including_frame is ignored. 85 // including_frame is ignored.
70 virtual void GetBounds(gfx::Rect* out, bool including_frame) const = 0; 86 virtual void GetBounds(gfx::Rect* out, bool including_frame) const = 0;
71 87
72 // Sizes and/or places the widget to the specified bounds, size or position. 88 // Sizes and/or places the widget to the specified bounds, size or position.
73 virtual void SetBounds(const gfx::Rect& bounds) = 0; 89 virtual void SetBounds(const gfx::Rect& bounds) = 0;
74 90
91 // Places the widget in front of the specified widget in z-order.
92 virtual void MoveAbove(Widget* widget) = 0;
93
75 // Sets a shape on the widget. 94 // Sets a shape on the widget.
76 virtual void SetShape(const gfx::Path& shape) = 0; 95 virtual void SetShape(const gfx::Path& shape) = 0;
77 96
78 // Hides the widget then closes it after a return to the message loop. 97 // Hides the widget then closes it after a return to the message loop.
79 virtual void Close() = 0; 98 virtual void Close() = 0;
80 99
81 // Closes the widget immediately. Compare to |Close|. This will destroy the 100 // Closes the widget immediately. Compare to |Close|. This will destroy the
82 // window handle associated with this Widget, so should not be called from 101 // window handle associated with this Widget, so should not be called from
83 // any code that expects it to be valid beyond this call. 102 // any code that expects it to be valid beyond this call.
84 virtual void CloseNow() = 0; 103 virtual void CloseNow() = 0;
85 104
86 // Shows or hides the widget, without changing activation state. 105 // Shows or hides the widget, without changing activation state.
87 virtual void Show() = 0; 106 virtual void Show() = 0;
88 virtual void Hide() = 0; 107 virtual void Hide() = 0;
89 108
90 // Returns the gfx::NativeView associated with this Widget. 109 // Returns the gfx::NativeView associated with this Widget.
91 virtual gfx::NativeView GetNativeView() const = 0; 110 virtual gfx::NativeView GetNativeView() const = 0;
92 111
93 // Forces a paint of a specified rectangle immediately. 112 // Forces a paint of a specified rectangle immediately.
94 virtual void PaintNow(const gfx::Rect& update_rect) = 0; 113 virtual void PaintNow(const gfx::Rect& update_rect) = 0;
95 114
96 // Sets the opacity of the widget. This may allow widgets behind the widget 115 // Sets the opacity of the widget. This may allow widgets behind the widget
97 // in the Z-order to become visible, depending on the capabilities of the 116 // in the Z-order to become visible, depending on the capabilities of the
98 // underlying windowing system. Note that the caller must then schedule a 117 // underlying windowing system. Note that the caller must then schedule a
99 // repaint to allow this change to take effect. 118 // repaint to allow this change to take effect.
100 virtual void SetOpacity(unsigned char opacity) = 0; 119 virtual void SetOpacity(unsigned char opacity) = 0;
101 120
121 // Sets the widget to be on top of all other widgets in the windowing system.
122 virtual void SetAlwaysOnTop(bool on_top) = 0;
123
102 // Returns the RootView contained by this Widget. 124 // Returns the RootView contained by this Widget.
103 virtual RootView* GetRootView() = 0; 125 virtual RootView* GetRootView() = 0;
104 126
105 // Returns the Widget associated with the root ancestor. 127 // Returns the Widget associated with the root ancestor.
106 virtual Widget* GetRootWidget() const = 0; 128 virtual Widget* GetRootWidget() const = 0;
107 129
108 // Returns whether the Widget is visible to the user. 130 // Returns whether the Widget is visible to the user.
109 virtual bool IsVisible() const = 0; 131 virtual bool IsVisible() const = 0;
110 132
111 // Returns whether the Widget is the currently active window. 133 // Returns whether the Widget is the currently active window.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 virtual FocusManager* GetFocusManager() { return NULL; } 167 virtual FocusManager* GetFocusManager() { return NULL; }
146 168
147 // Forwarded from the RootView so that the widget can do any cleanup. 169 // Forwarded from the RootView so that the widget can do any cleanup.
148 virtual void ViewHierarchyChanged(bool is_add, View *parent, 170 virtual void ViewHierarchyChanged(bool is_add, View *parent,
149 View *child) = 0; 171 View *child) = 0;
150 }; 172 };
151 173
152 } // namespace views 174 } // namespace views
153 175
154 #endif // VIEWS_WIDGET_WIDGET_H_ 176 #endif // VIEWS_WIDGET_WIDGET_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698