From: Robert Roebling <robert@roebling.de> Date: Sun, 13 Mar 2005 18:57:10 +0000 (+0000) Subject: Query for "default_border" not "default_outside_border" since X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/f893066ba1d27683ba25e0f7841d18bb155acf8d Query for "default_border" not "default_outside_border" since that is what is done in the gtk code. Correct wrong pos in scrolled window. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp index e21402f843..aec633f450 100644 --- a/src/gtk/button.cpp +++ b/src/gtk/button.cpp @@ -22,6 +22,7 @@ #include "wx/stockitem.h" #include "wx/gtk/private.h" +#include "wx/gtk/win_gtk.h" //----------------------------------------------------------------------------- // classes @@ -69,8 +70,36 @@ gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), w if (g_isIdle) wxapp_install_idle_handler(); - if (GTK_WIDGET_REALIZED(m_widget)) - win->SetSize( win->m_x, win->m_y, win->m_width, win->m_height ); + int left_border = 0; + int right_border = 0; + int top_border = 0; + int bottom_border = 0; + + /* the default button has a border around it */ + if (GTK_WIDGET_CAN_DEFAULT(m_widget)) + { +#ifdef __WXGTK20__ + GtkBorder *default_border = NULL; + gtk_widget_style_get( m_widget, "default_border", &default_border, NULL ); + if (default_border) + { + left_border += default_border->left; + right_border += default_border->right; + top_border += default_border->top; + bottom_border += default_border->bottom; + g_free( default_border ); + } +#else + left_border = 6; + right_border = 6; + top_border = 6; + bottom_border = 5; +#endif + win->DoMoveWindow( win->m_x-top_border, + win->m_y-left_border, + win->m_width+left_border+right_border, + win->m_height+top_border+bottom_border ); + } return FALSE; } @@ -184,8 +213,9 @@ void wxButton::SetDefault() GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); gtk_widget_grab_default( m_widget ); - - SetSize( m_x, m_y, m_width, m_height ); + + // resize for default border + gtk_button_style_set_callback( m_widget, NULL, this ); } /* static */ diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 7c6b7be2e7..b02e6a4f86 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -3111,15 +3111,15 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags if (GTK_WIDGET_CAN_DEFAULT(m_widget)) { #ifdef __WXGTK20__ - GtkBorder *default_outside_border = NULL; - gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL ); - if (default_outside_border) + GtkBorder *default_border = NULL; + gtk_widget_style_get( m_widget, "default_border", &default_border, NULL ); + if (default_border) { - left_border += default_outside_border->left; - right_border += default_outside_border->right; - top_border += default_outside_border->top; - bottom_border += default_outside_border->bottom; - g_free( default_outside_border ); + left_border += default_border->left; + right_border += default_border->right; + top_border += default_border->top; + bottom_border += default_border->bottom; + g_free( default_border ); } #else left_border = 6; diff --git a/src/gtk1/button.cpp b/src/gtk1/button.cpp index e21402f843..aec633f450 100644 --- a/src/gtk1/button.cpp +++ b/src/gtk1/button.cpp @@ -22,6 +22,7 @@ #include "wx/stockitem.h" #include "wx/gtk/private.h" +#include "wx/gtk/win_gtk.h" //----------------------------------------------------------------------------- // classes @@ -69,8 +70,36 @@ gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), w if (g_isIdle) wxapp_install_idle_handler(); - if (GTK_WIDGET_REALIZED(m_widget)) - win->SetSize( win->m_x, win->m_y, win->m_width, win->m_height ); + int left_border = 0; + int right_border = 0; + int top_border = 0; + int bottom_border = 0; + + /* the default button has a border around it */ + if (GTK_WIDGET_CAN_DEFAULT(m_widget)) + { +#ifdef __WXGTK20__ + GtkBorder *default_border = NULL; + gtk_widget_style_get( m_widget, "default_border", &default_border, NULL ); + if (default_border) + { + left_border += default_border->left; + right_border += default_border->right; + top_border += default_border->top; + bottom_border += default_border->bottom; + g_free( default_border ); + } +#else + left_border = 6; + right_border = 6; + top_border = 6; + bottom_border = 5; +#endif + win->DoMoveWindow( win->m_x-top_border, + win->m_y-left_border, + win->m_width+left_border+right_border, + win->m_height+top_border+bottom_border ); + } return FALSE; } @@ -184,8 +213,9 @@ void wxButton::SetDefault() GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); gtk_widget_grab_default( m_widget ); - - SetSize( m_x, m_y, m_width, m_height ); + + // resize for default border + gtk_button_style_set_callback( m_widget, NULL, this ); } /* static */ diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 7c6b7be2e7..b02e6a4f86 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -3111,15 +3111,15 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags if (GTK_WIDGET_CAN_DEFAULT(m_widget)) { #ifdef __WXGTK20__ - GtkBorder *default_outside_border = NULL; - gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL ); - if (default_outside_border) + GtkBorder *default_border = NULL; + gtk_widget_style_get( m_widget, "default_border", &default_border, NULL ); + if (default_border) { - left_border += default_outside_border->left; - right_border += default_outside_border->right; - top_border += default_outside_border->top; - bottom_border += default_outside_border->bottom; - g_free( default_outside_border ); + left_border += default_border->left; + right_border += default_border->right; + top_border += default_border->top; + bottom_border += default_border->bottom; + g_free( default_border ); } #else left_border = 6;