Home | History | Annotate | Download | only in main
      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