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