X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2ab25aca26bffe363b1f76623c736602a70eb56f..0fe243db0c0447b69917eaa6d3a0e32743229638:/samples/typetest/typetest.cpp diff --git a/samples/typetest/typetest.cpp b/samples/typetest/typetest.cpp index 4d8ab2866d..617c6d74ca 100644 --- a/samples/typetest/typetest.cpp +++ b/samples/typetest/typetest.cpp @@ -1,18 +1,14 @@ ///////////////////////////////////////////////////////////////////////////// // Name: typetest.cpp -// Purpose: Types wxWindows sample +// Purpose: Types wxWidgets sample // Author: Julian Smart // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "typetest.h" -#endif - // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -71,10 +67,16 @@ BEGIN_EVENT_TABLE(MyApp, wxApp) EVT_MENU(TYPES_MIME, MyApp::DoMIMEDemo) END_EVENT_TABLE() +wxString file_name = _T("test_wx.dat"); +wxString file_name2 = wxString(_T("test_wx2.dat")); + bool MyApp::OnInit() { + if ( !wxApp::OnInit() ) + return false; + // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, _T("wxWindows Types Demo"), + MyFrame *frame = new MyFrame((wxFrame *) NULL, _T("wxWidgets Types Demo"), wxPoint(50, 50), wxSize(450, 340)); // Give it an icon @@ -108,14 +110,15 @@ bool MyApp::OnInit() menu_bar->Append(test_menu, _T("&Tests")); frame->SetMenuBar(menu_bar); - m_textCtrl = new wxTextCtrl(frame, -1, _T(""), wxPoint(0, 0), wxDefaultSize, wxTE_MULTILINE); + m_textCtrl = new wxTextCtrl(frame, wxID_ANY, wxEmptyString, + wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE); // Show the frame - frame->Show(TRUE); + frame->Show(true); SetTopWindow(frame); - return TRUE; + return true; } void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event)) @@ -128,7 +131,7 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Writing to ofstream and wxFileOutputStream:\n") ); wxSTD ofstream std_file_output( "test_std.dat" ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); wxBufferedOutputStream buf_output( file_output ); wxTextOutputStream text_output( buf_output ); @@ -137,31 +140,33 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event)) tmp.Printf( _T("Signed int: %d\n"), si ); textCtrl.WriteText( tmp ); text_output << si << _T("\n"); - std_file_output << si << _T("\n"); + std_file_output << si << "\n"; unsigned int ui = 0xFFFFFFFF; tmp.Printf( _T("Unsigned int: %u\n"), ui ); textCtrl.WriteText( tmp ); text_output << ui << _T("\n"); - std_file_output << ui << _T("\n"); + std_file_output << ui << "\n"; double d = 2.01234567890123456789; tmp.Printf( _T("Double: %f\n"), d ); textCtrl.WriteText( tmp ); text_output << d << _T("\n"); - std_file_output << d << _T("\n"); + std_file_output << d << "\n"; float f = (float)0.00001; tmp.Printf( _T("Float: %f\n"), f ); textCtrl.WriteText( tmp ); text_output << f << _T("\n"); - std_file_output << f << _T("\n"); + std_file_output << f << "\n"; wxString str( _T("Hello!") ); tmp.Printf( _T("String: %s\n"), str.c_str() ); textCtrl.WriteText( tmp ); text_output << str << _T("\n"); - std_file_output << str.c_str() << _T("\n"); + std_file_output << str.ToAscii() << "\n"; + + std_file_output.close(); textCtrl.WriteText( _T("\nReading from ifstream:\n") ); @@ -183,19 +188,17 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event)) tmp.Printf( _T("Float: %f\n"), f ); textCtrl.WriteText( tmp ); - // Why doesn't this work? -#if 0 char std_buf[200]; std_file_input >> std_buf; - tmp.Printf( _T("String: %s\n"), std_buf ); + str = wxString::FromAscii(std_buf); + tmp.Printf( _T("String: %s\n"), str.c_str() ); textCtrl.WriteText( tmp ); -#endif textCtrl.WriteText( _T("\nReading from wxFileInputStream:\n") ); buf_output.Sync(); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); wxBufferedInputStream buf_input( file_input ); wxTextInputStream text_input( file_input ); @@ -283,13 +286,13 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Writing number 0 to 9 to buffered wxFileOutputStream:\n\n") ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); wxBufferedOutputStream buf_output( file_output ); for (ch = 0; ch < 10; ch++) buf_output.Write( &ch, 1 ); buf_output.Sync(); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); for (ch2 = 0; ch2 < 10; ch2++) { file_input.Read( &ch, 1 ); @@ -300,7 +303,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Writing number 0 to 9 to buffered wxFileOutputStream, then\n") ); textCtrl.WriteText( _T("seeking back to #3 and writing 0:\n\n") ); - wxFileOutputStream file_output2( wxString(_T("test_wx2.dat")) ); + wxFileOutputStream file_output2( file_name2 ); wxBufferedOutputStream buf_output2( file_output2 ); for (ch = 0; ch < 10; ch++) buf_output2.Write( &ch, 1 ); @@ -309,7 +312,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event)) buf_output2.Write( &ch, 1 ); buf_output2.Sync(); - wxFileInputStream file_input2( wxString(_T("test_wx2.dat")) ); + wxFileInputStream file_input2( file_name2 ); for (ch2 = 0; ch2 < 10; ch2++) { file_input2.Read( &ch, 1 ); @@ -327,7 +330,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Reading number 0 to 9 from buffered wxFileInputStream, then\n") ); textCtrl.WriteText( _T("seeking back to #3 and reading the 0:\n\n") ); - wxFileInputStream file_input3( wxString(_T("test_wx2.dat")) ); + wxFileInputStream file_input3( file_name2 ); wxBufferedInputStream buf_input3( file_input3 ); for (ch2 = 0; ch2 < 10; ch2++) { @@ -355,7 +358,7 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Writing number 0 to 9 to wxFileOutputStream:\n\n") ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); for (ch = 0; ch < 10; ch++) file_output.Write( &ch, 1 ); @@ -363,7 +366,7 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Reading 0 to 10 to wxFileInputStream:\n\n") ); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); for (ch2 = 0; ch2 < 11; ch2++) { file_input.Read( &ch, 1 ); @@ -412,7 +415,7 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Reading 0 to 10 to wxFFileInputStream:\n\n") ); - wxFFileInputStream ffile_input( wxString(_T("test_wx.dat")) ); + wxFFileInputStream ffile_input( file_name ); for (ch2 = 0; ch2 < 11; ch2++) { ffile_input.Read( &ch, 1 ); @@ -460,7 +463,7 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Reading 0 to 10 to buffered wxFFileInputStream:\n\n") ); - wxFFileInputStream ffile_input2( wxString(_T("test_wx.dat")) ); + wxFFileInputStream ffile_input2( file_name ); wxBufferedInputStream buf_input( ffile_input2 ); for (ch2 = 0; ch2 < 11; ch2++) { @@ -517,7 +520,7 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event)) // bigger than buffer textCtrl.WriteText( _T("Writing 2000x 1 to wxFileOutputStream.\n\n") ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); for (int i = 0; i < 2000; i++) { char ch = 1; @@ -526,7 +529,7 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Opening with a buffered wxFileInputStream:\n\n") ); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); wxBufferedInputStream buf_input( file_input ); textCtrl.WriteText( _T("wxBufferedInputStream.GetLastError() returns: ") ); @@ -656,13 +659,13 @@ void MyApp::DoStreamDemo5(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Writing number 0 to 9 to wxFileOutputStream:\n\n") ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); for (ch = 0; ch < 10; ch++) file_output.Write( &ch, 1 ); file_output.Sync(); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); ch = file_input.Peek(); str.Printf( wxT("First char peeked: %d\n"), (int) ch ); @@ -727,12 +730,11 @@ void MyApp::DoStreamDemo6(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("\nTesting Ungetch():\n\n") ); char ch = 0; - size_t pos = 0; wxString str; textCtrl.WriteText( _T("Writing number 0 to 9 to wxFileOutputStream...\n\n") ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); for (ch = 0; ch < 10; ch++) file_output.Write( &ch, 1 ); @@ -740,52 +742,52 @@ void MyApp::DoStreamDemo6(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Reading char from wxFileInputStream:\n\n") ); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); ch = file_input.GetC(); - pos = file_input.TellI(); + size_t pos = (size_t)file_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading another char from wxFileInputStream:\n\n") ); ch = file_input.GetC(); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading yet another char from wxFileInputStream:\n\n") ); ch = file_input.GetC(); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Now calling Ungetch( 5 ) from wxFileInputStream...\n\n") ); file_input.Ungetch( 5 ); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Now at position %d\n\n"), (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading char from wxFileInputStream:\n\n") ); ch = file_input.GetC(); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading another char from wxFileInputStream:\n\n") ); ch = file_input.GetC(); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Now calling Ungetch( 5 ) from wxFileInputStream again...\n\n") ); file_input.Ungetch( 5 ); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Now at position %d\n\n"), (int) pos ); textCtrl.WriteText( str ); @@ -794,7 +796,7 @@ void MyApp::DoStreamDemo6(wxCommandEvent& WXUNUSED(event)) file_input.SeekI( 3 ); ch = file_input.GetC(); - pos = file_input.TellI(); + pos = (size_t)file_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); } @@ -807,12 +809,11 @@ void MyApp::DoStreamDemo7(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("\nTesting Ungetch() in buffered input stream:\n\n") ); char ch = 0; - size_t pos = 0; wxString str; textCtrl.WriteText( _T("Writing number 0 to 9 to wxFileOutputStream...\n\n") ); - wxFileOutputStream file_output( wxString(_T("test_wx.dat")) ); + wxFileOutputStream file_output( file_name ); for (ch = 0; ch < 10; ch++) file_output.Write( &ch, 1 ); @@ -820,53 +821,53 @@ void MyApp::DoStreamDemo7(wxCommandEvent& WXUNUSED(event)) textCtrl.WriteText( _T("Reading char from wxBufferedInputStream via wxFileInputStream:\n\n") ); - wxFileInputStream file_input( wxString(_T("test_wx.dat")) ); + wxFileInputStream file_input( file_name ); wxBufferedInputStream buf_input( file_input ); ch = buf_input.GetC(); - pos = buf_input.TellI(); + size_t pos = (size_t)buf_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading another char from wxBufferedInputStream:\n\n") ); ch = buf_input.GetC(); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading yet another char from wxBufferedInputStream:\n\n") ); ch = buf_input.GetC(); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Now calling Ungetch( 5 ) from wxBufferedInputStream...\n\n") ); buf_input.Ungetch( 5 ); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Now at position %d\n\n"), (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading char from wxBufferedInputStream:\n\n") ); ch = buf_input.GetC(); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Reading another char from wxBufferedInputStream:\n\n") ); ch = buf_input.GetC(); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); textCtrl.WriteText( _T("Now calling Ungetch( 5 ) from wxBufferedInputStream again...\n\n") ); buf_input.Ungetch( 5 ); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Now at position %d\n\n"), (int) pos ); textCtrl.WriteText( str ); @@ -875,7 +876,7 @@ void MyApp::DoStreamDemo7(wxCommandEvent& WXUNUSED(event)) buf_input.SeekI( 3 ); ch = buf_input.GetC(); - pos = buf_input.TellI(); + pos = (size_t)buf_input.TellI(); str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos ); textCtrl.WriteText( str ); } @@ -889,16 +890,11 @@ void MyApp::DoUnicodeDemo(wxCommandEvent& WXUNUSED(event)) textCtrl << _T("\nTest wchar_t to char (Unicode to ANSI/Multibyte) converions:"); wxString str; - str = _T("Robert Röbling\n"); + str = _T("Robert R\366bling\n"); printf( "\n\nConversion with wxConvLocal:\n" ); wxConvCurrent = &wxConvLocal; printf( (const char*) str.mbc_str() ); -#if defined(__WXGTK__) - printf( "\n\nConversion with wxConvGdk:\n" ); - wxConvCurrent = &wxConvGdk; - printf( (const char*) str.mbc_str() ); -#endif printf( "\n\nConversion with wxConvLibc:\n" ); wxConvCurrent = &wxConvLibc; printf( (const char*) str.mbc_str() ); @@ -928,12 +924,12 @@ void MyApp::DoMIMEDemo(wxCommandEvent& WXUNUSED(event)) _T("XyZ %s"), _T("XyZ -p %s"), _T("The one and only XYZ format file"), - _T("xyz"), _T("123"), NULL), + _T("xyz"), _T("123"), wxNullPtr), wxFileTypeInfo(_T("text/html"), _T("lynx %s"), _T("lynx -dump %s | lpr"), _T("HTML document (from fallback)"), - _T("htm"), _T("html"), NULL), + _T("htm"), _T("html"), wxNullPtr), // must terminate the table with this! wxFileTypeInfo() @@ -960,13 +956,12 @@ void MyApp::DoMIMEDemo(wxCommandEvent& WXUNUSED(event)) wxFileType::MessageParameters params(filename, type); filetype->GetOpenCommand(&open, params); - textCtrl << _T("MIME information about extension '") << ext << _T("'\n") - << _T("\tMIME type: ") << ( !type ? wxT("unknown") - : type.c_str() ) << '\n' - << _T("\tDescription: ") << ( !desc ? wxT("") : desc.c_str() ) - << '\n' - << _T("\tCommand to open: ") << ( !open ? wxT("no") : open.c_str() ) - << '\n'; + textCtrl << _T("MIME information about extension '") << ext << _T('\n') + << _T("\tMIME type: ") << ( !type ? wxString("unknown") : type ) << _T('\n') + << _T("\tDescription: ") << ( !desc ? wxString(wxEmptyString) : desc ) + << _T('\n') + << _T("\tCommand to open: ") << ( !open ? wxString("no") : open ) + << _T('\n'); delete filetype; } @@ -981,27 +976,28 @@ void MyApp::DoByteOrderDemo(wxCommandEvent& WXUNUSED(event)) textCtrl.Clear(); textCtrl << _T("\nTest byte order macros:\n\n"); - if (wxBYTE_ORDER == wxLITTLE_ENDIAN) + #if wxBYTE_ORDER == wxLITTLE_ENDIAN textCtrl << _T("This is a little endian system.\n\n"); - else + #else textCtrl << _T("This is a big endian system.\n\n"); + #endif wxString text; wxInt32 var = 0xF1F2F3F4; - text = _T(""); + text = wxEmptyString; text.Printf( _T("Value of wxInt32 is now: %#x.\n\n"), var ); textCtrl.WriteText( text ); - text = _T(""); + text = wxEmptyString; text.Printf( _T("Value of swapped wxInt32 is: %#x.\n\n"), wxINT32_SWAP_ALWAYS( var ) ); textCtrl.WriteText( text ); - text = _T(""); + text = wxEmptyString; text.Printf( _T("Value of wxInt32 swapped on little endian is: %#x.\n\n"), wxINT32_SWAP_ON_LE( var ) ); textCtrl.WriteText( text ); - text = _T(""); + text = wxEmptyString; text.Printf( _T("Value of wxInt32 swapped on big endian is: %#x.\n\n"), wxINT32_SWAP_ON_BE( var ) ); textCtrl.WriteText( text ); } @@ -1029,14 +1025,12 @@ void MyApp::DoVariantDemo(wxCommandEvent& WXUNUSED(event) ) long l = var1; // suppress compile warnings about unused variables - if ( l < v ) - { - ; - } + wxUnusedVar(l); + wxUnusedVar(v); - wxStringList stringList; - stringList.Add(_T("one")); stringList.Add(_T("two")); stringList.Add(_T("three")); - var1 = stringList; + wxArrayString stringArray; + stringArray.Add(_T("one")); stringArray.Add(_T("two")); stringArray.Add(_T("three")); + var1 = stringArray; textCtrl << _T("var1 = ") << var1.MakeString() << _T("\n"); var1.ClearList(); @@ -1052,6 +1046,18 @@ void MyApp::DoVariantDemo(wxCommandEvent& WXUNUSED(event) ) { textCtrl << _T("var1[") << (int) i << _T("] (type ") << var1[i].GetType() << _T(") = ") << var1[i].MakeString() << _T("\n"); } + + var1 = wxVariant(new wxFont(wxSystemSettings::GetFont(wxSYS_OEM_FIXED_FONT))); + textCtrl << _T("var1 = (wxfont)\""); + wxFont* font = wxGetVariantCast(var1,wxFont); + if (font) + { + textCtrl << font->GetNativeFontInfoDesc() << _T("\"\n"); + } + else + { + textCtrl << _T("(null)\"\n"); + } } BEGIN_EVENT_TABLE(MyFrame, wxFrame) @@ -1061,21 +1067,21 @@ END_EVENT_TABLE() // My frame constructor MyFrame::MyFrame(wxFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size): - wxFrame(parent, -1, title, pos, size) + const wxPoint& pos, const wxSize& size) + : wxFrame(parent, wxID_ANY, title, pos, size) {} void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) ) { - Close(TRUE); + Close(true); } void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) { - wxMessageDialog dialog(this, _T("Tests various wxWindows types"), - _T("About Types"), wxYES_NO|wxCANCEL); + wxMessageDialog dialog(this, _T("Tests various wxWidgets types"), + _T("About Types"), wxYES_NO|wxCANCEL); - dialog.ShowModal(); + dialog.ShowModal(); }