summaryrefslogtreecommitdiffstats
path: root/ui/views/widget/widget.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/views/widget/widget.h')
-rw-r--r--ui/views/widget/widget.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
index b97e7933..42c5c32 100644
--- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h
@@ -10,17 +10,24 @@
#include "base/task.h"
#include "gfx/point.h"
#include "ui/views/native_types.h"
+#include "ui/views/focus/focus_manager.h"
#include "ui/views/widget/native_widget_listener.h"
namespace gfx {
+class Canvas;
class Path;
class Rect;
+class Size;
}
namespace ui {
namespace internal {
class RootView;
}
+class FocusManager;
+class KeyEvent;
+class MouseEvent;
+class MouseWheelEvent;
class NativeWidget;
class ThemeProvider;
class View;
@@ -51,6 +58,9 @@ class Widget : public internal::NativeWidgetListener {
void InitWithWidgetParent(Widget* parent, const gfx::Rect& bounds);
void InitWithViewParent(View* parent, const gfx::Rect& bounds);
+ // Returns the topmost Widget in a hierarchy.
+ Widget* GetTopLevelWidget() const;
+
// Returns the bounding rect of the Widget in screen coordinates.
gfx::Rect GetWindowScreenBounds() const;
@@ -80,10 +90,14 @@ class Widget : public internal::NativeWidgetListener {
// rendering Views associated with this Widget.
ThemeProvider* GetThemeProvider() const;
+ // Returns the FocusManager for this Widget. Only top-level Widgets have
+ // FocusManagers.
+ FocusManager* GetFocusManager() const;
+
NativeWidget* native_widget() const { return native_widget_.get(); }
private:
- // NativeWidgetListener implementation:
+ // Overridden from internal::NativeWidgetListener:
virtual void OnClose();
virtual void OnDestroy();
virtual void OnDisplayChanged();
@@ -94,7 +108,10 @@ class Widget : public internal::NativeWidgetListener {
virtual void OnNativeWidgetCreated();
virtual void OnPaint(gfx::Canvas* canvas);
virtual void OnSizeChanged(const gfx::Size& size);
+ virtual void OnNativeFocus(gfx::NativeView focused_view);
+ virtual void OnNativeBlur(gfx::NativeView focused_view);
virtual void OnWorkAreaChanged();
+ virtual Widget* GetWidget() const;
// Causes the Widget to be destroyed immediately.
void CloseNow();
@@ -122,6 +139,8 @@ class Widget : public internal::NativeWidgetListener {
// True if the Widget should be automatically deleted when it is destroyed.
bool delete_on_destroy_;
+ scoped_ptr<FocusManager> focus_manager_;
+
DISALLOW_COPY_AND_ASSIGN(Widget);
};