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:
@@ -59,6 +59,22 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *
|
|||||||
button->GetEventHandler()->ProcessEvent(event);
|
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
|
// 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_connect_after( GTK_OBJECT(m_widget), "clicked",
|
||||||
GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this );
|
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 );
|
m_parent->DoAddChild( this );
|
||||||
|
|
||||||
PostCreation(size);
|
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))
|
if (GTK_WIDGET_CAN_DEFAULT(m_widget))
|
||||||
{
|
{
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
#if 0
|
GtkBorder *default_outside_border = NULL;
|
||||||
GtkBorder *default_border;
|
|
||||||
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 );
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
GtkBorder *default_outside_border;
|
|
||||||
{
|
|
||||||
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
||||||
|
if (default_outside_border)
|
||||||
|
{
|
||||||
left_border += default_outside_border->left;
|
left_border += default_outside_border->left;
|
||||||
right_border += default_outside_border->right;
|
right_border += default_outside_border->right;
|
||||||
top_border += default_outside_border->top;
|
top_border += default_outside_border->top;
|
||||||
|
@@ -59,6 +59,22 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *
|
|||||||
button->GetEventHandler()->ProcessEvent(event);
|
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
|
// 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_connect_after( GTK_OBJECT(m_widget), "clicked",
|
||||||
GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this );
|
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 );
|
m_parent->DoAddChild( this );
|
||||||
|
|
||||||
PostCreation(size);
|
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))
|
if (GTK_WIDGET_CAN_DEFAULT(m_widget))
|
||||||
{
|
{
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
#if 0
|
GtkBorder *default_outside_border = NULL;
|
||||||
GtkBorder *default_border;
|
|
||||||
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 );
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
GtkBorder *default_outside_border;
|
|
||||||
{
|
|
||||||
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
gtk_widget_style_get( m_widget, "default_outside_border", &default_outside_border, NULL );
|
||||||
|
if (default_outside_border)
|
||||||
|
{
|
||||||
left_border += default_outside_border->left;
|
left_border += default_outside_border->left;
|
||||||
right_border += default_outside_border->right;
|
right_border += default_outside_border->right;
|
||||||
top_border += default_outside_border->top;
|
top_border += default_outside_border->top;
|
||||||
|
Reference in New Issue
Block a user