1// Copyright 2014 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 ATHENA_COMMON_ATHENA_FRAME_VIEW_H_
6#define ATHENA_COMMON_ATHENA_FRAME_VIEW_H_
7
8#include "ui/views/window/non_client_view.h"
9
10namespace views {
11class Widget;
12}
13
14namespace athena {
15
16// A NonClientFrameView used for non activity window.
17// TODO(oshima): Move this to athena/util and share the code.
18class AthenaFrameView : public views::NonClientFrameView {
19 public:
20  // The frame class name.
21  static const char kViewClassName[];
22
23  explicit AthenaFrameView(views::Widget* frame);
24  virtual ~AthenaFrameView();
25
26  // views::NonClientFrameView overrides:
27  virtual gfx::Rect GetBoundsForClientView() const OVERRIDE;
28  virtual gfx::Rect GetWindowBoundsForClientBounds(
29      const gfx::Rect& client_bounds) const OVERRIDE;
30  virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE;
31  virtual void GetWindowMask(const gfx::Size& size,
32                             gfx::Path* window_mask) OVERRIDE {}
33  virtual void ResetWindowControls() OVERRIDE {}
34  virtual void UpdateWindowIcon() OVERRIDE {}
35  virtual void UpdateWindowTitle() OVERRIDE {}
36  virtual void SizeConstraintsChanged() OVERRIDE {}
37
38  // views::View overrides:
39  virtual gfx::Size GetPreferredSize() const OVERRIDE;
40  virtual const char* GetClassName() const OVERRIDE;
41  virtual void Layout() OVERRIDE {}
42
43 private:
44  gfx::Insets NonClientBorderInsets() const;
45
46  virtual int NonClientTopBorderHeight() const;
47  virtual int NonClientBorderThickness() const;
48
49  // Not owned.
50  views::Widget* frame_;
51
52  DISALLOW_COPY_AND_ASSIGN(AthenaFrameView);
53};
54
55}  // namespace athena
56
57#endif  // ATHENA_COMMON_ATHENA_FRAME_VIEW_H_
58