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 #include "athena/main/athena_views_delegate.h" 6 7 #include "athena/main/athena_frame_view.h" 8 #include "athena/screen/public/screen_manager.h" 9 #include "ui/views/views_delegate.h" 10 11 namespace athena { 12 13 namespace { 14 15 class AthenaViewsDelegate: public views::ViewsDelegate { 16 public: 17 AthenaViewsDelegate() { 18 } 19 20 virtual ~AthenaViewsDelegate() { 21 } 22 23 virtual void OnBeforeWidgetInit( 24 views::Widget::InitParams* params, 25 views::internal::NativeWidgetDelegate* delegate) OVERRIDE { 26 params->context = athena::ScreenManager::Get()->GetContext(); 27 } 28 29 virtual views::NonClientFrameView* CreateDefaultNonClientFrameView( 30 views::Widget* widget) OVERRIDE { 31 return new AthenaFrameView(widget); 32 } 33 34 private: 35 DISALLOW_COPY_AND_ASSIGN(AthenaViewsDelegate); 36 }; 37 38 } // namespace 39 40 void CreateAthenaViewsDelegate() { 41 views::ViewsDelegate::views_delegate = new AthenaViewsDelegate; 42 } 43 44 void ShutdownAthenaViewsDelegate() { 45 CHECK(views::ViewsDelegate::views_delegate); 46 delete views::ViewsDelegate::views_delegate; 47 views::ViewsDelegate::views_delegate = NULL; 48 } 49 50 } // namespace athena 51