1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef UI_VIEWS_WINDOW_NATIVE_FRAME_VIEW_H_
6#define UI_VIEWS_WINDOW_NATIVE_FRAME_VIEW_H_
7
8#include "ui/views/window/non_client_view.h"
9
10namespace views {
11
12class Widget;
13
14class VIEWS_EXPORT NativeFrameView : public NonClientFrameView {
15 public:
16  explicit NativeFrameView(Widget* frame);
17  virtual ~NativeFrameView();
18
19  // NonClientFrameView overrides:
20  virtual gfx::Rect GetBoundsForClientView() const OVERRIDE;
21  virtual gfx::Rect GetWindowBoundsForClientBounds(
22      const gfx::Rect& client_bounds) const OVERRIDE;
23  virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE;
24  virtual void GetWindowMask(const gfx::Size& size,
25                             gfx::Path* window_mask) OVERRIDE;
26  virtual void ResetWindowControls() OVERRIDE;
27  virtual void UpdateWindowIcon() OVERRIDE;
28  virtual void UpdateWindowTitle() OVERRIDE;
29
30  // View overrides:
31  virtual gfx::Size GetPreferredSize() OVERRIDE;
32  virtual gfx::Size GetMinimumSize() OVERRIDE;
33  virtual gfx::Size GetMaximumSize() OVERRIDE;
34
35 private:
36  // Our containing frame.
37  Widget* frame_;
38
39  DISALLOW_COPY_AND_ASSIGN(NativeFrameView);
40};
41
42}  // namespace views
43
44#endif  // UI_VIEWS_WINDOW_NATIVE_FRAME_VIEW_H_
45