| // 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 |