| Index: ui/base/gtk/gtk_floating_container.cc | 
| diff --git a/ui/base/gtk/gtk_floating_container.cc b/ui/base/gtk/gtk_floating_container.cc | 
| deleted file mode 100644 | 
| index 6893746df33a05913bb6d6c05846d08f52eaa0bb..0000000000000000000000000000000000000000 | 
| --- a/ui/base/gtk/gtk_floating_container.cc | 
| +++ /dev/null | 
| @@ -1,322 +0,0 @@ | 
| -// Copyright (c) 2011 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 "ui/base/gtk/gtk_floating_container.h" | 
| - | 
| -#include <gtk/gtk.h> | 
| - | 
| -#include <algorithm> | 
| - | 
| -#include "ui/gfx/gtk_compat.h" | 
| - | 
| -namespace { | 
| - | 
| -enum { | 
| -  SET_FLOATING_POSITION, | 
| -  LAST_SIGNAL | 
| -}; | 
| - | 
| -enum { | 
| -  CHILD_PROP_0, | 
| -  CHILD_PROP_X, | 
| -  CHILD_PROP_Y | 
| -}; | 
| - | 
| -// Returns the GtkFloatingContainerChild associated with |widget| (or NULL if | 
| -// |widget| not found). | 
| -GtkFloatingContainerChild* GetChild(GtkFloatingContainer* container, | 
| -                                    GtkWidget* widget) { | 
| -  for (GList* floating_children = container->floating_children; | 
| -       floating_children; floating_children = g_list_next(floating_children)) { | 
| -    GtkFloatingContainerChild* child = | 
| -        reinterpret_cast<GtkFloatingContainerChild*>(floating_children->data); | 
| - | 
| -    if (child->widget == widget) | 
| -      return child; | 
| -  } | 
| - | 
| -  return NULL; | 
| -} | 
| - | 
| -const GParamFlags kStaticReadWriteProp = static_cast<GParamFlags>( | 
| -    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); | 
| - | 
| -}  // namespace | 
| - | 
| -G_BEGIN_DECLS | 
| - | 
| -static void gtk_floating_container_remove(GtkContainer* container, | 
| -                                          GtkWidget* widget); | 
| -static void gtk_floating_container_forall(GtkContainer* container, | 
| -                                          gboolean include_internals, | 
| -                                          GtkCallback callback, | 
| -                                          gpointer callback_data); | 
| -static void gtk_floating_container_size_request(GtkWidget* widget, | 
| -                                                GtkRequisition* requisition); | 
| -static void gtk_floating_container_size_allocate(GtkWidget* widget, | 
| -                                                 GtkAllocation* allocation); | 
| -static void gtk_floating_container_set_child_property(GtkContainer* container, | 
| -                                                      GtkWidget* child, | 
| -                                                      guint property_id, | 
| -                                                      const GValue* value, | 
| -                                                      GParamSpec* pspec); | 
| -static void gtk_floating_container_get_child_property(GtkContainer* container, | 
| -                                                      GtkWidget* child, | 
| -                                                      guint property_id, | 
| -                                                      GValue* value, | 
| -                                                      GParamSpec* pspec); | 
| - | 
| -static guint floating_container_signals[LAST_SIGNAL] = { 0 }; | 
| - | 
| -G_DEFINE_TYPE(GtkFloatingContainer, gtk_floating_container, GTK_TYPE_BIN) | 
| - | 
| -static void gtk_floating_container_class_init( | 
| -    GtkFloatingContainerClass *klass) { | 
| -  GtkObjectClass* object_class = | 
| -      reinterpret_cast<GtkObjectClass*>(klass); | 
| - | 
| -  GtkWidgetClass* widget_class = | 
| -      reinterpret_cast<GtkWidgetClass*>(klass); | 
| -  widget_class->size_request = gtk_floating_container_size_request; | 
| -  widget_class->size_allocate = gtk_floating_container_size_allocate; | 
| - | 
| -  GtkContainerClass* container_class = | 
| -      reinterpret_cast<GtkContainerClass*>(klass); | 
| -  container_class->remove = gtk_floating_container_remove; | 
| -  container_class->forall = gtk_floating_container_forall; | 
| - | 
| -  container_class->set_child_property = | 
| -      gtk_floating_container_set_child_property; | 
| -  container_class->get_child_property = | 
| -      gtk_floating_container_get_child_property; | 
| - | 
| -  gtk_container_class_install_child_property( | 
| -      container_class, | 
| -      CHILD_PROP_X, | 
| -      g_param_spec_int("x", | 
| -                       "X position", | 
| -                       "X position of child widget", | 
| -                       G_MININT, | 
| -                       G_MAXINT, | 
| -                       0, | 
| -                       kStaticReadWriteProp)); | 
| - | 
| -  gtk_container_class_install_child_property( | 
| -      container_class, | 
| -      CHILD_PROP_Y, | 
| -      g_param_spec_int("y", | 
| -                       "Y position", | 
| -                       "Y position of child widget", | 
| -                       G_MININT, | 
| -                       G_MAXINT, | 
| -                       0, | 
| -                       kStaticReadWriteProp)); | 
| - | 
| -  floating_container_signals[SET_FLOATING_POSITION] = | 
| -      g_signal_new("set-floating-position", | 
| -                   G_OBJECT_CLASS_TYPE(object_class), | 
| -                   static_cast<GSignalFlags>(G_SIGNAL_RUN_FIRST | | 
| -                                             G_SIGNAL_ACTION), | 
| -                   0, | 
| -                   NULL, NULL, | 
| -                   g_cclosure_marshal_VOID__BOXED, | 
| -                   G_TYPE_NONE, 1, | 
| -                   GDK_TYPE_RECTANGLE | G_SIGNAL_TYPE_STATIC_SCOPE); | 
| -} | 
| - | 
| -static void gtk_floating_container_init(GtkFloatingContainer* container) { | 
| -  gtk_widget_set_has_window(GTK_WIDGET(container), FALSE); | 
| -  container->floating_children = NULL; | 
| -} | 
| - | 
| -static void gtk_floating_container_remove(GtkContainer* container, | 
| -                                          GtkWidget* widget) { | 
| -  g_return_if_fail(GTK_IS_WIDGET(widget)); | 
| - | 
| -  GtkBin* bin = GTK_BIN(container); | 
| -  if (gtk_bin_get_child(bin) == widget) { | 
| -    ((GTK_CONTAINER_CLASS(gtk_floating_container_parent_class))->remove) | 
| -        (container, widget); | 
| -  } else { | 
| -    // Handle the other case where it's in our |floating_children| list. | 
| -    GtkFloatingContainer* floating = GTK_FLOATING_CONTAINER(container); | 
| -    GList* children = floating->floating_children; | 
| -    gboolean removed_child = false; | 
| -    while (children) { | 
| -      GtkFloatingContainerChild* child = | 
| -          reinterpret_cast<GtkFloatingContainerChild*>(children->data); | 
| - | 
| -      if (child->widget == widget) { | 
| -        removed_child = true; | 
| -        gboolean was_visible = gtk_widget_get_visible(GTK_WIDGET(widget)); | 
| - | 
| -        gtk_widget_unparent(widget); | 
| - | 
| -        floating->floating_children = | 
| -            g_list_remove_link(floating->floating_children, children); | 
| -        g_list_free(children); | 
| -        g_free(child); | 
| - | 
| -        if (was_visible && gtk_widget_get_visible(GTK_WIDGET(container))) | 
| -          gtk_widget_queue_resize(GTK_WIDGET(container)); | 
| - | 
| -        break; | 
| -      } | 
| -      children = children->next; | 
| -    } | 
| - | 
| -    g_return_if_fail(removed_child); | 
| -  } | 
| -} | 
| - | 
| -static void gtk_floating_container_forall(GtkContainer* container, | 
| -                                          gboolean include_internals, | 
| -                                          GtkCallback callback, | 
| -                                          gpointer callback_data) { | 
| -  g_return_if_fail(container != NULL); | 
| -  g_return_if_fail(callback != NULL); | 
| - | 
| -  GtkFloatingContainer* floating = GTK_FLOATING_CONTAINER(container); | 
| -  GList* children = floating->floating_children; | 
| -  while (children) { | 
| -    GtkFloatingContainerChild* child = | 
| -        reinterpret_cast<GtkFloatingContainerChild*>(children->data); | 
| -    children = children->next; | 
| - | 
| -    (*callback)(child->widget, callback_data); | 
| -  } | 
| - | 
| -  // Let GtkBin do its part of the forall. | 
| -  ((GTK_CONTAINER_CLASS(gtk_floating_container_parent_class))->forall) | 
| -      (container, include_internals, callback, callback_data); | 
| -} | 
| - | 
| -static void gtk_floating_container_size_request(GtkWidget* widget, | 
| -                                                GtkRequisition* requisition) { | 
| -  GtkBin* bin = GTK_BIN(widget); | 
| -  if (bin && gtk_bin_get_child(bin)) { | 
| -    gtk_widget_size_request(gtk_bin_get_child(bin), requisition); | 
| -  } else { | 
| -    requisition->width = 0; | 
| -    requisition->height = 0; | 
| -  } | 
| -} | 
| - | 
| -static void gtk_floating_container_size_allocate(GtkWidget* widget, | 
| -                                                 GtkAllocation* allocation) { | 
| -  gtk_widget_set_allocation(widget, allocation); | 
| - | 
| -  if (gtk_widget_get_has_window(widget) && gtk_widget_get_realized(widget)) { | 
| -    gdk_window_move_resize(gtk_widget_get_window(widget), | 
| -                           allocation->x, | 
| -                           allocation->y, | 
| -                           allocation->width, | 
| -                           allocation->height); | 
| -  } | 
| - | 
| -  // Give the same allocation to our GtkBin component. | 
| -  GtkBin* bin = GTK_BIN(widget); | 
| -  if (gtk_bin_get_child(bin)) { | 
| -    gtk_widget_size_allocate(gtk_bin_get_child(bin), allocation); | 
| -  } | 
| - | 
| -  // We need to give whoever is pulling our strings a chance to set the "x" and | 
| -  // "y" properties on all of our children. | 
| -  g_signal_emit(widget, floating_container_signals[SET_FLOATING_POSITION], 0, | 
| -                allocation); | 
| - | 
| -  // Our allocation has been set. We've asked our controller to place the other | 
| -  // widgets. Pass out allocations to all our children based on where they want | 
| -  // to be. | 
| -  GtkFloatingContainer* container = GTK_FLOATING_CONTAINER(widget); | 
| -  GList* children = container->floating_children; | 
| -  GtkAllocation child_allocation; | 
| -  GtkRequisition child_requisition; | 
| -  while (children) { | 
| -    GtkFloatingContainerChild* child = | 
| -        reinterpret_cast<GtkFloatingContainerChild*>(children->data); | 
| -    children = children->next; | 
| - | 
| -    if (gtk_widget_get_visible(GTK_WIDGET(child->widget))) { | 
| -      gtk_widget_size_request(child->widget, &child_requisition); | 
| -      child_allocation.x = allocation->x + child->x; | 
| -      child_allocation.y = allocation->y + child->y; | 
| -      child_allocation.width = std::max(1, std::min(child_requisition.width, | 
| -                                                    allocation->width)); | 
| -      child_allocation.height = std::max(1, std::min(child_requisition.height, | 
| -                                                     allocation->height)); | 
| -      gtk_widget_size_allocate(child->widget, &child_allocation); | 
| -    } | 
| -  } | 
| -} | 
| - | 
| -static void gtk_floating_container_set_child_property(GtkContainer* container, | 
| -                                                      GtkWidget* child, | 
| -                                                      guint property_id, | 
| -                                                      const GValue* value, | 
| -                                                      GParamSpec* pspec) { | 
| -  GtkFloatingContainerChild* floating_child = | 
| -      GetChild(GTK_FLOATING_CONTAINER(container), child); | 
| -  g_return_if_fail(floating_child); | 
| - | 
| -  switch (property_id) { | 
| -    case CHILD_PROP_X: | 
| -      floating_child->x = g_value_get_int(value); | 
| -      gtk_widget_child_notify(child, "x"); | 
| -      break; | 
| -    case CHILD_PROP_Y: | 
| -      floating_child->y = g_value_get_int(value); | 
| -      gtk_widget_child_notify(child, "y"); | 
| -      break; | 
| -    default: | 
| -      GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID( | 
| -          container, property_id, pspec); | 
| -      break; | 
| -  }; | 
| -} | 
| - | 
| -static void gtk_floating_container_get_child_property(GtkContainer* container, | 
| -                                                      GtkWidget* child, | 
| -                                                      guint property_id, | 
| -                                                      GValue* value, | 
| -                                                      GParamSpec* pspec) { | 
| -  GtkFloatingContainerChild* floating_child = | 
| -      GetChild(GTK_FLOATING_CONTAINER(container), child); | 
| -  g_return_if_fail(floating_child); | 
| - | 
| -  switch (property_id) { | 
| -    case CHILD_PROP_X: | 
| -      g_value_set_int(value, floating_child->x); | 
| -      break; | 
| -    case CHILD_PROP_Y: | 
| -      g_value_set_int(value, floating_child->y); | 
| -      break; | 
| -    default: | 
| -      GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID( | 
| -          container, property_id, pspec); | 
| -      break; | 
| -  }; | 
| -} | 
| - | 
| -GtkWidget* gtk_floating_container_new() { | 
| -  return GTK_WIDGET(g_object_new(GTK_TYPE_FLOATING_CONTAINER, NULL)); | 
| -} | 
| - | 
| -void gtk_floating_container_add_floating(GtkFloatingContainer* container, | 
| -                                         GtkWidget* widget) { | 
| -  g_return_if_fail(GTK_IS_FLOATING_CONTAINER(container)); | 
| -  g_return_if_fail(GTK_IS_WIDGET(widget)); | 
| - | 
| -  GtkFloatingContainerChild* child_info = g_new(GtkFloatingContainerChild, 1); | 
| -  child_info->widget = widget; | 
| -  child_info->x = 0; | 
| -  child_info->y = 0; | 
| - | 
| -  gtk_widget_set_parent(widget, GTK_WIDGET(container)); | 
| - | 
| -  container->floating_children = | 
| -      g_list_append(container->floating_children, child_info); | 
| -} | 
| - | 
| -G_END_DECLS | 
|  |