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.
5 #ifndef ATHENA_ACTIVITY_ACTIVITY_FRAME_VIEW_H_
6 #define ATHENA_ACTIVITY_ACTIVITY_FRAME_VIEW_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/views/window/non_client_view.h"
18 class ActivityViewModel
;
20 // A NonClientFrameView used for activity.
21 class ActivityFrameView
: public views::NonClientFrameView
{
23 // Internal class name.
24 static const char kViewClassName
[];
26 ActivityFrameView(views::Widget
* frame
, ActivityViewModel
* view_model
);
27 virtual ~ActivityFrameView();
29 // views::NonClientFrameView overrides:
30 virtual gfx::Rect
GetBoundsForClientView() const OVERRIDE
;
31 virtual gfx::Rect
GetWindowBoundsForClientBounds(
32 const gfx::Rect
& client_bounds
) const OVERRIDE
;
33 virtual int NonClientHitTest(const gfx::Point
& point
) OVERRIDE
;
34 virtual void GetWindowMask(const gfx::Size
& size
,
35 gfx::Path
* window_mask
) OVERRIDE
;
36 virtual void ResetWindowControls() OVERRIDE
;
37 virtual void UpdateWindowIcon() OVERRIDE
;
38 virtual void UpdateWindowTitle() OVERRIDE
;
40 // views::View overrides:
41 virtual gfx::Size
GetPreferredSize() const OVERRIDE
;
42 virtual const char* GetClassName() const OVERRIDE
;
43 virtual void Layout() OVERRIDE
;
46 int NonClientTopBorderHeight() const;
49 views::Widget
* frame_
;
50 ActivityViewModel
* view_model_
;
53 DISALLOW_COPY_AND_ASSIGN(ActivityFrameView
);
58 #endif // ATHENA_ACTIVITY_ACTIVITY_FRAME_VIEW_H_