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 |