Index: athena/activity/activity_frame_view.cc |
diff --git a/athena/activity/activity_frame_view.cc b/athena/activity/activity_frame_view.cc |
deleted file mode 100644 |
index 6be5d6f9284344dbede41bf45c146b6b64294377..0000000000000000000000000000000000000000 |
--- a/athena/activity/activity_frame_view.cc |
+++ /dev/null |
@@ -1,232 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "athena/activity/activity_frame_view.h" |
- |
-#include "athena/activity/public/activity_view_model.h" |
-#include "athena/wm/public/window_manager.h" |
-#include "ui/base/hit_test.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/image/image_skia.h" |
-#include "ui/views/background.h" |
-#include "ui/views/controls/image_view.h" |
-#include "ui/views/controls/label.h" |
-#include "ui/views/view.h" |
-#include "ui/views/widget/widget.h" |
-#include "ui/views/widget/widget_delegate.h" |
-#include "ui/views/window/client_view.h" |
- |
-namespace athena { |
-namespace { |
- |
-// The icon size. |
-const int kIconSize = 32; |
- |
-// The distance between the icon and the title when the icon is visible. |
-const int kIconTitleSpacing = 10; |
- |
-// The height of the top border necessary to display the title without the icon. |
-const int kDefaultTitleHeight = 25; |
- |
-// The height of the top border in overview mode. |
-const int kOverviewTitleHeight = 55; |
- |
-// The height of the top border for fullscreen and frameless activities in |
-// overview mode. |
-const int kOverviewShortTitleHeight = 30; |
- |
-// The thickness of the left, right and bottom borders in overview mode. |
-const int kOverviewBorderThickness = 5; |
- |
-} // namespace |
- |
-// static |
-const char ActivityFrameView::kViewClassName[] = "ActivityFrameView"; |
- |
-ActivityFrameView::ActivityFrameView(views::Widget* frame, |
- ActivityViewModel* view_model) |
- : frame_(frame), |
- view_model_(view_model), |
- title_(new views::Label), |
- icon_(new views::ImageView), |
- in_overview_(false) { |
- title_->SetEnabledColor(SkColorSetA(SK_ColorBLACK, 0xe5)); |
- |
- AddChildView(title_); |
- AddChildView(icon_); |
- |
- UpdateWindowTitle(); |
- UpdateWindowIcon(); |
- |
- view_model_->SetActivityView(this); |
- |
- WindowManager::Get()->AddObserver(this); |
-} |
- |
-ActivityFrameView::~ActivityFrameView() { |
- WindowManager::Get()->RemoveObserver(this); |
- |
- // |view_model_| is already destroyed at this time. So do not attempt to reset |
- // the activity-view by calling SetActivityView(nullptr); |
- // http://crbug.com/427113 |
-} |
- |
-gfx::Rect ActivityFrameView::GetBoundsForClientView() const { |
- gfx::Rect client_bounds = bounds(); |
- client_bounds.Inset(NonClientBorderInsets()); |
- return client_bounds; |
-} |
- |
-gfx::Rect ActivityFrameView::GetWindowBoundsForClientBounds( |
- const gfx::Rect& client_bounds) const { |
- gfx::Rect window_bounds = client_bounds; |
- window_bounds.Inset(-NonClientBorderInsets()); |
- return window_bounds; |
-} |
- |
-int ActivityFrameView::NonClientHitTest(const gfx::Point& point) { |
- if (!bounds().Contains(point)) |
- return HTNOWHERE; |
- int client_hit_test = frame_->client_view()->NonClientHitTest(point); |
- if (client_hit_test != HTNOWHERE) |
- return client_hit_test; |
- int window_hit_test = |
- GetHTComponentForFrame(point, 0, NonClientBorderThickness(), 0, 0, false); |
- return (window_hit_test == HTNOWHERE) ? HTCAPTION : client_hit_test; |
-} |
- |
-void ActivityFrameView::GetWindowMask(const gfx::Size& size, |
- gfx::Path* window_mask) { |
-} |
- |
-void ActivityFrameView::ResetWindowControls() { |
-} |
- |
-void ActivityFrameView::UpdateWindowIcon() { |
- // The activity has a frame in overview mode regardless of the value of |
- // ActivityViewModel::UsesFrame(). |
- SkColor bgcolor = view_model_->GetRepresentativeColor(); |
- set_background(views::Background::CreateSolidBackground(bgcolor)); |
- title_->SetBackgroundColor(bgcolor); |
- |
- if (view_model_->UsesFrame()) |
- icon_->SetImage(view_model_->GetIcon()); |
- SchedulePaint(); |
-} |
- |
-void ActivityFrameView::UpdateWindowTitle() { |
- if (!view_model_->UsesFrame()) |
- return; |
- title_->SetText(frame_->widget_delegate()->GetWindowTitle()); |
- Layout(); |
-} |
- |
-void ActivityFrameView::SizeConstraintsChanged() { |
-} |
- |
-gfx::Size ActivityFrameView::GetPreferredSize() const { |
- gfx::Size pref = frame_->client_view()->GetPreferredSize(); |
- gfx::Rect bounds(0, 0, pref.width(), pref.height()); |
- return frame_->non_client_view() |
- ->GetWindowBoundsForClientBounds(bounds) |
- .size(); |
-} |
- |
-const char* ActivityFrameView::GetClassName() const { |
- return kViewClassName; |
-} |
- |
-void ActivityFrameView::Layout() { |
- if (frame_->IsFullscreen() || !view_model_->UsesFrame()) { |
- title_->SetVisible(false); |
- icon_->SetVisible(false); |
- return; |
- } |
- |
- title_->SetVisible(true); |
- icon_->SetVisible(in_overview_); |
- |
- gfx::Size preferred_title_size = title_->GetPreferredSize(); |
- int top_height = NonClientTopBorderHeight(); |
- int title_x = 0; |
- if (in_overview_) { |
- int edge = (top_height - kIconSize) / 2; |
- icon_->SetBounds(edge, edge, kIconSize, kIconSize); |
- |
- title_x = icon_->bounds().right() + kIconTitleSpacing; |
- } else { |
- title_x = (width() - preferred_title_size.width()) / 2; |
- } |
- |
- title_->SetBounds(title_x, |
- (top_height - preferred_title_size.height()) / 2, |
- preferred_title_size.width(), |
- preferred_title_size.height()); |
-} |
- |
-void ActivityFrameView::OnPaintBackground(gfx::Canvas* canvas) { |
- View::OnPaintBackground(canvas); |
- |
- // Paint a border around the client view. |
- gfx::Rect border_bounds = GetLocalBounds(); |
- border_bounds.Inset(NonClientBorderInsets()); |
- border_bounds.Inset(-1, -1, 0, 0); |
- canvas->DrawRect(border_bounds, SkColorSetA(SK_ColorGRAY, 0x7f)); |
-} |
- |
-void ActivityFrameView::UpdateTitle() { |
- UpdateWindowTitle(); |
-} |
- |
-void ActivityFrameView::UpdateIcon() { |
- UpdateWindowIcon(); |
-} |
- |
-void ActivityFrameView::UpdateRepresentativeColor() { |
- UpdateWindowTitle(); |
-} |
- |
-void ActivityFrameView::OnOverviewModeEnter() { |
- view_model_->PrepareContentsForOverview(); |
- in_overview_ = true; |
- InvalidateLayout(); |
- frame_->client_view()->InvalidateLayout(); |
- frame_->GetRootView()->Layout(); |
- SchedulePaint(); |
-} |
- |
-void ActivityFrameView::OnOverviewModeExit() { |
- in_overview_ = false; |
- InvalidateLayout(); |
- frame_->client_view()->InvalidateLayout(); |
- frame_->GetRootView()->Layout(); |
- SchedulePaint(); |
- view_model_->ResetContentsView(); |
-} |
- |
-void ActivityFrameView::OnSplitViewModeEnter() { |
-} |
- |
-void ActivityFrameView::OnSplitViewModeExit() { |
-} |
- |
-gfx::Insets ActivityFrameView::NonClientBorderInsets() const { |
- int border_thickness = NonClientBorderThickness(); |
- return gfx::Insets(NonClientTopBorderHeight(), |
- border_thickness, |
- border_thickness, |
- border_thickness); |
-} |
- |
-int ActivityFrameView::NonClientBorderThickness() const { |
- return in_overview_ ? kOverviewBorderThickness : 0; |
-} |
- |
-int ActivityFrameView::NonClientTopBorderHeight() const { |
- if (frame_->IsFullscreen() || !view_model_->UsesFrame()) |
- return in_overview_ ? kOverviewShortTitleHeight : 0; |
- return in_overview_ ? kOverviewTitleHeight : kDefaultTitleHeight; |
-} |
- |
-} // namespace athena |