X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/52d16c5e3b215999001c626863577240c23d6ed4..37ed592f7106e4ba483baa6fba91a9c481048bbc:/src/gtk/win_gtk.c diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c index d0955231ce..cc12038063 100644 --- a/src/gtk/win_gtk.c +++ b/src/gtk/win_gtk.c @@ -14,7 +14,7 @@ #endif #include "wx/platform.h" -#include "wx/gtk/win_gtk.h" +#include "wx/gtk/private/win_gtk.h" #ifdef __cplusplus extern "C" { @@ -22,7 +22,6 @@ extern "C" { typedef struct _GtkPizzaChild GtkPizzaChild; typedef struct _GtkPizzaClass GtkPizzaClass; -typedef struct _GtkPizzaAdjData GtkPizzaAdjData; struct _GtkPizzaClass { @@ -40,12 +39,6 @@ struct _GtkPizzaChild gint y; }; -struct _GtkPizzaAdjData -{ - gint dx; - gint dy; -}; - static void gtk_pizza_class_init (GtkPizzaClass *klass); static void gtk_pizza_init (GtkPizza *pizza); @@ -71,8 +64,6 @@ static void gtk_pizza_forall (GtkContainer *container, static void gtk_pizza_allocate_child (GtkPizza *pizza, GtkPizzaChild *child); -static void gtk_pizza_adjust_allocations_recurse (GtkWidget *widget, - gpointer cb_data); static GtkType gtk_pizza_child_type (GtkContainer *container); @@ -255,7 +246,7 @@ void gtk_pizza_set_xoffset (GtkPizza *pizza, gint xoffset) g_return_if_fail (GTK_IS_PIZZA (pizza)); pizza->m_xoffset = xoffset; - // do something + /* do something */ } void gtk_pizza_set_yoffset (GtkPizza *pizza, gint yoffset) @@ -264,7 +255,7 @@ void gtk_pizza_set_yoffset (GtkPizza *pizza, gint yoffset) g_return_if_fail (GTK_IS_PIZZA (pizza)); pizza->m_xoffset = yoffset; - // do something + /* do something */ } gint gtk_pizza_get_rtl_offset (GtkPizza *pizza) @@ -318,8 +309,6 @@ gtk_pizza_put (GtkPizza *pizza, gtk_widget_set_parent (widget, GTK_WIDGET (pizza)); gtk_widget_set_size_request( widget, width, height ); - if (GTK_WIDGET_REALIZED (pizza)) - gtk_pizza_allocate_child (pizza, child_info); } void @@ -735,63 +724,22 @@ gtk_pizza_allocate_child (GtkPizza *pizza, gtk_widget_size_allocate (child->widget, &allocation); } -static void -gtk_pizza_adjust_allocations_recurse (GtkWidget *widget, - gpointer cb_data) -{ - GtkPizzaAdjData *data = cb_data; - - widget->allocation.x += data->dx; - widget->allocation.y += data->dy; - - if (GTK_WIDGET_NO_WINDOW (widget) && GTK_IS_CONTAINER (widget)) - { - gtk_container_forall (GTK_CONTAINER (widget), - gtk_pizza_adjust_allocations_recurse, - cb_data); - } -} - -static void -gtk_pizza_adjust_allocations (GtkPizza *pizza, - gint dx, - gint dy) -{ - GList *tmp_list; - GtkPizzaAdjData data; - - data.dx = dx; - data.dy = dy; - - tmp_list = pizza->children; - while (tmp_list) - { - GtkPizzaChild *child = tmp_list->data; - tmp_list = tmp_list->next; - - child->widget->allocation.x += dx; - child->widget->allocation.y += dy; - - if (GTK_WIDGET_NO_WINDOW (child->widget) && - GTK_IS_CONTAINER (child->widget)) - { - gtk_container_forall (GTK_CONTAINER (child->widget), - gtk_pizza_adjust_allocations_recurse, - &data); - } - } -} - void gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy) { + GList *tmp_list; + pizza->m_xoffset += dx; pizza->m_yoffset += dy; - gtk_pizza_adjust_allocations (pizza, -dx, -dy); - if (pizza->bin_window) gdk_window_scroll( pizza->bin_window, -dx, -dy ); + + for (tmp_list = pizza->children; tmp_list; tmp_list = tmp_list->next) + { + GtkPizzaChild *child = tmp_list->data; + gtk_widget_queue_resize(child->widget); + } } #ifdef __cplusplus