summaryrefslogtreecommitdiff
path: root/gtk/gtkbin.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2001-07-19 14:57:15 +0000
committerOwen Taylor <otaylor@src.gnome.org>2001-07-19 14:57:15 +0000
commitaa49527fa78bf5b3a3f1394092b248e27e1bfa3f (patch)
treea1b7651c9e379ab1f7ffe2af68727cdccdf682e6 /gtk/gtkbin.c
parent8f2bf7976d73ba58b808002268c49a19e9b586ee (diff)
downloadgtk+-aa49527fa78bf5b3a3f1394092b248e27e1bfa3f.tar.gz
Enforce the widget/child realization/mapping invariants.
Sat Jul 7 02:50:14 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkwidget.c (gtk_widget_set_parent): Enforce the widget/child realization/mapping invariants. * gtk/gtkwidget.[ch] gtk/gtkprivate.h: Add functions gtk_widget_[get/set]_child_visible() to control whether visible children of a mapped window are mapped. * docs/widget_system.txt: Updated for changes in container contract, and addition of GTK_CHILD_VISIBLE. * gtk/gtkcontainer.c: Add generic map()/unmap() functions that work for almost all containers. * gtk/gtknotebook.c gtk/gtkpacker.c: Use gtk_widget_set_child_visible() where necessary. * gtk/*.c: Remove excess map(), unmap(), and realization/mapping invariant enforcing code from many containers.
Diffstat (limited to 'gtk/gtkbin.c')
-rw-r--r--gtk/gtkbin.c52
1 files changed, 0 insertions, 52 deletions
diff --git a/gtk/gtkbin.c b/gtk/gtkbin.c
index d6a21eb9b9..e412869b24 100644
--- a/gtk/gtkbin.c
+++ b/gtk/gtkbin.c
@@ -29,8 +29,6 @@
static void gtk_bin_class_init (GtkBinClass *klass);
static void gtk_bin_init (GtkBin *bin);
-static void gtk_bin_map (GtkWidget *widget);
-static void gtk_bin_unmap (GtkWidget *widget);
static void gtk_bin_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_bin_remove (GtkContainer *container,
@@ -83,9 +81,6 @@ gtk_bin_class_init (GtkBinClass *class)
parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
- widget_class->map = gtk_bin_map;
- widget_class->unmap = gtk_bin_unmap;
-
container_class->add = gtk_bin_add;
container_class->remove = gtk_bin_remove;
container_class->forall = gtk_bin_forall;
@@ -111,42 +106,6 @@ gtk_bin_child_type (GtkContainer *container)
}
static void
-gtk_bin_map (GtkWidget *widget)
-{
- GtkBin *bin;
-
- g_return_if_fail (GTK_IS_BIN (widget));
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
- bin = GTK_BIN (widget);
-
- if (bin->child &&
- GTK_WIDGET_VISIBLE (bin->child) &&
- !GTK_WIDGET_MAPPED (bin->child))
- gtk_widget_map (bin->child);
-
- if (!GTK_WIDGET_NO_WINDOW (widget))
- gdk_window_show (widget->window);
-}
-
-static void
-gtk_bin_unmap (GtkWidget *widget)
-{
- GtkBin *bin;
-
- g_return_if_fail (GTK_IS_BIN (widget));
-
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
- bin = GTK_BIN (widget);
-
- if (!GTK_WIDGET_NO_WINDOW (widget))
- gdk_window_hide (widget->window);
-
- if (bin->child && GTK_WIDGET_MAPPED (bin->child))
- gtk_widget_unmap (bin->child);
-}
-
-static void
gtk_bin_add (GtkContainer *container,
GtkWidget *child)
{
@@ -171,17 +130,6 @@ gtk_bin_add (GtkContainer *container,
gtk_widget_set_parent (child, GTK_WIDGET (bin));
bin->child = child;
-
- if (GTK_WIDGET_REALIZED (child->parent))
- gtk_widget_realize (child);
-
- if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child))
- {
- if (GTK_WIDGET_MAPPED (child->parent))
- gtk_widget_map (child);
-
- gtk_widget_queue_resize (child);
- }
}
static void