// 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 "chrome/browser/devtools/devtools_contents_resizing_strategy.h" #include DevToolsContentsResizingStrategy::DevToolsContentsResizingStrategy() : hide_inspected_contents_(false) { } DevToolsContentsResizingStrategy::DevToolsContentsResizingStrategy( const gfx::Rect& bounds) : bounds_(bounds), hide_inspected_contents_(bounds_.IsEmpty() && !bounds_.x() && !bounds_.y()) { } void DevToolsContentsResizingStrategy::CopyFrom( const DevToolsContentsResizingStrategy& strategy) { bounds_ = strategy.bounds(); hide_inspected_contents_ = strategy.hide_inspected_contents(); } bool DevToolsContentsResizingStrategy::Equals( const DevToolsContentsResizingStrategy& strategy) { return bounds_ == strategy.bounds() && hide_inspected_contents_ == strategy.hide_inspected_contents(); } void ApplyDevToolsContentsResizingStrategy( const DevToolsContentsResizingStrategy& strategy, const gfx::Size& container_size, gfx::Rect* new_devtools_bounds, gfx::Rect* new_contents_bounds) { new_devtools_bounds->SetRect( 0, 0, container_size.width(), container_size.height()); const gfx::Rect& bounds = strategy.bounds(); if (bounds.size().IsEmpty() && !strategy.hide_inspected_contents()) { new_contents_bounds->SetRect( 0, 0, container_size.width(), container_size.height()); return; } int left = std::min(bounds.x(), container_size.width()); int top = std::min(bounds.y(), container_size.height()); int width = std::min(bounds.width(), container_size.width() - left); int height = std::min(bounds.height(), container_size.height() - top); new_contents_bounds->SetRect(left, top, width, height); }