| Index: athena/main/athena_views_delegate.cc
|
| diff --git a/athena/main/athena_views_delegate.cc b/athena/main/athena_views_delegate.cc
|
| index 3f30cda33e35af3a88e70c88c49760c34dbbcb2e..4db7ff981148ee2930dc01ad229803101291ce12 100644
|
| --- a/athena/main/athena_views_delegate.cc
|
| +++ b/athena/main/athena_views_delegate.cc
|
| @@ -6,18 +6,45 @@
|
|
|
| #include "athena/main/athena_frame_view.h"
|
| #include "athena/screen/public/screen_manager.h"
|
| +#include "ui/views/views_delegate.h"
|
|
|
| namespace athena {
|
|
|
| -void AthenaViewsDelegate::OnBeforeWidgetInit(
|
| - views::Widget::InitParams* params,
|
| - views::internal::NativeWidgetDelegate* delegate) {
|
| - params->context = athena::ScreenManager::Get()->GetContext();
|
| +namespace {
|
| +
|
| +class AthenaViewsDelegate: public views::ViewsDelegate {
|
| + public:
|
| + AthenaViewsDelegate() {
|
| + }
|
| +
|
| + virtual ~AthenaViewsDelegate() {
|
| + }
|
| +
|
| + 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;
|
| }
|
|
|
| -views::NonClientFrameView* AthenaViewsDelegate::CreateDefaultNonClientFrameView(
|
| - views::Widget* widget) {
|
| - return new AthenaFrameView(widget);
|
| +void ShutdownAthenaViewsDelegate() {
|
| + CHECK(views::ViewsDelegate::views_delegate);
|
| + delete views::ViewsDelegate::views_delegate;
|
| + views::ViewsDelegate::views_delegate = NULL;
|
| }
|
|
|
| } // namespace athena
|
|
|