Chromium Code Reviews| 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..44f9a04560cc9a20676eeb61b0844b8a551f2c8f 100644 |
| --- a/athena/main/athena_views_delegate.cc |
| +++ b/athena/main/athena_views_delegate.cc |
| @@ -6,18 +6,49 @@ |
| #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 AthenaViewsDelegateImpl : public AthenaViewsDelegate, |
|
oshima
2014/09/23 20:35:53
and you don't have to extend AthenaViewsDelegate.
pkotwicz
2014/09/23 20:44:38
Oshima, do you think that it is worth AthenaViewsD
oshima
2014/09/23 20:49:56
SGTM
|
| + public views::ViewsDelegate { |
| + public: |
| + AthenaViewsDelegateImpl() { |
| + } |
| + |
| + virtual ~AthenaViewsDelegateImpl() { |
| + } |
| + |
| + 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(AthenaViewsDelegateImpl); |
| +}; |
| + |
| +} // namespace |
| + |
| +// static |
| +views::ViewsDelegate* AthenaViewsDelegate::Create() { |
| + views::ViewsDelegate::views_delegate = new AthenaViewsDelegateImpl; |
| + return views::ViewsDelegate::views_delegate; |
| } |
| -views::NonClientFrameView* AthenaViewsDelegate::CreateDefaultNonClientFrameView( |
| - views::Widget* widget) { |
| - return new AthenaFrameView(widget); |
| +// static |
| +void AthenaViewsDelegate::Shutdown() { |
| + CHECK(views::ViewsDelegate::views_delegate); |
| + delete views::ViewsDelegate::views_delegate; |
| + views::ViewsDelegate::views_delegate = NULL; |
| } |
| } // namespace athena |