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 |