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