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

Unified Diff: views/window/non_client_view.h

Issue 8552005: views: Move views/window/ to ui/views/window directory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « views/window/native_frame_view.cc ('k') | views/window/non_client_view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « views/window/native_frame_view.cc ('k') | views/window/non_client_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698