// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "athena/main/athena_views_delegate.h" #include "athena/main/athena_frame_view.h" #include "athena/screen/public/screen_manager.h" #include "ui/views/views_delegate.h" namespace athena { namespace { class AthenaViewsDelegate: public views::ViewsDelegate { public: AthenaViewsDelegate() { } ~AthenaViewsDelegate() override {} virtual void OnBeforeWidgetInit( views::Widget::InitParams* params, views::internal::NativeWidgetDelegate* delegate) override { params->context = athena::ScreenManager::Get()->GetContext(); } virtual views::NonClientFrameView* CreateDefaultNonClientFrameView( views::Widget* widget) override { return new AthenaFrameView(widget); } private: DISALLOW_COPY_AND_ASSIGN(AthenaViewsDelegate); }; } // namespace void CreateAthenaViewsDelegate() { views::ViewsDelegate::views_delegate = new AthenaViewsDelegate; } void ShutdownAthenaViewsDelegate() { CHECK(views::ViewsDelegate::views_delegate); delete views::ViewsDelegate::views_delegate; views::ViewsDelegate::views_delegate = nullptr; } } // namespace athena