Chromium Code Reviews| 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); |