Try to catch theme change on the fly in button in
order to resize buttons. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
19311d4e7c
commit
a90c0600bb
@ -59,6 +59,22 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *
|
||||
button->GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// "style_set" from m_widget
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static gint
|
||||
gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), wxButton *win )
|
||||
{
|
||||
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 );
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxButton
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -148,6 +164,9 @@ bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label,
|
||||
gtk_signal_connect_after( GTK_OBJECT(m_widget), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this );
|
||||
|
||||
gtk_signal_connect_after( GTK_OBJECT(m_widget), "style_set",
|
||||
GTK_SIGNAL_FUNC(gtk_button_style_set_callback), (gpointer*) this );
|
||||
|
||||
m_parent->DoAddChild( this );
|
||||
|
||||
PostCreation(size);
|
||||
|
@ -3111,22 +3111,10 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
|
||||
if (GTK_WIDGET_CAN_DEFAULT(m_widget))
|
||||
{
|
||||
#ifdef __WXGTK20__
|
||||
#if 0
|
||||
GtkBorder *default_border;
|
||||
gtk_widget_style_get( m_widget, "default_border", &default_border, NULL );
|
||||
if (default_border)
|
||||
GtkBorder *default_outside_border = NULL;
|
||||
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
||||
if (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 );
|
||||
|
||||
}
|
||||
#endif
|
||||
GtkBorder *default_outside_border;
|
||||
{
|
||||
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
||||
left_border += default_outside_border->left;
|
||||
right_border += default_outside_border->right;
|
||||
top_border += default_outside_border->top;
|
||||
|
@ -59,6 +59,22 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *
|
||||
button->GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// "style_set" from m_widget
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static gint
|
||||
gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), wxButton *win )
|
||||
{
|
||||
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 );
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxButton
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -148,6 +164,9 @@ bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label,
|
||||
gtk_signal_connect_after( GTK_OBJECT(m_widget), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this );
|
||||
|
||||
gtk_signal_connect_after( GTK_OBJECT(m_widget), "style_set",
|
||||
GTK_SIGNAL_FUNC(gtk_button_style_set_callback), (gpointer*) this );
|
||||
|
||||
m_parent->DoAddChild( this );
|
||||
|
||||
PostCreation(size);
|
||||
|
@ -3111,22 +3111,10 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
|
||||
if (GTK_WIDGET_CAN_DEFAULT(m_widget))
|
||||
{
|
||||
#ifdef __WXGTK20__
|
||||
#if 0
|
||||
GtkBorder *default_border;
|
||||
gtk_widget_style_get( m_widget, "default_border", &default_border, NULL );
|
||||
if (default_border)
|
||||
GtkBorder *default_outside_border = NULL;
|
||||
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
||||
if (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 );
|
||||
|
||||
}
|
||||
#endif
|
||||
GtkBorder *default_outside_border;
|
||||
{
|
||||
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
||||
left_border += default_outside_border->left;
|
||||
right_border += default_outside_border->right;
|
||||
top_border += default_outside_border->top;
|
||||
|
Loading…
Reference in New Issue
Block a user