| Index: mash/wm/frame/non_client_frame_view_mash.h
|
| diff --git a/mash/wm/frame/non_client_frame_view_mash.h b/mash/wm/frame/non_client_frame_view_mash.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..31b6880288c390250ec50f2fd66711b0ac50f2e2
|
| --- /dev/null
|
| +++ b/mash/wm/frame/non_client_frame_view_mash.h
|
| @@ -0,0 +1,107 @@
|
| +// Copyright 2015 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 MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_
|
| +#define MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_
|
| +
|
| +#include "base/macros.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "components/mus/public/cpp/window_observer.h"
|
| +#include "third_party/skia/include/core/SkColor.h"
|
| +#include "ui/compositor/paint_cache.h"
|
| +#include "ui/views/window/non_client_view.h"
|
| +
|
| +namespace gfx {
|
| +class Insets;
|
| +}
|
| +
|
| +namespace mus {
|
| +class Window;
|
| +}
|
| +
|
| +namespace views {
|
| +class Widget;
|
| +}
|
| +
|
| +namespace mash {
|
| +namespace wm {
|
| +
|
| +class FrameCaptionButtonContainerView;
|
| +class MoveLoop;
|
| +
|
| +class NonClientFrameViewMash : public views::NonClientFrameView,
|
| + public mus::WindowObserver {
|
| + public:
|
| + // Internal class name.
|
| + static const char kViewClassName[];
|
| +
|
| + NonClientFrameViewMash(views::Widget* frame, mus::Window* window);
|
| + ~NonClientFrameViewMash() override;
|
| +
|
| + static gfx::Insets GetPreferredClientAreaInsets();
|
| +
|
| + // Sets the active and inactive frame colors. Note the inactive frame color
|
| + // will have some transparency added when the frame is drawn.
|
| + void SetFrameColors(SkColor active_frame_color, SkColor inactive_frame_color);
|
| +
|
| + // views::NonClientFrameView:
|
| + gfx::Rect GetBoundsForClientView() const override;
|
| + gfx::Rect GetWindowBoundsForClientBounds(
|
| + const gfx::Rect& client_bounds) const override;
|
| + int NonClientHitTest(const gfx::Point& point) override;
|
| + void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) override;
|
| + void ResetWindowControls() override;
|
| + void UpdateWindowIcon() override;
|
| + void UpdateWindowTitle() override;
|
| + void SizeConstraintsChanged() override;
|
| +
|
| + // views::View:
|
| + void Layout() override;
|
| + gfx::Size GetPreferredSize() const override;
|
| + const char* GetClassName() const override;
|
| + gfx::Size GetMinimumSize() const override;
|
| + gfx::Size GetMaximumSize() const override;
|
| + void OnPaint(gfx::Canvas* canvas) override;
|
| + void PaintChildren(const ui::PaintContext& context) override;
|
| + bool OnMousePressed(const ui::MouseEvent& event) override;
|
| + bool OnMouseDragged(const ui::MouseEvent& event) override;
|
| + void OnMouseReleased(const ui::MouseEvent& event) override;
|
| + void OnMouseCaptureLost() override;
|
| +
|
| + // mus::WindowObserver:
|
| + void OnWindowClientAreaChanged(mus::Window* window,
|
| + const gfx::Insets& old_client_area) override;
|
| + void OnWindowDestroyed(mus::Window* window) override;
|
| +
|
| + // Get the view of the header.
|
| + views::View* GetHeaderView();
|
| +
|
| + private:
|
| + class OverlayView;
|
| +
|
| + // Height from top of window to top of client area.
|
| + int NonClientTopBorderHeight() const;
|
| +
|
| + bool StartMoveLoopIfNecessary(const ui::Event& event);
|
| + void ContinueMove(const ui::Event& event);
|
| + void StopMove();
|
| +
|
| + // Not owned.
|
| + views::Widget* frame_;
|
| +
|
| + mus::Window* window_;
|
| + ui::PaintCache paint_cache_;
|
| + scoped_ptr<MoveLoop> move_loop_;
|
| +
|
| + // View which contains the title and window controls.
|
| + class HeaderView;
|
| + HeaderView* header_view_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(NonClientFrameViewMash);
|
| +};
|
| +
|
| +} // namespace wm
|
| +} // namespace mash
|
| +
|
| +#endif // MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_
|
|
|