X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6519b40fe9f5e4706e02497fe01ff71c65079d6..9611b7975f7c5cd86f0be0d6adcc67f7ddd98c72:/samples/text/text.cpp diff --git a/samples/text/text.cpp b/samples/text/text.cpp index 525a21e2dd..48a1106ce0 100644 --- a/samples/text/text.cpp +++ b/samples/text/text.cpp @@ -45,6 +45,10 @@ #include "wx/numdlg.h" #include "wx/tokenzr.h" +#ifndef __WXMSW__ + #include "../sample.xpm" +#endif + //---------------------------------------------------------------------- // class definitions //---------------------------------------------------------------------- @@ -194,6 +198,12 @@ public: } #endif // wxUSE_CLIPBOARD + void OnAddTextLine(wxCommandEvent& WXUNUSED(event)) + { + static int s_n = 0; + m_panel->m_textrich->AppendText(wxString::Format("Line %d\n", ++s_n)); + } + void OnAddTextFreeze( wxCommandEvent& WXUNUSED(event) ) { DoAddText(true); } void OnAddText( wxCommandEvent& WXUNUSED(event) ) @@ -297,7 +307,12 @@ public: void OnSetText(wxCommandEvent& WXUNUSED(event)) { - m_panel->m_text->SetValue(_T("Hello, world (what else did you expect)?")); + m_panel->m_text->SetValue(_T("Hello, world! (what else did you expect?)")); + } + + void OnChangeText(wxCommandEvent& WXUNUSED(event)) + { + m_panel->m_text->ChangeValue(_T("Changed, not set: no event")); } void OnIdle( wxIdleEvent& event ); @@ -306,20 +321,21 @@ private: void DoAddText(bool freeze) { wxTextCtrl * const text = m_panel->m_textrich; - text->Clear(); if ( freeze ) text->Freeze(); + text->Clear(); + for ( int i = 0; i < 100; i++ ) { text->AppendText(wxString::Format(wxT("Line %i\n"), i)); } + text->SetInsertionPoint(0); + if ( freeze ) text->Thaw(); - - text->SetInsertionPoint(0); } MyPanel *m_panel; @@ -389,6 +405,7 @@ enum // text menu TEXT_ADD_SOME = 400, TEXT_ADD_FREEZE, + TEXT_ADD_LINE, TEXT_MOVE_ENDTEXT, TEXT_MOVE_ENDENTRY, TEXT_SET_EDITABLE, @@ -405,6 +422,7 @@ enum TEXT_REPLACE, TEXT_SELECT, TEXT_SET, + TEXT_CHANGE, // log menu TEXT_LOG_KEY, @@ -419,6 +437,9 @@ enum bool MyApp::OnInit() { + if ( !wxApp::OnInit() ) + return false; + // Create the main frame window MyFrame *frame = new MyFrame((wxFrame *) NULL, _T("Text wxWidgets sample"), 50, 50, 700, 550); @@ -466,10 +487,12 @@ bool MyApp::OnInit() wxMenu *menuText = new wxMenu; menuText->Append(TEXT_ADD_SOME, _T("&Append some text\tCtrl-A")); menuText->Append(TEXT_ADD_FREEZE, _T("&Append text with freeze/thaw\tShift-Ctrl-A")); + menuText->Append(TEXT_ADD_LINE, _T("Append a new &line\tAlt-Shift-A")); menuText->Append(TEXT_REMOVE, _T("&Remove first 10 characters\tCtrl-Y")); menuText->Append(TEXT_REPLACE, _T("&Replace characters 4 to 8 with ABC\tCtrl-R")); menuText->Append(TEXT_SELECT, _T("&Select characters 4 to 8\tCtrl-I")); menuText->Append(TEXT_SET, _T("&Set the first text zone value\tCtrl-E")); + menuText->Append(TEXT_CHANGE, _T("&Change the first text zone value\tShift-Ctrl-E")); menuText->AppendSeparator(); menuText->Append(TEXT_MOVE_ENDTEXT, _T("Move cursor to the end of &text")); menuText->Append(TEXT_MOVE_ENDENTRY, _T("Move cursor to the end of &entry")); @@ -911,6 +934,10 @@ void MyTextCtrl::OnKeyDown(wxKeyEvent& event) wxLogMessage(_T("Selection = '%s' (len = %u)"), sel.c_str(), (unsigned int) sel.length()); + + const wxString text = GetLineText(line); + wxLogMessage(_T("Current line: \"%s\"; length = %lu"), + text.c_str(), text.length()); } break; @@ -1026,7 +1053,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) // a little hack to use the command line argument for encoding testing if ( wxTheApp->argc == 2 ) { - switch ( wxTheApp->argv[1][0] ) + switch ( (wxChar)wxTheApp->argv[1][0] ) { case '2': m_horizontal->SetFont(wxFont(18, wxSWISS, wxNORMAL, wxNORMAL, @@ -1058,13 +1085,14 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_horizontal->AppendText(_T("Text in default encoding")); } - m_multitext = new MyTextCtrl( this, wxID_ANY, _T("Multi line."), - wxPoint(180,10), wxSize(200,70), wxTE_MULTILINE ); + m_multitext = new MyTextCtrl( this, wxID_ANY, + _T("Multi line without vertical scrollbar."), + wxPoint(180,10), wxSize(200,70), wxTE_MULTILINE | wxTE_NO_VSCROLL ); m_multitext->SetFont(*wxITALIC_FONT); (*m_multitext) << _T(" Appended."); m_multitext->SetInsertionPoint(0); m_multitext->WriteText( _T("Prepended. ") ); - m_multitext->SetForegroundColour(*wxRED); + m_multitext->SetForegroundColour(*wxYELLOW); m_multitext->SetBackgroundColour(*wxLIGHT_GREY); #if wxUSE_TOOLTIPS @@ -1129,7 +1157,6 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) topSizer->Add( m_log, 1, wxALL | wxEXPAND, 10 ); #endif - SetAutoLayout( true ); SetSizer(topSizer); } @@ -1322,6 +1349,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(TEXT_SELECT, MyFrame::OnSelectText) EVT_MENU(TEXT_ADD_SOME, MyFrame::OnAddText) EVT_MENU(TEXT_ADD_FREEZE, MyFrame::OnAddTextFreeze) + EVT_MENU(TEXT_ADD_LINE, MyFrame::OnAddTextLine) EVT_MENU(TEXT_MOVE_ENDTEXT, MyFrame::OnMoveToEndOfText) EVT_MENU(TEXT_MOVE_ENDENTRY, MyFrame::OnMoveToEndOfEntry) @@ -1333,10 +1361,11 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(TEXT_PAGE_DOWN, MyFrame::OnScrollPageDown) EVT_MENU(TEXT_PAGE_UP, MyFrame::OnScrollPageUp) - EVT_MENU(TEXT_GET_LINE, MyFrame::OnGetLine) - EVT_MENU(TEXT_GET_LINELENGTH, MyFrame::OnGetLineLength) + EVT_MENU(TEXT_GET_LINE, MyFrame::OnGetLine) + EVT_MENU(TEXT_GET_LINELENGTH, MyFrame::OnGetLineLength) EVT_MENU(TEXT_SET, MyFrame::OnSetText) + EVT_MENU(TEXT_CHANGE, MyFrame::OnChangeText) EVT_IDLE(MyFrame::OnIdle) END_EVENT_TABLE() @@ -1344,6 +1373,8 @@ END_EVENT_TABLE() MyFrame::MyFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h) : wxFrame(frame, wxID_ANY, title, wxPoint(x, y), wxSize(w, h) ) { + SetIcon(wxICON(sample)); + #if wxUSE_STATUSBAR CreateStatusBar(2); #endif // wxUSE_STATUSBAR @@ -1483,13 +1514,13 @@ void MyFrame::OnIdle( wxIdleEvent& event ) wxString msg; msg.Printf( #ifdef __WXMSW__ - _T("Focus: wxWindow = %p, HWND = %08x"), + _T("Focus: wxWindow = %p, HWND = %p"), #else _T("Focus: wxWindow = %p"), #endif s_windowFocus #ifdef __WXMSW__ - , (unsigned int) s_windowFocus->GetHWND() + , s_windowFocus->GetHWND() #endif ); @@ -1816,10 +1847,9 @@ void RichTextFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) alignment = wxT("left-aligned"); else if (attr.GetAlignment() == wxTEXT_ALIGNMENT_JUSTIFIED) alignment = wxT("justified"); - msg.Printf(wxT("Facename: %s, wxColour(%d, %d, %d), %s"), - (const wxChar*) facename, + msg.Printf( "Facename: %s, wxColour(%d, %d, %d), %s", facename, attr.GetTextColour().Red(), attr.GetTextColour().Green(), attr.GetTextColour().Blue(), - (const wxChar*) alignment); + alignment ); if (attr.HasFont()) {