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 11namespace athena { 12 13namespace { 14 15class 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 40void CreateAthenaViewsDelegate() { 41 views::ViewsDelegate::views_delegate = new AthenaViewsDelegate; 42} 43 44void 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