Index: athena/activity/activity_view_manager_impl.cc |
diff --git a/athena/activity/activity_view_manager_impl.cc b/athena/activity/activity_view_manager_impl.cc |
index a67e6bbd2f5be48845ed79747149fd01464e7716..1aff1e05044e426961bc31bfeda4fd7a18b40e2f 100644 |
--- a/athena/activity/activity_view_manager_impl.cc |
+++ b/athena/activity/activity_view_manager_impl.cc |
@@ -7,48 +7,32 @@ |
#include <algorithm> |
#include <map> |
+#include "athena/activity/activity_widget_delegate.h" |
#include "athena/activity/public/activity.h" |
#include "athena/activity/public/activity_view_model.h" |
#include "athena/screen/public/screen_manager.h" |
#include "ui/aura/window.h" |
-#include "ui/views/background.h" |
-#include "ui/views/controls/label.h" |
-#include "ui/views/layout/layout_manager.h" |
#include "ui/views/view.h" |
#include "ui/views/widget/widget.h" |
+#include "ui/views/window/non_client_view.h" |
Jun Mukai
2014/07/11 01:28:14
you don't have to include this (see comment below)
|
namespace athena { |
namespace { |
-class ActivityWidget : public views::LayoutManager { |
+class ActivityWidget { |
public: |
explicit ActivityWidget(Activity* activity) |
- : activity_(activity), |
- container_(NULL), |
- title_(NULL), |
- content_(NULL), |
- widget_(NULL) { |
- container_ = new views::View; |
- |
- title_ = new views::Label(); |
- title_->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
- const gfx::FontList& font_list = title_->font_list(); |
- title_->SetFontList(font_list.Derive(1, gfx::Font::BOLD)); |
- title_->SetEnabledColor(SK_ColorBLACK); |
- container_->AddChildView(title_); |
- container_->SetLayoutManager(this); |
- content_ = activity->GetActivityViewModel()->GetContentsView(); |
- container_->AddChildView(content_); |
- |
+ : activity_(activity), widget_(NULL) { |
+ ActivityViewModel* view_model = activity->GetActivityViewModel(); |
widget_ = new views::Widget; |
views::Widget::InitParams params( |
- views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
+ view_model->UsesFrame() |
+ ? views::Widget::InitParams::TYPE_WINDOW |
+ : views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
params.context = ScreenManager::Get()->GetContext(); |
- params.delegate = NULL; |
+ params.delegate = new ActivityWidgetDelegate(view_model); |
params.activatable = views::Widget::InitParams::ACTIVATABLE_YES; |
widget_->Init(params); |
- widget_->SetContentsView(container_); |
- |
activity_->GetActivityViewModel()->Init(); |
} |
@@ -60,41 +44,13 @@ class ActivityWidget : public views::LayoutManager { |
} |
void Update() { |
- title_->SetText(activity_->GetActivityViewModel()->GetTitle()); |
- SkColor bgcolor = |
- activity_->GetActivityViewModel()->GetRepresentativeColor(); |
- title_->set_background(views::Background::CreateSolidBackground(bgcolor)); |
- title_->SetBackgroundColor(bgcolor); |
+ if (widget_->non_client_view()) |
+ widget_->non_client_view()->UpdateWindowTitle(); |
Jun Mukai
2014/07/11 01:28:14
seems views::Widget has UpdateWindowTitle()
oshima
2014/07/11 06:51:35
Thanks! Done.
|
} |
private: |
- // views::LayoutManager: |
- virtual void Layout(views::View* host) OVERRIDE { |
- CHECK_EQ(container_, host); |
- const gfx::Rect& content_bounds = host->bounds(); |
- const int kTitleHeight = 25; |
- title_->SetBounds(0, 0, content_bounds.width(), kTitleHeight); |
- content_->SetBounds(0, |
- kTitleHeight, |
- content_bounds.width(), |
- content_bounds.height() - kTitleHeight); |
- } |
- |
- virtual gfx::Size GetPreferredSize(const views::View* host) const OVERRIDE { |
- CHECK_EQ(container_, host); |
- gfx::Size size; |
- gfx::Size label_size = title_->GetPreferredSize(); |
- gfx::Size content_size = content_->GetPreferredSize(); |
- |
- size.set_width(std::max(label_size.width(), content_size.width())); |
- size.set_height(label_size.height() + content_size.height()); |
- return size; |
- } |
Activity* activity_; |
- views::View* container_; |
- views::Label* title_; |
- views::View* content_; |
views::Widget* widget_; |
DISALLOW_COPY_AND_ASSIGN(ActivityWidget); |