| Index: views/window/non_client_view.h
|
| diff --git a/views/window/non_client_view.h b/views/window/non_client_view.h
|
| index 2cc717b4a300823ffb016a6590c55094e7050edc..d6bb58566ebedb5f4977d7a93b3cebcbb2dc901f 100644
|
| --- a/views/window/non_client_view.h
|
| +++ b/views/window/non_client_view.h
|
| @@ -6,235 +6,7 @@
|
| #define VIEWS_WINDOW_NON_CLIENT_VIEW_H_
|
| #pragma once
|
|
|
| -#include "views/view.h"
|
| -#include "views/window/client_view.h"
|
| +#include "ui/views/window/non_client_view.h"
|
| +// TODO(tfarina): remove this file once all includes have been updated.
|
|
|
| -namespace gfx {
|
| -class Path;
|
| -}
|
| -
|
| -namespace views {
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// NonClientFrameView
|
| -//
|
| -// An object that subclasses NonClientFrameView is a View that renders and
|
| -// responds to events within the frame portions of the non-client area of a
|
| -// window. This view does _not_ contain the ClientView, but rather is a sibling
|
| -// of it.
|
| -class VIEWS_EXPORT NonClientFrameView : public View {
|
| - public:
|
| - // Internal class name.
|
| - static const char kViewClassName[];
|
| - // Various edges of the frame border have a 1 px shadow along their edges; in
|
| - // a few cases we shift elements based on this amount for visual appeal.
|
| - static const int kFrameShadowThickness;
|
| - // In restored mode, we draw a 1 px edge around the content area inside the
|
| - // frame border.
|
| - static const int kClientEdgeThickness;
|
| -
|
| - // Sets whether the window should be rendered as active regardless of the
|
| - // actual active state. Used when bubbles become active to make their parent
|
| - // appear active. A value of true makes the window render as active always,
|
| - // false gives normal behavior.
|
| - void SetInactiveRenderingDisabled(bool disable);
|
| -
|
| - // Returns the bounds (in this View's parent's coordinates) that the client
|
| - // view should be laid out within.
|
| - virtual gfx::Rect GetBoundsForClientView() const = 0;
|
| -
|
| - virtual gfx::Rect GetWindowBoundsForClientBounds(
|
| - const gfx::Rect& client_bounds) const = 0;
|
| -
|
| - // This function must ask the ClientView to do a hittest. We don't do this in
|
| - // the parent NonClientView because that makes it more difficult to calculate
|
| - // hittests for regions that are partially obscured by the ClientView, e.g.
|
| - // HTSYSMENU.
|
| - virtual int NonClientHitTest(const gfx::Point& point) = 0;
|
| - virtual void GetWindowMask(const gfx::Size& size,
|
| - gfx::Path* window_mask) = 0;
|
| - virtual void EnableClose(bool enable) = 0;
|
| - virtual void ResetWindowControls() = 0;
|
| - virtual void UpdateWindowIcon() = 0;
|
| -
|
| - // Overridden from View:
|
| - virtual bool HitTest(const gfx::Point& l) const OVERRIDE;
|
| - virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
|
| - virtual std::string GetClassName() const OVERRIDE;
|
| -
|
| - protected:
|
| - virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE;
|
| -
|
| - NonClientFrameView() : paint_as_active_(false) {}
|
| -
|
| - // Helper for non-client view implementations to determine which area of the
|
| - // window border the specified |point| falls within. The other parameters are
|
| - // the size of the sizing edges, and whether or not the window can be
|
| - // resized.
|
| - int GetHTComponentForFrame(const gfx::Point& point,
|
| - int top_resize_border_height,
|
| - int resize_border_thickness,
|
| - int top_resize_corner_height,
|
| - int resize_corner_width,
|
| - bool can_resize);
|
| -
|
| - // Used to determine if the frame should be painted as active. Keyed off the
|
| - // window's actual active state and the override, see
|
| - // SetInactiveRenderingDisabled() above.
|
| - bool ShouldPaintAsActive() const;
|
| -
|
| - // Invoked from SetInactiveRenderingDisabled(). This implementation invokes
|
| - // SchedulesPaint as necessary.
|
| - virtual void ShouldPaintAsActiveChanged();
|
| -
|
| - private:
|
| - // True when the non-client view should always be rendered as if the window
|
| - // were active, regardless of whether or not the top level window actually
|
| - // is active.
|
| - bool paint_as_active_;
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// NonClientView
|
| -//
|
| -// The NonClientView is the logical root of all Views contained within a
|
| -// Window, except for the RootView which is its parent and of which it is the
|
| -// sole child. The NonClientView has two children, the NonClientFrameView which
|
| -// is responsible for painting and responding to events from the non-client
|
| -// portions of the window, and the ClientView, which is responsible for the
|
| -// same for the client area of the window:
|
| -//
|
| -// +- views::Window ------------------------------------+
|
| -// | +- views::RootView ------------------------------+ |
|
| -// | | +- views::NonClientView ---------------------+ | |
|
| -// | | | +- views::NonClientFrameView subclas ---+ | | |
|
| -// | | | | | | | |
|
| -// | | | | << all painting and event receiving >> | | | |
|
| -// | | | | << of the non-client areas of a >> | | | |
|
| -// | | | | << views::Window. >> | | | |
|
| -// | | | | | | | |
|
| -// | | | +----------------------------------------+ | | |
|
| -// | | | +- views::ClientView or subclass --------+ | | |
|
| -// | | | | | | | |
|
| -// | | | | << all painting and event receiving >> | | | |
|
| -// | | | | << of the client areas of a >> | | | |
|
| -// | | | | << views::Window. >> | | | |
|
| -// | | | | | | | |
|
| -// | | | +----------------------------------------+ | | |
|
| -// | | +--------------------------------------------+ | |
|
| -// | +------------------------------------------------+ |
|
| -// +----------------------------------------------------+
|
| -//
|
| -// The NonClientFrameView and ClientView are siblings because due to theme
|
| -// changes the NonClientFrameView may be replaced with different
|
| -// implementations (e.g. during the switch from DWM/Aero-Glass to Vista Basic/
|
| -// Classic rendering).
|
| -//
|
| -class VIEWS_EXPORT NonClientView : public View {
|
| - public:
|
| - // Internal class name.
|
| - static const char kViewClassName[];
|
| -
|
| - NonClientView();
|
| - virtual ~NonClientView();
|
| -
|
| - // Returns the current NonClientFrameView instance, or NULL if
|
| - // it does not exist.
|
| - NonClientFrameView* frame_view() const { return frame_view_.get(); }
|
| -
|
| - // Replaces the current NonClientFrameView (if any) with the specified one.
|
| - void SetFrameView(NonClientFrameView* frame_view);
|
| -
|
| - // Returns true if the ClientView determines that the containing window can be
|
| - // closed, false otherwise.
|
| - bool CanClose();
|
| -
|
| - // Called by the containing Window when it is closed.
|
| - void WindowClosing();
|
| -
|
| - // Changes the frame from native to custom depending on the value of
|
| - // |use_native_frame|.
|
| - void UpdateFrame();
|
| -
|
| - // Prevents the window from being rendered as deactivated when |disable| is
|
| - // true, until called with |disable| false. Used when a sub-window is to be
|
| - // shown that shouldn't visually de-activate the window.
|
| - // Subclasses can override this to perform additional actions when this value
|
| - // changes.
|
| - void SetInactiveRenderingDisabled(bool disable);
|
| -
|
| - // Returns the bounds of the window required to display the content area at
|
| - // the specified bounds.
|
| - gfx::Rect GetWindowBoundsForClientBounds(const gfx::Rect client_bounds) const;
|
| -
|
| - // Determines the windows HT* code when the mouse cursor is at the
|
| - // specified point, in window coordinates.
|
| - int NonClientHitTest(const gfx::Point& point);
|
| -
|
| - // Returns a mask to be used to clip the top level window for the given
|
| - // size. This is used to create the non-rectangular window shape.
|
| - void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask);
|
| -
|
| - // Toggles the enable state for the Close button (and the Close menu item in
|
| - // the system menu).
|
| - void EnableClose(bool enable);
|
| -
|
| - // Tells the window controls as rendered by the NonClientView to reset
|
| - // themselves to a normal state. This happens in situations where the
|
| - // containing window does not receive a normal sequences of messages that
|
| - // would lead to the controls returning to this normal state naturally, e.g.
|
| - // when the window is maximized, minimized or restored.
|
| - void ResetWindowControls();
|
| -
|
| - // Tells the NonClientView to invalidate the NonClientFrameView's window icon.
|
| - void UpdateWindowIcon();
|
| -
|
| - // Get/Set client_view property.
|
| - ClientView* client_view() const { return client_view_; }
|
| - void set_client_view(ClientView* client_view) {
|
| - client_view_ = client_view;
|
| - }
|
| -
|
| - // Layout just the frame view. This is necessary on Windows when non-client
|
| - // metrics such as the position of the window controls changes independently
|
| - // of a window resize message.
|
| - void LayoutFrameView();
|
| -
|
| - // Set the accessible name of this view.
|
| - void SetAccessibleName(const string16& name);
|
| -
|
| - // NonClientView, View overrides:
|
| - virtual gfx::Size GetPreferredSize() OVERRIDE;
|
| - virtual gfx::Size GetMinimumSize() OVERRIDE;
|
| - virtual void Layout() OVERRIDE;
|
| - virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
|
| - virtual std::string GetClassName() const OVERRIDE;
|
| -
|
| - virtual views::View* GetEventHandlerForPoint(const gfx::Point& point)
|
| - OVERRIDE;
|
| -
|
| - protected:
|
| - // NonClientView, View overrides:
|
| - virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child)
|
| - OVERRIDE;
|
| -
|
| - private:
|
| - // A ClientView object or subclass, responsible for sizing the contents view
|
| - // of the window, hit testing and perhaps other tasks depending on the
|
| - // implementation.
|
| - ClientView* client_view_;
|
| -
|
| - // The NonClientFrameView that renders the non-client portions of the window.
|
| - // This object is not owned by the view hierarchy because it can be replaced
|
| - // dynamically as the system settings change.
|
| - scoped_ptr<NonClientFrameView> frame_view_;
|
| -
|
| - // The accessible name of this view.
|
| - string16 accessible_name_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(NonClientView);
|
| -};
|
| -
|
| -} // namespace views
|
| -
|
| -#endif // #ifndef VIEWS_WINDOW_NON_CLIENT_VIEW_H_
|
| +#endif // VIEWS_WINDOW_NON_CLIENT_VIEW_H_
|
|
|