| 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
|
|
|