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  static const char kViewClassName[];
17
18  explicit NativeFrameView(Widget* frame);
19  virtual ~NativeFrameView();
20
21  // NonClientFrameView overrides:
22  virtual gfx::Rect GetBoundsForClientView() const OVERRIDE;
23  virtual gfx::Rect GetWindowBoundsForClientBounds(
24      const gfx::Rect& client_bounds) const OVERRIDE;
25  virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE;
26  virtual void GetWindowMask(const gfx::Size& size,
27                             gfx::Path* window_mask) OVERRIDE;
28  virtual void ResetWindowControls() OVERRIDE;
29  virtual void UpdateWindowIcon() OVERRIDE;
30  virtual void UpdateWindowTitle() OVERRIDE;
31  virtual void SizeConstraintsChanged() OVERRIDE;
32
33  // View overrides:
34  virtual gfx::Size GetPreferredSize() const OVERRIDE;
35  virtual gfx::Size GetMinimumSize() const OVERRIDE;
36  virtual gfx::Size GetMaximumSize() const OVERRIDE;
37  virtual const char* GetClassName() const OVERRIDE;
38
39 private:
40  // Our containing frame.
41  Widget* frame_;
42
43  DISALLOW_COPY_AND_ASSIGN(NativeFrameView);
44};
45
46}  // namespace views
47
48#endif  // UI_VIEWS_WINDOW_NATIVE_FRAME_VIEW_H_
49