1. wxTextControl::SetFont() does something (good or bad - for you to judge)
2. tip dialog modified slightly to look a bit prettier under GTK 3. notebook test demonstrates the wxGTK radiobox-in-notebook-pages-constraints bug git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -96,22 +96,26 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window)
|
||||
panel2->SetBackgroundColour(wxColour("BLUE"));
|
||||
|
||||
wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" };
|
||||
wxListBox *listbox = new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals);
|
||||
wxRadioBox *radiobox = new wxRadioBox(panel2, -1, "Choose one",
|
||||
wxDefaultPosition, wxDefaultSize, 5, animals);
|
||||
|
||||
c = new wxLayoutConstraints;
|
||||
c->left.SameAs(panel2, wxLeft, 4);
|
||||
c->top.SameAs(panel2, wxTop, 4);
|
||||
c->height.PercentOf(panel2, wxHeight, 50);
|
||||
c->right.SameAs(panel2, wxRight, 4);
|
||||
listbox->SetConstraints(c);
|
||||
radiobox->SetConstraints(c);
|
||||
|
||||
wxTextCtrl *text = new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100), wxTE_MULTILINE);
|
||||
wxRadioBox *radiobox2 = new wxRadioBox(panel2, -1, "Choose one",
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
5, animals,
|
||||
2, wxRA_SPECIFY_ROWS);
|
||||
c = new wxLayoutConstraints;
|
||||
c->left.SameAs(panel2, wxLeft, 4);
|
||||
c->bottom.SameAs(panel2, wxBottom, 4);
|
||||
c->top.Below(listbox, 4);
|
||||
c->right.SameAs(panel2, wxRight, 4);
|
||||
text->SetConstraints(c);
|
||||
c->left.SameAs(radiobox, wxLeft);
|
||||
c->height.AsIs();
|
||||
c->top.Below(radiobox, 4);
|
||||
c->right.SameAs(radiobox, wxRight);
|
||||
radiobox2->SetConstraints(c);
|
||||
|
||||
notebook->AddPage(panel2, "Dog");
|
||||
|
||||
@@ -170,7 +174,7 @@ void MyDialog::Init(void)
|
||||
SetAutoLayout(TRUE);
|
||||
Layout();
|
||||
|
||||
this->Centre(wxBOTH);
|
||||
Centre(wxBOTH);
|
||||
}
|
||||
|
||||
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||
|
@@ -403,6 +403,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
|
||||
|
||||
m_horizontal = new MyTextCtrl( this, -1, "Multiline text control with a horizontal scrollbar.",
|
||||
wxPoint(10,170), wxSize(140,70), wxTE_MULTILINE | wxHSCROLL );
|
||||
m_horizontal->SetFont(wxFont(18, wxSWISS, wxNORMAL, wxBOLD));
|
||||
|
||||
m_multitext = new MyTextCtrl( this, ID_TEXT, "Multi line.",
|
||||
wxPoint(180,10), wxSize(240,70), wxTE_MULTILINE );
|
||||
@@ -582,10 +583,10 @@ void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) )
|
||||
|
||||
wxMessageDialog dialog(this, "This is a text control sample. It demonstrates the many different text control\n"
|
||||
"styles, the use of the clipboard, setting and handling tooltips and intercepting\n"
|
||||
"key and char events.\n"
|
||||
"\n"
|
||||
"Copyright (c) 1999, Robert Roebling, Julian Smart, Vadim Zeitlin",
|
||||
"About Text Controls", wxOK );
|
||||
"key and char events.\n"
|
||||
"\n"
|
||||
"Copyright (c) 1999, Robert Roebling, Julian Smart, Vadim Zeitlin",
|
||||
"About Text Controls", wxOK );
|
||||
dialog.ShowModal();
|
||||
|
||||
wxEndBusyCursor();
|
||||
@@ -600,9 +601,9 @@ void MyFrame::OnSetTooltipDelay(wxCommandEvent& event)
|
||||
delay.Printf( _T("%ld"), s_delay);
|
||||
|
||||
delay = wxGetTextFromUser("Enter delay (in milliseconds)",
|
||||
"Set tooltip delay",
|
||||
delay,
|
||||
this);
|
||||
"Set tooltip delay",
|
||||
delay,
|
||||
this);
|
||||
if ( !delay )
|
||||
return; // cancelled
|
||||
|
||||
|
@@ -398,14 +398,29 @@ void wxTextCtrl::AppendText( const wxString &text )
|
||||
|
||||
if (m_windowStyle & wxTE_MULTILINE)
|
||||
{
|
||||
/* we'll insert at the last position */
|
||||
gint len = gtk_text_get_length( GTK_TEXT(m_text) );
|
||||
bool hasSpecialAttributes = m_font.Ok() ||
|
||||
m_foregroundColour.Ok() ||
|
||||
m_backgroundColour.Ok();
|
||||
if ( hasSpecialAttributes )
|
||||
{
|
||||
gtk_text_insert( GTK_TEXT(m_text),
|
||||
m_font.GetInternalFont(),
|
||||
m_foregroundColour.GetColor(),
|
||||
m_backgroundColour.GetColor(),
|
||||
text, text.length());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* we'll insert at the last position */
|
||||
gint len = gtk_text_get_length( GTK_TEXT(m_text) );
|
||||
#if wxUSE_UNICODE
|
||||
wxWX2MBbuf buf = text.mbc_str();
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len );
|
||||
wxWX2MBbuf buf = text.mbc_str();
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len );
|
||||
#else
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len );
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len );
|
||||
#endif
|
||||
}
|
||||
|
||||
/* bring editable's cursor uptodate. bug in GTK. */
|
||||
GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) );
|
||||
@@ -879,8 +894,8 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
|
||||
if (!(GTK_EDITABLE(m_text)->has_selection))
|
||||
{
|
||||
if (from) *from = 0;
|
||||
if (to) *to = 0;
|
||||
return;
|
||||
if (to) *to = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (from) *from = (long) GTK_EDITABLE(m_text)->selection_start_pos;
|
||||
@@ -1005,12 +1020,31 @@ bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window )
|
||||
return (window == GTK_ENTRY(m_text)->text_area);
|
||||
}
|
||||
|
||||
bool wxTextCtrl::SetFont( const wxFont &WXUNUSED(font) )
|
||||
// the font will change for subsequent text insertiongs
|
||||
bool wxTextCtrl::SetFont( const wxFont &font )
|
||||
{
|
||||
wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
|
||||
|
||||
// doesn't work
|
||||
return FALSE;
|
||||
if ( !wxWindowBase::SetFont(font) )
|
||||
{
|
||||
// font didn't change, nothing to do
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ( m_windowStyle & wxTE_MULTILINE )
|
||||
{
|
||||
// for compatibility with other ports: the font is a global controls
|
||||
// characteristic, so change the font globally
|
||||
wxString value = GetValue();
|
||||
if ( !value.IsEmpty() )
|
||||
{
|
||||
Clear();
|
||||
|
||||
AppendText(value);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool wxTextCtrl::SetForegroundColour( const wxColour &WXUNUSED(colour) )
|
||||
|
@@ -398,14 +398,29 @@ void wxTextCtrl::AppendText( const wxString &text )
|
||||
|
||||
if (m_windowStyle & wxTE_MULTILINE)
|
||||
{
|
||||
/* we'll insert at the last position */
|
||||
gint len = gtk_text_get_length( GTK_TEXT(m_text) );
|
||||
bool hasSpecialAttributes = m_font.Ok() ||
|
||||
m_foregroundColour.Ok() ||
|
||||
m_backgroundColour.Ok();
|
||||
if ( hasSpecialAttributes )
|
||||
{
|
||||
gtk_text_insert( GTK_TEXT(m_text),
|
||||
m_font.GetInternalFont(),
|
||||
m_foregroundColour.GetColor(),
|
||||
m_backgroundColour.GetColor(),
|
||||
text, text.length());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* we'll insert at the last position */
|
||||
gint len = gtk_text_get_length( GTK_TEXT(m_text) );
|
||||
#if wxUSE_UNICODE
|
||||
wxWX2MBbuf buf = text.mbc_str();
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len );
|
||||
wxWX2MBbuf buf = text.mbc_str();
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len );
|
||||
#else
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len );
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len );
|
||||
#endif
|
||||
}
|
||||
|
||||
/* bring editable's cursor uptodate. bug in GTK. */
|
||||
GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) );
|
||||
@@ -879,8 +894,8 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
|
||||
if (!(GTK_EDITABLE(m_text)->has_selection))
|
||||
{
|
||||
if (from) *from = 0;
|
||||
if (to) *to = 0;
|
||||
return;
|
||||
if (to) *to = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (from) *from = (long) GTK_EDITABLE(m_text)->selection_start_pos;
|
||||
@@ -1005,12 +1020,31 @@ bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window )
|
||||
return (window == GTK_ENTRY(m_text)->text_area);
|
||||
}
|
||||
|
||||
bool wxTextCtrl::SetFont( const wxFont &WXUNUSED(font) )
|
||||
// the font will change for subsequent text insertiongs
|
||||
bool wxTextCtrl::SetFont( const wxFont &font )
|
||||
{
|
||||
wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
|
||||
|
||||
// doesn't work
|
||||
return FALSE;
|
||||
if ( !wxWindowBase::SetFont(font) )
|
||||
{
|
||||
// font didn't change, nothing to do
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ( m_windowStyle & wxTE_MULTILINE )
|
||||
{
|
||||
// for compatibility with other ports: the font is a global controls
|
||||
// characteristic, so change the font globally
|
||||
wxString value = GetValue();
|
||||
if ( !value.IsEmpty() )
|
||||
{
|
||||
Clear();
|
||||
|
||||
AppendText(value);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool wxTextCtrl::SetForegroundColour( const wxColour &WXUNUSED(colour) )
|
||||
|
Reference in New Issue
Block a user