X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f382836f40a2045de8b36d6d1a851edbe774a975..ad7922b8aaf4aea61c4a364887fc89b0548a6047:/src/gtk/button.cpp diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp index 5255a240ff..2d83f10cbf 100644 --- a/src/gtk/button.cpp +++ b/src/gtk/button.cpp @@ -83,7 +83,7 @@ wxgtk_button_style_set_callback(GtkWidget* widget, GtkStyle*, wxButton* win) { /* the default button has a border around it */ wxWindow* parent = win->GetParent(); - if (parent && parent->m_wxwindow && GTK_WIDGET_CAN_DEFAULT(widget)) + if (parent && parent->m_wxwindow && gtk_widget_get_can_default(widget)) { GtkBorder* border = NULL; gtk_widget_style_get(widget, "default_border", &border, NULL); @@ -181,7 +181,7 @@ wxWindow *wxButton::SetDefault() { wxWindow *oldDefault = wxButtonBase::SetDefault(); - GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default(m_widget, TRUE); gtk_widget_grab_default( m_widget ); // resize for default border @@ -287,7 +287,7 @@ bool wxButton::Enable( bool enable ) if (!base_type::Enable(enable)) return false; - gtk_widget_set_sensitive(GTK_BIN(m_widget)->child, enable); + gtk_widget_set_sensitive(gtk_bin_get_child(GTK_BIN(m_widget)), enable); if (enable) GTKFixSensitivity(); @@ -304,18 +304,21 @@ GdkWindow *wxButton::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const GtkLabel *wxButton::GTKGetLabel() const { - GtkWidget *child = GTK_BIN(m_widget)->child; + GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget)); if ( GTK_IS_ALIGNMENT(child) ) { - GtkWidget *box = GTK_BIN(child)->child; - for (GList* item = GTK_BOX(box)->children; item; item = item->next) + GtkWidget* box = gtk_bin_get_child(GTK_BIN(child)); + GtkLabel* label = NULL; + GList* list = gtk_container_get_children(GTK_CONTAINER(box)); + for (GList* item = list; item; item = item->next) { GtkBoxChild* boxChild = static_cast(item->data); if ( GTK_IS_LABEL(boxChild->widget) ) - return GTK_LABEL(boxChild->widget); + label = GTK_LABEL(boxChild->widget); } + g_list_free(list); - return NULL; + return label; } return GTK_LABEL(child); @@ -324,21 +327,23 @@ GtkLabel *wxButton::GTKGetLabel() const void wxButton::DoApplyWidgetStyle(GtkRcStyle *style) { gtk_widget_modify_style(m_widget, style); - GtkWidget *child = GTK_BIN(m_widget)->child; + GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget)); gtk_widget_modify_style(child, style); // for buttons with images, the path to the label is (at least in 2.12) // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel if ( GTK_IS_ALIGNMENT(child) ) { - GtkWidget *box = GTK_BIN(child)->child; + GtkWidget* box = gtk_bin_get_child(GTK_BIN(child)); if ( GTK_IS_BOX(box) ) { - for (GList* item = GTK_BOX(box)->children; item; item = item->next) + GList* list = gtk_container_get_children(GTK_CONTAINER(box)); + for (GList* item = list; item; item = item->next) { GtkBoxChild* boxChild = static_cast(item->data); gtk_widget_modify_style(boxChild->widget, style); } + g_list_free(list); } } } @@ -349,11 +354,11 @@ wxSize wxButton::DoGetBestSize() const // extra border around it, but we don't want to take it into account in // our size calculations (otherwise the result is visually ugly), so // always return the size of non default button from here - const bool isDefault = GTK_WIDGET_HAS_DEFAULT(m_widget); + const bool isDefault = gtk_widget_has_default(m_widget); if ( isDefault ) { // temporarily unset default flag - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default(m_widget, FALSE); } wxSize ret( wxControl::DoGetBestSize() ); @@ -361,7 +366,7 @@ wxSize wxButton::DoGetBestSize() const if ( isDefault ) { // set it back again - GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); + gtk_widget_set_can_default(m_widget, TRUE); } if (!HasFlag(wxBU_EXACTFIT)) @@ -460,7 +465,7 @@ void wxButton::GTKDoShowBitmap(const wxBitmap& bitmap) GtkWidget *image; if ( DontShowLabel() ) { - image = GTK_BIN(m_widget)->child; + image = gtk_bin_get_child(GTK_BIN(m_widget)); } else // have both label and bitmap {