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
This commit is contained in:
Robert Roebling
2005-03-13 18:57:10 +00:00
parent e0357c0234
commit f893066ba1
4 changed files with 84 additions and 24 deletions

View File

@@ -22,6 +22,7 @@
#include "wx/stockitem.h" #include "wx/stockitem.h"
#include "wx/gtk/private.h" #include "wx/gtk/private.h"
#include "wx/gtk/win_gtk.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// classes // classes
@@ -69,8 +70,36 @@ gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), w
if (g_isIdle) if (g_isIdle)
wxapp_install_idle_handler(); wxapp_install_idle_handler();
if (GTK_WIDGET_REALIZED(m_widget)) int left_border = 0;
win->SetSize( win->m_x, win->m_y, win->m_width, win->m_height ); 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; return FALSE;
} }
@@ -185,7 +214,8 @@ void wxButton::SetDefault()
GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT );
gtk_widget_grab_default( m_widget ); 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 */ /* static */

View File

@@ -3111,15 +3111,15 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
if (GTK_WIDGET_CAN_DEFAULT(m_widget)) if (GTK_WIDGET_CAN_DEFAULT(m_widget))
{ {
#ifdef __WXGTK20__ #ifdef __WXGTK20__
GtkBorder *default_outside_border = NULL; GtkBorder *default_border = NULL;
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL ); gtk_widget_style_get( m_widget, "default_border", &default_border, NULL );
if (default_outside_border) if (default_border)
{ {
left_border += default_outside_border->left; left_border += default_border->left;
right_border += default_outside_border->right; right_border += default_border->right;
top_border += default_outside_border->top; top_border += default_border->top;
bottom_border += default_outside_border->bottom; bottom_border += default_border->bottom;
g_free( default_outside_border ); g_free( default_border );
} }
#else #else
left_border = 6; left_border = 6;

View File

@@ -22,6 +22,7 @@
#include "wx/stockitem.h" #include "wx/stockitem.h"
#include "wx/gtk/private.h" #include "wx/gtk/private.h"
#include "wx/gtk/win_gtk.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// classes // classes
@@ -69,8 +70,36 @@ gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), w
if (g_isIdle) if (g_isIdle)
wxapp_install_idle_handler(); wxapp_install_idle_handler();
if (GTK_WIDGET_REALIZED(m_widget)) int left_border = 0;
win->SetSize( win->m_x, win->m_y, win->m_width, win->m_height ); 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; return FALSE;
} }
@@ -185,7 +214,8 @@ void wxButton::SetDefault()
GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT );
gtk_widget_grab_default( m_widget ); 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 */ /* static */

View File

@@ -3111,15 +3111,15 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
if (GTK_WIDGET_CAN_DEFAULT(m_widget)) if (GTK_WIDGET_CAN_DEFAULT(m_widget))
{ {
#ifdef __WXGTK20__ #ifdef __WXGTK20__
GtkBorder *default_outside_border = NULL; GtkBorder *default_border = NULL;
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL ); gtk_widget_style_get( m_widget, "default_border", &default_border, NULL );
if (default_outside_border) if (default_border)
{ {
left_border += default_outside_border->left; left_border += default_border->left;
right_border += default_outside_border->right; right_border += default_border->right;
top_border += default_outside_border->top; top_border += default_border->top;
bottom_border += default_outside_border->bottom; bottom_border += default_border->bottom;
g_free( default_outside_border ); g_free( default_border );
} }
#else #else
left_border = 6; left_border = 6;