diff options
Diffstat (limited to 'ui/views/widget/root_view.h')
-rw-r--r-- | ui/views/widget/root_view.h | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/ui/views/widget/root_view.h b/ui/views/widget/root_view.h deleted file mode 100644 index d5df829..0000000 --- a/ui/views/widget/root_view.h +++ /dev/null @@ -1,207 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_VIEWS_WIDGET_ROOT_VIEW_H_ -#define UI_VIEWS_WIDGET_ROOT_VIEW_H_ -#pragma once - -#include <string> - -#include "base/memory/ref_counted.h" -#include "ui/views/focus/focus_manager.h" -#include "ui/views/focus/focus_search.h" -#include "views/view.h" - -namespace ui { -enum TouchStatus; -} - -namespace views { - -class Widget; -class GestureManager; - -// This is a views-internal API and should not be used externally. -// Widget exposes this object as a View*. -namespace internal { - -//////////////////////////////////////////////////////////////////////////////// -// RootView class -// -// The RootView is the root of a View hierarchy. A RootView is attached to a -// Widget. The Widget is responsible for receiving events from the host -// environment, converting them to views-compatible events and then forwarding -// them to the RootView for propagation into the View hierarchy. -// -// A RootView can have only one child, called its "Contents View" which is -// sized to fill the bounds of the RootView (and hence the client area of the -// Widget). Call SetContentsView() after the associated Widget has been -// initialized to attach the contents view to the RootView. -// TODO(beng): Enforce no other callers to AddChildView/tree functions by -// overriding those methods as private here. -// TODO(beng): Clean up API further, make Widget a friend. -// TODO(sky): We don't really want to export this class. -// -class VIEWS_EXPORT RootView : public View, public FocusTraversable { - public: - static const char kViewClassName[]; - - // Creation and lifetime ----------------------------------------------------- - explicit RootView(Widget* widget); - virtual ~RootView(); - - // Tree operations ----------------------------------------------------------- - - // Sets the "contents view" of the RootView. This is the single child view - // that is responsible for laying out the contents of the widget. - void SetContentsView(View* contents_view); - View* GetContentsView(); - - // Called when parent of the host changed. - void NotifyNativeViewHierarchyChanged(bool attached, - gfx::NativeView native_view); - - // Input --------------------------------------------------------------------- - - // Process a key event. Send the event to the focused view and up the focus - // path, and finally to the default keyboard handler, until someone consumes - // it. Returns whether anyone consumed the event. - bool OnKeyEvent(const KeyEvent& event); - - // Provided only for testing: - void SetGestureManagerForTesting(GestureManager* g) { gesture_manager_ = g; } - - // Focus --------------------------------------------------------------------- - - // Used to set the FocusTraversable parent after the view has been created - // (typically when the hierarchy changes and this RootView is added/removed). - virtual void SetFocusTraversableParent(FocusTraversable* focus_traversable); - - // Used to set the View parent after the view has been created. - virtual void SetFocusTraversableParentView(View* view); - - // System events ------------------------------------------------------------- - - // Public API for broadcasting theme change notifications to this View - // hierarchy. - void ThemeChanged(); - - // Public API for broadcasting locale change notifications to this View - // hierarchy. - void LocaleChanged(); - - // Overridden from FocusTraversable: - virtual FocusSearch* GetFocusSearch() OVERRIDE; - virtual FocusTraversable* GetFocusTraversableParent() OVERRIDE; - virtual View* GetFocusTraversableParentView() OVERRIDE; - - // Overridden from View: - virtual const Widget* GetWidget() const OVERRIDE; - virtual Widget* GetWidget() OVERRIDE; - virtual bool IsVisibleInRootView() const OVERRIDE; - virtual std::string GetClassName() const OVERRIDE; - virtual void SchedulePaintInRect(const gfx::Rect& rect) OVERRIDE; - virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE; - virtual bool OnMouseDragged(const MouseEvent& event) OVERRIDE; - virtual void OnMouseReleased(const MouseEvent& event) OVERRIDE; - virtual void OnMouseCaptureLost() OVERRIDE; - virtual void OnMouseMoved(const MouseEvent& event) OVERRIDE; - virtual void OnMouseExited(const MouseEvent& event) OVERRIDE; - virtual bool OnMouseWheel(const MouseWheelEvent& event) OVERRIDE; - virtual ui::TouchStatus OnTouchEvent(const TouchEvent& event) OVERRIDE; - virtual void SetMouseHandler(View* new_mouse_handler) OVERRIDE; - virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; - - protected: - // Overridden from View: - virtual void ViewHierarchyChanged(bool is_add, View* parent, - View* child) OVERRIDE; - virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; - virtual void CalculateOffsetToAncestorWithLayer( - gfx::Point* offset, - ui::Layer** layer_parent) OVERRIDE; - - private: - friend class View; - friend class Widget; - - // Required so the GestureManager can call the Process* entry points - // with synthetic events as necessary. - friend class GestureManager; - - // Input --------------------------------------------------------------------- - - // Update the cursor given a mouse event. This is called by non mouse_move - // event handlers to honor the cursor desired by views located under the - // cursor during drag operations. The location of the mouse should be in the - // current coordinate system (i.e. any necessary transformation should be - // applied to the point prior to calling this). - void UpdateCursor(const MouseEvent& event); - - // Updates the last_mouse_* fields from e. The location of the mouse should be - // in the current coordinate system (i.e. any necessary transformation should - // be applied to the point prior to calling this). - void SetMouseLocationAndFlags(const MouseEvent& event); - - ////////////////////////////////////////////////////////////////////////////// - - // Tree operations ----------------------------------------------------------- - - // The host Widget - Widget* widget_; - - // Input --------------------------------------------------------------------- - - // The view currently handing down - drag - up - View* mouse_pressed_handler_; - - // The view currently handling enter / exit - View* mouse_move_handler_; - - // The last view to handle a mouse click, so that we can determine if - // a double-click lands on the same view as its single-click part. - View* last_click_handler_; - - // true if mouse_pressed_handler_ has been explicitly set - bool explicit_mouse_handler_; - - // Last position/flag of a mouse press/drag. Used if capture stops and we need - // to synthesize a release. - int last_mouse_event_flags_; - int last_mouse_event_x_; - int last_mouse_event_y_; - - // The gesture_manager_ for this. - GestureManager* gesture_manager_; - - // The view currently handling touch events. - View* touch_pressed_handler_; - - // Focus --------------------------------------------------------------------- - - // The focus search algorithm. - FocusSearch focus_search_; - - // Whether this root view belongs to the current active window. - // bool activated_; - - // The parent FocusTraversable, used for focus traversal. - FocusTraversable* focus_traversable_parent_; - - // The View that contains this RootView. This is used when we have RootView - // wrapped inside native components, and is used for the focus traversal. - View* focus_traversable_parent_view_; - - // Drag and drop ------------------------------------------------------------- - - // Tracks drag state for a view. - View::DragInfo drag_info; - - DISALLOW_IMPLICIT_CONSTRUCTORS(RootView); -}; - -} // namespace internal -} // namespace views - -#endif // UI_VIEWS_WIDGET_ROOT_VIEW_H_ |