11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "athena/main/athena_views_delegate.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "athena/main/athena_frame_view.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "athena/screen/public/screen_manager.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/views/views_delegate.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace athena { 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace { 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass AthenaViewsDelegate: public views::ViewsDelegate { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci AthenaViewsDelegate() { 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~AthenaViewsDelegate() { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void OnBeforeWidgetInit( 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci views::Widget::InitParams* params, 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci views::internal::NativeWidgetDelegate* delegate) OVERRIDE { 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci params->context = athena::ScreenManager::Get()->GetContext(); 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual views::NonClientFrameView* CreateDefaultNonClientFrameView( 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci views::Widget* widget) OVERRIDE { 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return new AthenaFrameView(widget); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(AthenaViewsDelegate); 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid CreateAthenaViewsDelegate() { 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci views::ViewsDelegate::views_delegate = new AthenaViewsDelegate; 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid ShutdownAthenaViewsDelegate() { 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci CHECK(views::ViewsDelegate::views_delegate); 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci delete views::ViewsDelegate::views_delegate; 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci views::ViewsDelegate::views_delegate = NULL; 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace athena 51