Index: ash/system/tray/tray_details_view.cc |
diff --git a/ash/system/tray/tray_details_view.cc b/ash/system/tray/tray_details_view.cc |
deleted file mode 100644 |
index c0cf3bff878af34f30db24b605e9a872c048eaf0..0000000000000000000000000000000000000000 |
--- a/ash/system/tray/tray_details_view.cc |
+++ /dev/null |
@@ -1,164 +0,0 @@ |
-// Copyright (c) 2012 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 "ash/system/tray/tray_details_view.h" |
- |
-#include "ash/common/system/tray/fixed_sized_scroll_view.h" |
-#include "ash/common/system/tray/system_tray_item.h" |
-#include "ash/common/system/tray/tray_constants.h" |
-#include "ash/system/tray/system_tray.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/views/background.h" |
-#include "ui/views/border.h" |
-#include "ui/views/controls/scroll_view.h" |
-#include "ui/views/layout/box_layout.h" |
- |
-namespace ash { |
- |
-class ScrollSeparator : public views::View { |
- public: |
- ScrollSeparator() {} |
- |
- ~ScrollSeparator() override {} |
- |
- private: |
- // Overriden from views::View. |
- void OnPaint(gfx::Canvas* canvas) override { |
- canvas->FillRect(gfx::Rect(0, height() / 2, width(), 1), kBorderLightColor); |
- } |
- gfx::Size GetPreferredSize() const override { |
- return gfx::Size(1, kTrayPopupScrollSeparatorHeight); |
- } |
- |
- DISALLOW_COPY_AND_ASSIGN(ScrollSeparator); |
-}; |
- |
-class ScrollBorder : public views::Border { |
- public: |
- ScrollBorder() {} |
- ~ScrollBorder() override {} |
- |
- void set_visible(bool visible) { visible_ = visible; } |
- |
- private: |
- // Overridden from views::Border. |
- void Paint(const views::View& view, gfx::Canvas* canvas) override { |
- if (!visible_) |
- return; |
- canvas->FillRect(gfx::Rect(0, view.height() - 1, view.width(), 1), |
- kBorderLightColor); |
- } |
- |
- gfx::Insets GetInsets() const override { return gfx::Insets(0, 0, 1, 0); } |
- |
- gfx::Size GetMinimumSize() const override { return gfx::Size(0, 1); } |
- |
- bool visible_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ScrollBorder); |
-}; |
- |
-TrayDetailsView::TrayDetailsView(SystemTrayItem* owner) |
- : owner_(owner), |
- footer_(NULL), |
- scroller_(NULL), |
- scroll_content_(NULL), |
- scroll_border_(NULL) { |
- SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical, |
- 0, 0, 0)); |
- set_background(views::Background::CreateSolidBackground(kBackgroundColor)); |
-} |
- |
-TrayDetailsView::~TrayDetailsView() { |
-} |
- |
-void TrayDetailsView::CreateSpecialRow(int string_id, |
- ViewClickListener* listener) { |
- DCHECK(!footer_); |
- footer_ = new SpecialPopupRow(); |
- footer_->SetTextLabel(string_id, listener); |
- AddChildViewAt(footer_, child_count()); |
-} |
- |
-void TrayDetailsView::CreateScrollableList() { |
- DCHECK(!scroller_); |
- scroll_content_ = new views::View; |
- scroll_content_->SetLayoutManager(new views::BoxLayout( |
- views::BoxLayout::kVertical, 0, 0, 1)); |
- scroller_ = new FixedSizedScrollView; |
- scroller_->SetContentsView(scroll_content_); |
- |
- // Note: |scroller_| takes ownership of |scroll_border_|. |
- scroll_border_ = new ScrollBorder; |
- scroller_->SetBorder(std::unique_ptr<views::Border>(scroll_border_)); |
- |
- AddChildView(scroller_); |
-} |
- |
-void TrayDetailsView::AddScrollSeparator() { |
- DCHECK(scroll_content_); |
- // Do not draw the separator if it is the very first item |
- // in the scrollable list. |
- if (scroll_content_->has_children()) |
- scroll_content_->AddChildView(new ScrollSeparator); |
-} |
- |
-void TrayDetailsView::Reset() { |
- RemoveAllChildViews(true); |
- footer_ = NULL; |
- scroller_ = NULL; |
- scroll_content_ = NULL; |
-} |
- |
-void TrayDetailsView::TransitionToDefaultView() { |
- // Cache pointer to owner in this function scope. TrayDetailsView will be |
- // deleted after called ShowDefaultView. |
- SystemTrayItem* owner = owner_; |
- if (footer_ && footer_->content() && footer_->content()->HasFocus()) |
- owner->set_restore_focus(true); |
- owner->system_tray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- owner->set_restore_focus(false); |
-} |
- |
-void TrayDetailsView::Layout() { |
- if (bounds().IsEmpty()) { |
- views::View::Layout(); |
- return; |
- } |
- |
- if (scroller_) { |
- scroller_->set_fixed_size(gfx::Size()); |
- gfx::Size size = GetPreferredSize(); |
- |
- // Set the scroller to fill the space above the bottom row, so that the |
- // bottom row of the detailed view will always stay just above the footer. |
- gfx::Size scroller_size = scroll_content_->GetPreferredSize(); |
- scroller_->set_fixed_size( |
- gfx::Size(width() + scroller_->GetScrollBarWidth(), |
- scroller_size.height() - (size.height() - height()))); |
- } |
- |
- views::View::Layout(); |
- |
- if (footer_) { |
- // Always make sure the footer element is bottom aligned. |
- gfx::Rect fbounds = footer_->bounds(); |
- fbounds.set_y(height() - footer_->height()); |
- footer_->SetBoundsRect(fbounds); |
- } |
-} |
- |
-void TrayDetailsView::OnPaintBorder(gfx::Canvas* canvas) { |
- if (scroll_border_) { |
- int index = GetIndexOf(scroller_); |
- if (index < child_count() - 1 && child_at(index + 1) != footer_) |
- scroll_border_->set_visible(true); |
- else |
- scroll_border_->set_visible(false); |
- } |
- |
- views::View::OnPaintBorder(canvas); |
-} |
- |
-} // namespace ash |