Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5095)

Unified Diff: chrome/browser/ui/panels/detached_panel_collection.cc

Issue 2263863002: Remove implementation of Panels on OSes other than ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/panels/detached_panel_collection.cc
diff --git a/chrome/browser/ui/panels/detached_panel_collection.cc b/chrome/browser/ui/panels/detached_panel_collection.cc
deleted file mode 100644
index d3e614cde5424a4523eb332d12eaa9a2a32cbe9c..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/panels/detached_panel_collection.cc
+++ /dev/null
@@ -1,291 +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 "chrome/browser/ui/panels/detached_panel_collection.h"
-
-#include <algorithm>
-#include "base/logging.h"
-#include "chrome/browser/ui/panels/display_settings_provider.h"
-#include "chrome/browser/ui/panels/panel_drag_controller.h"
-#include "chrome/browser/ui/panels/panel_manager.h"
-
-namespace {
-// How much horizontal and vertical offset there is between newly opened
-// detached panels.
-const int kPanelTilePixels = 10;
-
-// When the stacking mode is enabled, the detached panel will be positioned
-// near the top of the working area such that the subsequent panel could be
-// stacked to the bottom of the detached panel. This value is experimental
-// and subjective.
-const int kDetachedPanelStartingYPositionOnStackingEnabled = 20;
-} // namespace
-
-DetachedPanelCollection::DetachedPanelCollection(PanelManager* panel_manager)
- : PanelCollection(PanelCollection::DETACHED),
- panel_manager_(panel_manager) {
-}
-
-DetachedPanelCollection::~DetachedPanelCollection() {
- DCHECK(panels_.empty());
-}
-
-void DetachedPanelCollection::OnDisplayChanged() {
- DisplaySettingsProvider* display_settings_provider =
- panel_manager_->display_settings_provider();
-
- for (Panels::const_iterator iter = panels_.begin();
- iter != panels_.end(); ++iter) {
- Panel* panel = *iter;
- gfx::Rect work_area =
- display_settings_provider->GetWorkAreaMatching(panel->GetBounds());
-
- // Update size if needed.
- panel->LimitSizeToWorkArea(work_area);
-
- // Update bounds to make sure the panel falls completely within the work
- // area. Note that the origin of the work area might also change.
- gfx::Rect bounds = panel->GetBounds();
- if (panel->full_size() != bounds.size()) {
- bounds.set_size(panel->full_size());
- if (bounds.right() > work_area.right())
- bounds.set_x(work_area.right() - bounds.width());
- if (bounds.bottom() > work_area.bottom())
- bounds.set_y(work_area.bottom() - bounds.height());
- }
- if (bounds.x() < work_area.x())
- bounds.set_x(work_area.x());
- if (bounds.y() < work_area.y())
- bounds.set_y(work_area.y());
- panel->SetPanelBoundsInstantly(bounds);
- }
-}
-
-void DetachedPanelCollection::RefreshLayout() {
- // A detached panel would still maintain its minimized state when it was
- // moved out the stack and the drag has not ended. When the drag ends, it
- // needs to be expanded. This could occur in the following scenarios:
- // 1) It was originally a minimized panel that was dragged out of a stack.
- // 2) It was originally a minimized panel that was the top panel in a stack.
- // The panel below it was dragged out of the stack which also caused
- // the top panel became detached.
- for (Panels::const_iterator iter = panels_.begin();
- iter != panels_.end(); ++iter) {
- Panel* panel = *iter;
- if (!panel->in_preview_mode() &&
- panel->expansion_state() != Panel::EXPANDED)
- panel->SetExpansionState(Panel::EXPANDED);
- }
-}
-
-void DetachedPanelCollection::AddPanel(Panel* panel,
- PositioningMask positioning_mask) {
- // positioning_mask is ignored since the detached panel is free-floating.
- DCHECK_NE(this, panel->collection());
- panel->set_collection(this);
- panels_.push_back(panel);
-
- // Offset the default position of the next detached panel if the current
- // default position is used.
- if (panel->GetBounds().origin() == default_panel_origin_)
- ComputeNextDefaultPanelOrigin();
-}
-
-void DetachedPanelCollection::RemovePanel(Panel* panel, RemovalReason reason) {
- DCHECK_EQ(this, panel->collection());
- panel->set_collection(NULL);
- panels_.remove(panel);
-}
-
-void DetachedPanelCollection::CloseAll() {
- // Make a copy as closing panels can modify the iterator.
- Panels panels_copy = panels_;
-
- for (Panels::const_iterator iter = panels_copy.begin();
- iter != panels_copy.end(); ++iter)
- (*iter)->Close();
-}
-
-void DetachedPanelCollection::OnPanelAttentionStateChanged(Panel* panel) {
- DCHECK_EQ(this, panel->collection());
- // Nothing to do.
-}
-
-void DetachedPanelCollection::OnPanelTitlebarClicked(Panel* panel,
- panel::ClickModifier modifier) {
- DCHECK_EQ(this, panel->collection());
- // Click on detached panel titlebars does not do anything.
-}
-
-void DetachedPanelCollection::ResizePanelWindow(
- Panel* panel,
- const gfx::Size& preferred_window_size) {
- // We should get this call only of we have the panel.
- DCHECK_EQ(this, panel->collection());
-
- // Make sure the new size does not violate panel's size restrictions.
- gfx::Size new_size(preferred_window_size.width(),
- preferred_window_size.height());
- new_size = panel->ClampSize(new_size);
-
- // Update restored size.
- if (new_size != panel->full_size())
- panel->set_full_size(new_size);
-
- gfx::Rect bounds = panel->GetBounds();
-
- // When we resize a detached panel, its origin does not move.
- // So we set height and width only.
- bounds.set_size(new_size);
-
- if (bounds != panel->GetBounds())
- panel->SetPanelBounds(bounds);
-}
-
-void DetachedPanelCollection::ActivatePanel(Panel* panel) {
- DCHECK_EQ(this, panel->collection());
- // No change in panel's appearance.
-}
-
-void DetachedPanelCollection::MinimizePanel(Panel* panel) {
- DCHECK_EQ(this, panel->collection());
- // Detached panels do not minimize. However, extensions may call this API
- // regardless of which collection the panel is in. So we just quietly return.
-}
-
-void DetachedPanelCollection::RestorePanel(Panel* panel) {
- DCHECK_EQ(this, panel->collection());
- // Detached panels do not minimize. However, extensions may call this API
- // regardless of which collection the panel is in. So we just quietly return.
-}
-
-void DetachedPanelCollection::OnMinimizeButtonClicked(
- Panel* panel, panel::ClickModifier modifier) {
- panel->MinimizeBySystem();
-}
-
-void DetachedPanelCollection::OnRestoreButtonClicked(
- Panel* panel, panel::ClickModifier modifier) {
- // No restore button is present.
- NOTREACHED();
-}
-
-bool DetachedPanelCollection::CanShowMinimizeButton(const Panel* panel) const {
- // We also show minimize button for detached panel when stacking mode is
- // enabled.
- return PanelManager::IsPanelStackingEnabled() &&
- PanelManager::CanUseSystemMinimize();
-}
-
-bool DetachedPanelCollection::CanShowRestoreButton(const Panel* panel) const {
- // The minimize button is used for system minimize and thus there is no
- // restore button.
- return false;
-}
-
-bool DetachedPanelCollection::IsPanelMinimized(const Panel* panel) const {
- DCHECK_EQ(this, panel->collection());
- // Detached panels do not minimize.
- return false;
-}
-
-bool DetachedPanelCollection::UsesAlwaysOnTopPanels() const {
- return false;
-}
-
-void DetachedPanelCollection::SavePanelPlacement(Panel* panel) {
- DCHECK(!saved_panel_placement_.panel);
- saved_panel_placement_.panel = panel;
- saved_panel_placement_.position = panel->GetBounds().origin();
-}
-
-void DetachedPanelCollection::RestorePanelToSavedPlacement() {
- DCHECK(saved_panel_placement_.panel);
-
- gfx::Rect new_bounds(saved_panel_placement_.panel->GetBounds());
- new_bounds.set_origin(saved_panel_placement_.position);
- saved_panel_placement_.panel->SetPanelBounds(new_bounds);
-
- DiscardSavedPanelPlacement();
-}
-
-void DetachedPanelCollection::DiscardSavedPanelPlacement() {
- DCHECK(saved_panel_placement_.panel);
- saved_panel_placement_.panel = NULL;
-}
-
-panel::Resizability DetachedPanelCollection::GetPanelResizability(
- const Panel* panel) const {
- return panel::RESIZABLE_ALL;
-}
-
-void DetachedPanelCollection::OnPanelResizedByMouse(
- Panel* panel, const gfx::Rect& new_bounds) {
- DCHECK_EQ(this, panel->collection());
- panel->set_full_size(new_bounds.size());
-}
-
-bool DetachedPanelCollection::HasPanel(Panel* panel) const {
- return std::find(panels_.begin(), panels_.end(), panel) != panels_.end();
-}
-
-void DetachedPanelCollection::SortPanels(PanelsComparer comparer) {
- panels_.sort(comparer);
-}
-
-void DetachedPanelCollection::UpdatePanelOnCollectionChange(Panel* panel) {
- panel->set_attention_mode(
- static_cast<Panel::AttentionMode>(Panel::USE_PANEL_ATTENTION |
- Panel::USE_SYSTEM_ATTENTION));
- panel->ShowShadow(true);
- panel->UpdateMinimizeRestoreButtonVisibility();
- panel->SetWindowCornerStyle(panel::ALL_ROUNDED);
-}
-
-void DetachedPanelCollection::OnPanelExpansionStateChanged(Panel* panel) {
- // This should only be reached when a minimized stacked panel is dragged out
- // of the stack to become detached. For this case, the panel needs to be
- // restored.
- DCHECK_EQ(Panel::EXPANDED, panel->expansion_state());
-
- gfx::Rect bounds = panel->GetBounds();
- bounds.set_height(panel->full_size().height());
- panel->SetPanelBounds(bounds);
-}
-
-void DetachedPanelCollection::OnPanelActiveStateChanged(Panel* panel) {
-}
-
-gfx::Rect DetachedPanelCollection::GetInitialPanelBounds(
- const gfx::Rect& requested_bounds) const {
- if (!PanelManager::IsPanelStackingEnabled())
- return requested_bounds;
-
- gfx::Rect work_area = panel_manager_->display_settings_provider()->
- GetWorkAreaMatching(requested_bounds);
- gfx::Rect initial_bounds = requested_bounds;
- initial_bounds.set_y(
- work_area.y() + kDetachedPanelStartingYPositionOnStackingEnabled);
- return initial_bounds;
-}
-
-gfx::Point DetachedPanelCollection::GetDefaultPanelOrigin() {
- if (!default_panel_origin_.x() && !default_panel_origin_.y()) {
- gfx::Rect work_area =
- panel_manager_->display_settings_provider()->GetPrimaryWorkArea();
- default_panel_origin_.SetPoint(kPanelTilePixels + work_area.x(),
- kPanelTilePixels + work_area.y());
- }
- return default_panel_origin_;
-}
-
-void DetachedPanelCollection::ComputeNextDefaultPanelOrigin() {
- default_panel_origin_.Offset(kPanelTilePixels, kPanelTilePixels);
- gfx::Rect work_area =
- panel_manager_->display_settings_provider()->GetPrimaryWorkArea();
- if (!work_area.Contains(default_panel_origin_)) {
- default_panel_origin_.SetPoint(kPanelTilePixels + work_area.x(),
- kPanelTilePixels + work_area.y());
- }
-}
« no previous file with comments | « chrome/browser/ui/panels/detached_panel_collection.h ('k') | chrome/browser/ui/panels/detached_panel_drag_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698