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 CHROME_BROWSER_UI_VIEWS_APPS_GLASS_APP_WINDOW_FRAME_VIEW_WIN_H_ 6#define CHROME_BROWSER_UI_VIEWS_APPS_GLASS_APP_WINDOW_FRAME_VIEW_WIN_H_ 7 8#include "ui/gfx/geometry/insets.h" 9#include "ui/views/window/non_client_view.h" 10 11namespace extensions { 12class NativeAppWindow; 13} 14 15// A glass style app window frame view. 16class GlassAppWindowFrameViewWin : public views::NonClientFrameView { 17 public: 18 static const char kViewClassName[]; 19 20 explicit GlassAppWindowFrameViewWin(extensions::NativeAppWindow* window, 21 views::Widget* widget); 22 virtual ~GlassAppWindowFrameViewWin(); 23 24 gfx::Insets GetGlassInsets() const; 25 26 private: 27 // views::NonClientFrameView implementation. 28 virtual gfx::Rect GetBoundsForClientView() const OVERRIDE; 29 virtual gfx::Rect GetWindowBoundsForClientBounds( 30 const gfx::Rect& client_bounds) const OVERRIDE; 31 virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE; 32 virtual void GetWindowMask(const gfx::Size& size, 33 gfx::Path* window_mask) OVERRIDE; 34 virtual void ResetWindowControls() OVERRIDE {} 35 virtual void UpdateWindowIcon() OVERRIDE {} 36 virtual void UpdateWindowTitle() OVERRIDE {} 37 virtual void SizeConstraintsChanged() OVERRIDE {} 38 39 // views::View implementation. 40 virtual gfx::Size GetPreferredSize() const OVERRIDE; 41 virtual const char* GetClassName() const OVERRIDE; 42 virtual gfx::Size GetMinimumSize() const OVERRIDE; 43 virtual gfx::Size GetMaximumSize() const OVERRIDE; 44 45 extensions::NativeAppWindow* window_; 46 views::Widget* widget_; 47 48 DISALLOW_COPY_AND_ASSIGN(GlassAppWindowFrameViewWin); 49}; 50 51#endif // CHROME_BROWSER_UI_VIEWS_APPS_GLASS_APP_WINDOW_FRAME_VIEW_WIN_H_ 52