Corrected spin control, which ignored hand typed text.
Corrceted GetBestSize() etc of static text (displayed in tip dialog and elsewhere). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
312cd9e93d
commit
33720b2de5
@ -39,7 +39,6 @@ extern const wxChar *wxStaticTextNameStr;
|
||||
class wxStaticText : public wxControl
|
||||
{
|
||||
public:
|
||||
|
||||
wxStaticText();
|
||||
wxStaticText(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
@ -60,10 +59,16 @@ public:
|
||||
wxString GetLabel() const;
|
||||
void SetLabel( const wxString &label );
|
||||
|
||||
bool SetFont( const wxFont &font );
|
||||
|
||||
// implementation
|
||||
// --------------
|
||||
|
||||
void ApplyWidgetStyle();
|
||||
|
||||
protected:
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS(wxStaticText)
|
||||
};
|
||||
|
||||
|
@ -39,7 +39,6 @@ extern const wxChar *wxStaticTextNameStr;
|
||||
class wxStaticText : public wxControl
|
||||
{
|
||||
public:
|
||||
|
||||
wxStaticText();
|
||||
wxStaticText(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
@ -60,10 +59,16 @@ public:
|
||||
wxString GetLabel() const;
|
||||
void SetLabel( const wxString &label );
|
||||
|
||||
bool SetFont( const wxFont &font );
|
||||
|
||||
// implementation
|
||||
// --------------
|
||||
|
||||
void ApplyWidgetStyle();
|
||||
|
||||
protected:
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS(wxStaticText)
|
||||
};
|
||||
|
||||
|
@ -78,6 +78,8 @@ wxSize wxControl::DoGetBestSize() const
|
||||
wxASSERT_MSG( m_widget, wxT("DoGetBestSize called before creation") );
|
||||
|
||||
GtkRequisition req;
|
||||
req.width = 2;
|
||||
req.height = 2;
|
||||
(* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request )
|
||||
(m_widget, &req );
|
||||
|
||||
|
@ -149,6 +149,8 @@ int wxSpinCtrl::GetValue() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
|
||||
|
||||
gtk_spin_button_update( GTK_SPIN_BUTTON(m_widget) );
|
||||
|
||||
return (int)ceil(m_adjust->value);
|
||||
}
|
||||
|
||||
|
@ -62,9 +62,7 @@ bool wxStaticText::Create(wxWindow *parent,
|
||||
wxControl::SetLabel(label);
|
||||
m_widget = gtk_label_new( m_label.mbc_str() );
|
||||
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
|
||||
|
||||
SetFont( parent->GetFont() );
|
||||
wxControl::SetFont( parent->GetFont() );
|
||||
|
||||
GtkJustification justify;
|
||||
if ( style & wxALIGN_CENTER )
|
||||
@ -79,6 +77,9 @@ bool wxStaticText::Create(wxWindow *parent,
|
||||
static const float labelAlignments[] = { 0.0, 1.0, 0.5 };
|
||||
gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0);
|
||||
|
||||
// do not move this call elsewhere
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
|
||||
|
||||
SetSizeOrDefault( size );
|
||||
|
||||
m_parent->DoAddChild( this );
|
||||
@ -107,10 +108,19 @@ void wxStaticText::SetLabel( const wxString &label )
|
||||
gtk_label_set( GTK_LABEL(m_widget), m_label.mbc_str() );
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
||||
{
|
||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
||||
SetSize( GetBestSize() );
|
||||
}
|
||||
}
|
||||
|
||||
bool wxStaticText::SetFont( const wxFont &font )
|
||||
{
|
||||
bool ret = wxControl::SetFont(font);
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
||||
SetSize( GetBestSize() );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void wxStaticText::ApplyWidgetStyle()
|
||||
@ -118,3 +128,22 @@ void wxStaticText::ApplyWidgetStyle()
|
||||
SetWidgetStyle();
|
||||
gtk_widget_set_style( m_widget, m_widgetStyle );
|
||||
}
|
||||
|
||||
wxSize wxStaticText::DoGetBestSize() const
|
||||
{
|
||||
// Do not return any arbitrary default value...
|
||||
wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") );
|
||||
|
||||
// this invalidates the size request
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
|
||||
|
||||
GtkRequisition req;
|
||||
req.width = 2;
|
||||
req.height = 2;
|
||||
(* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request )
|
||||
(m_widget, &req );
|
||||
|
||||
return wxSize(req.width, req.height);
|
||||
}
|
||||
|
||||
|
@ -78,6 +78,8 @@ wxSize wxControl::DoGetBestSize() const
|
||||
wxASSERT_MSG( m_widget, wxT("DoGetBestSize called before creation") );
|
||||
|
||||
GtkRequisition req;
|
||||
req.width = 2;
|
||||
req.height = 2;
|
||||
(* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request )
|
||||
(m_widget, &req );
|
||||
|
||||
|
@ -149,6 +149,8 @@ int wxSpinCtrl::GetValue() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
|
||||
|
||||
gtk_spin_button_update( GTK_SPIN_BUTTON(m_widget) );
|
||||
|
||||
return (int)ceil(m_adjust->value);
|
||||
}
|
||||
|
||||
|
@ -62,9 +62,7 @@ bool wxStaticText::Create(wxWindow *parent,
|
||||
wxControl::SetLabel(label);
|
||||
m_widget = gtk_label_new( m_label.mbc_str() );
|
||||
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
|
||||
|
||||
SetFont( parent->GetFont() );
|
||||
wxControl::SetFont( parent->GetFont() );
|
||||
|
||||
GtkJustification justify;
|
||||
if ( style & wxALIGN_CENTER )
|
||||
@ -79,6 +77,9 @@ bool wxStaticText::Create(wxWindow *parent,
|
||||
static const float labelAlignments[] = { 0.0, 1.0, 0.5 };
|
||||
gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0);
|
||||
|
||||
// do not move this call elsewhere
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
|
||||
|
||||
SetSizeOrDefault( size );
|
||||
|
||||
m_parent->DoAddChild( this );
|
||||
@ -107,10 +108,19 @@ void wxStaticText::SetLabel( const wxString &label )
|
||||
gtk_label_set( GTK_LABEL(m_widget), m_label.mbc_str() );
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
||||
{
|
||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
||||
SetSize( GetBestSize() );
|
||||
}
|
||||
}
|
||||
|
||||
bool wxStaticText::SetFont( const wxFont &font )
|
||||
{
|
||||
bool ret = wxControl::SetFont(font);
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
||||
SetSize( GetBestSize() );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void wxStaticText::ApplyWidgetStyle()
|
||||
@ -118,3 +128,22 @@ void wxStaticText::ApplyWidgetStyle()
|
||||
SetWidgetStyle();
|
||||
gtk_widget_set_style( m_widget, m_widgetStyle );
|
||||
}
|
||||
|
||||
wxSize wxStaticText::DoGetBestSize() const
|
||||
{
|
||||
// Do not return any arbitrary default value...
|
||||
wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") );
|
||||
|
||||
// this invalidates the size request
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
|
||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
|
||||
|
||||
GtkRequisition req;
|
||||
req.width = 2;
|
||||
req.height = 2;
|
||||
(* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request )
|
||||
(m_widget, &req );
|
||||
|
||||
return wxSize(req.width, req.height);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user