From: Robert Roebling Date: Sun, 10 Sep 2006 14:52:56 +0000 (+0000) Subject: Remove direct access to GtlPizza's offset X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a31bb9442581e64799025a86153a0af9aec5317c Remove direct access to GtlPizza's offset variable. That way, we can change the underlying meaning for RTL windowing mirroring without wxWindow knowing it. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/win_gtk.h b/include/wx/gtk/win_gtk.h index 65c0ba54f0..b873dffa5d 100644 --- a/include/wx/gtk/win_gtk.h +++ b/include/wx/gtk/win_gtk.h @@ -50,11 +50,11 @@ struct _GtkPizza GList *children; GtkMyShadowType shadow_type; - guint width; - guint height; + guint m_width; + guint m_height; - guint xoffset; - guint yoffset; + guint m_xoffset; + guint m_yoffset; GdkWindow *bin_window; @@ -75,6 +75,22 @@ GtkType gtk_pizza_get_type (void); WXDLLIMPEXP_CORE GtkWidget* gtk_pizza_new (void); +/* accessors */ + +WXDLLIMPEXP_CORE +gint gtk_pizza_get_width (GtkPizza *pizza); +WXDLLIMPEXP_CORE +gint gtk_pizza_get_height (GtkPizza *pizza); +WXDLLIMPEXP_CORE +gint gtk_pizza_get_xoffset (GtkPizza *pizza); +WXDLLIMPEXP_CORE +gint gtk_pizza_get_yoffset (GtkPizza *pizza); +WXDLLIMPEXP_CORE +void gtk_pizza_set_xoffset (GtkPizza *pizza, gint xoffset); +WXDLLIMPEXP_CORE +void gtk_pizza_set_yoffset (GtkPizza *pizza, gint yoffset); + + WXDLLIMPEXP_CORE void gtk_pizza_set_shadow_type (GtkPizza *pizza, GtkMyShadowType type); diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c index adb84783f0..8d31fb8675 100644 --- a/src/gtk/win_gtk.c +++ b/src/gtk/win_gtk.c @@ -189,13 +189,13 @@ gtk_pizza_init (GtkPizza *pizza) pizza->children = NULL; - pizza->width = 20; - pizza->height = 20; + pizza->m_width = 20; + pizza->m_height = 20; pizza->bin_window = NULL; - pizza->xoffset = 0; - pizza->yoffset = 0; + pizza->m_xoffset = 0; + pizza->m_yoffset = 0; pizza->external_expose = FALSE; } @@ -210,6 +210,56 @@ gtk_pizza_new () return GTK_WIDGET (pizza); } +gint gtk_pizza_get_width (GtkPizza *pizza) +{ + g_return_val_if_fail ( (pizza != NULL), -1 ); + g_return_val_if_fail ( (GTK_IS_PIZZA (pizza)), -1 ); + + return pizza->m_width; +} + +gint gtk_pizza_get_height (GtkPizza *pizza) +{ + g_return_val_if_fail ( (pizza != NULL), -1 ); + g_return_val_if_fail ( (GTK_IS_PIZZA (pizza)), -1 ); + + return pizza->m_height; +} + +gint gtk_pizza_get_xoffset (GtkPizza *pizza) +{ + g_return_val_if_fail ( (pizza != NULL), -1 ); + g_return_val_if_fail ( (GTK_IS_PIZZA (pizza)), -1 ); + + return pizza->m_xoffset; +} + +gint gtk_pizza_get_yoffset (GtkPizza *pizza) +{ + g_return_val_if_fail ( (pizza != NULL), -1 ); + g_return_val_if_fail ( (GTK_IS_PIZZA (pizza)), -1 ); + + return pizza->m_yoffset; +} + +void gtk_pizza_set_xoffset (GtkPizza *pizza, gint xoffset) +{ + g_return_if_fail (pizza != NULL); + g_return_if_fail (GTK_IS_PIZZA (pizza)); + + pizza->m_xoffset = xoffset; + // do something +} + +void gtk_pizza_set_yoffset (GtkPizza *pizza, gint yoffset) +{ + g_return_if_fail (pizza != NULL); + g_return_if_fail (GTK_IS_PIZZA (pizza)); + + pizza->m_xoffset = yoffset; + // do something +} + static void gtk_pizza_scroll_set_adjustments (GtkPizza *pizza, GtkAdjustment *hadj, @@ -685,8 +735,8 @@ gtk_pizza_allocate_child (GtkPizza *pizza, GtkAllocation allocation; GtkRequisition requisition; - allocation.x = child->x - pizza->xoffset; - allocation.y = child->y - pizza->yoffset; + allocation.x = child->x - pizza->m_xoffset; + allocation.y = child->y - pizza->m_yoffset; gtk_widget_get_child_requisition (child->widget, &requisition); allocation.width = requisition.width; allocation.height = requisition.height; @@ -744,8 +794,8 @@ gtk_pizza_adjust_allocations (GtkPizza *pizza, void gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy) { - pizza->xoffset += dx; - pizza->yoffset += dy; + pizza->m_xoffset += dx; + pizza->m_yoffset += dy; gtk_pizza_adjust_allocations (pizza, -dx, -dy); diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 866b327566..ab595ed612 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -1330,8 +1330,8 @@ wxWindowGTK *FindWindowForMouseEvent(wxWindowGTK *win, wxCoord& x, wxCoord& y) if (win->m_wxwindow) { GtkPizza *pizza = GTK_PIZZA(win->m_wxwindow); - xx += pizza->xoffset; - yy += pizza->yoffset; + xx += gtk_pizza_get_xoffset( pizza ); + yy += gtk_pizza_get_yoffset( pizza ); } wxWindowList::compatibility_iterator node = win->GetChildren().GetFirst(); @@ -2290,8 +2290,8 @@ static void wxInsertChildInWindow( wxWindowGTK* parent, wxWindowGTK* child ) /* the window might have been scrolled already, do we have to adapt the position */ GtkPizza *pizza = GTK_PIZZA(parent->m_wxwindow); - child->m_x += pizza->xoffset; - child->m_y += pizza->yoffset; + child->m_x += gtk_pizza_get_xoffset( pizza ); + child->m_y += gtk_pizza_get_yoffset( pizza ); gtk_pizza_put( GTK_PIZZA(parent->m_wxwindow), GTK_WIDGET(child->m_widget), @@ -2803,13 +2803,13 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags GtkPizza *pizza = GTK_PIZZA(m_parent->m_wxwindow); if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) { - if (x != -1) m_x = x + pizza->xoffset; - if (y != -1) m_y = y + pizza->yoffset; + if (x != -1) m_x = x + gtk_pizza_get_xoffset( pizza ); + if (y != -1) m_y = y + gtk_pizza_get_yoffset( pizza ); } else { - m_x = x + pizza->xoffset; - m_y = y + pizza->yoffset; + m_x = x + gtk_pizza_get_xoffset( pizza ); + m_y = y + gtk_pizza_get_yoffset( pizza ); } int left_border = 0; @@ -3039,8 +3039,8 @@ void wxWindowGTK::DoGetPosition( int *x, int *y ) const if (m_parent && m_parent->m_wxwindow) { GtkPizza *pizza = GTK_PIZZA(m_parent->m_wxwindow); - dx = pizza->xoffset; - dy = pizza->yoffset; + dx = gtk_pizza_get_xoffset( pizza ); + dy = gtk_pizza_get_yoffset( pizza ); } if (x) (*x) = m_x - dx;