| Index: views/controls/native_view_host.cc
|
| ===================================================================
|
| --- views/controls/native_view_host.cc (revision 17161)
|
| +++ views/controls/native_view_host.cc (working copy)
|
| @@ -1,79 +0,0 @@
|
| -// Copyright (c) 2009 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 "views/controls/native_view_host.h"
|
| -
|
| -#include "views/widget/widget.h"
|
| -#include "base/logging.h"
|
| -
|
| -namespace views {
|
| -
|
| -NativeViewHost::NativeViewHost()
|
| - : native_view_(NULL),
|
| - installed_clip_(false),
|
| - fast_resize_(false),
|
| - focus_view_(NULL) {
|
| - // The native widget is placed relative to the root. As such, we need to
|
| - // know when the position of any ancestor changes, or our visibility relative
|
| - // to other views changed as it'll effect our position relative to the root.
|
| - SetNotifyWhenVisibleBoundsInRootChanges(true);
|
| -}
|
| -
|
| -NativeViewHost::~NativeViewHost() {
|
| -}
|
| -
|
| -gfx::Size NativeViewHost::GetPreferredSize() {
|
| - return preferred_size_;
|
| -}
|
| -
|
| -void NativeViewHost::SetPreferredSize(const gfx::Size& size) {
|
| - preferred_size_ = size;
|
| - PreferredSizeChanged();
|
| -}
|
| -
|
| -void NativeViewHost::Layout() {
|
| - if (!native_view_)
|
| - return;
|
| -
|
| - // Since widgets know nothing about the View hierarchy (they are direct
|
| - // children of the Widget that hosts our View hierarchy) they need to be
|
| - // positioned in the coordinate system of the Widget, not the current
|
| - // view.
|
| - gfx::Point top_left;
|
| - ConvertPointToWidget(this, &top_left);
|
| -
|
| - gfx::Rect vis_bounds = GetVisibleBounds();
|
| - bool visible = !vis_bounds.IsEmpty();
|
| -
|
| - if (visible && !fast_resize_) {
|
| - if (vis_bounds.size() != size()) {
|
| - // Only a portion of the Widget is really visible.
|
| - int x = vis_bounds.x();
|
| - int y = vis_bounds.y();
|
| - InstallClip(x, y, vis_bounds.width(), vis_bounds.height());
|
| - installed_clip_ = true;
|
| - } else if (installed_clip_) {
|
| - // The whole widget is visible but we installed a clip on the widget,
|
| - // uninstall it.
|
| - UninstallClip();
|
| - installed_clip_ = false;
|
| - }
|
| - }
|
| -
|
| - if (visible) {
|
| - ShowWidget(top_left.x(), top_left.y(), width(), height());
|
| - } else {
|
| - HideWidget();
|
| - }
|
| -}
|
| -
|
| -void NativeViewHost::VisibilityChanged(View* starting_from, bool is_visible) {
|
| - Layout();
|
| -}
|
| -
|
| -void NativeViewHost::VisibleBoundsInRootChanged() {
|
| - Layout();
|
| -}
|
| -
|
| -} // namespace views
|
|
|