From: Ryan Norton Date: Thu, 7 Oct 2004 16:50:24 +0000 (+0000) Subject: 1. Yet another unit test for new stirng stuff X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/422d306cb3acaebe95a0554754ab8a15f13a1784 1. Yet another unit test for new stirng stuff 2. Fix unicode and 10.2 in src/cocoa/app.mm 3. Fix error in doc about wxEvtHandler::Connect git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/evthand.tex b/docs/latex/wx/evthand.tex index 257f4f3b74..88c52e5e96 100644 --- a/docs/latex/wx/evthand.tex +++ b/docs/latex/wx/evthand.tex @@ -105,7 +105,7 @@ is an alternative to the use of static event tables. See the 'event' or the old \begin{verbatim} frame->Connect( wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, - (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) MyFrame::OnQuit ); + (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &MyFrame::OnQuit ); \end{verbatim} \perlnote{In wxPerl this function takes 4 arguments: \texttt{id, diff --git a/src/cocoa/app.mm b/src/cocoa/app.mm index f8f064934f..e2336ca1b1 100644 --- a/src/cocoa/app.mm +++ b/src/cocoa/app.mm @@ -70,12 +70,20 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication); plan on stopping the event loop, it is wise to send an event through the queue to ensure this method will return. See wxEventLoop::Exit() for more information. + + Ê ÊRN: We used to use nil as the untilDate in previous versions since nil +Ê Êis a shorter and more concise way of specifying an infinite amount of +ÊÊ Êtime than [NSDate distantPast]. ÊHowever, Apple neglects to mention in +Ê Êtheir documentation that nil is not handled correctly in OSX 10.2 +Ê Ê(and possibly lower) and when the call is reached the system comes to +Ê Êa screeching halt, therefore we need to specify [NSDate distantPast] +Ê Êexplicitly so that wxCocoa will work correctly in OSX 10.2. */ - (NSEvent *)nextEventMatchingMask:(unsigned int)mask untilDate:(NSDate *)expiration inMode:(NSString *)mode dequeue:(BOOL)flag { // Get the same events except don't block - NSEvent *event = [super nextEventMatchingMask:mask untilDate:nil/* equivalent to [NSDate distantPast] */ inMode:mode dequeue:flag]; + NSEvent *event = [super nextEventMatchingMask:mask untilDate:[NSDate distantPast] inMode:mode dequeue:flag]; // If we got one, simply return it if(event) return event; @@ -91,7 +99,7 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication); while(wxTheApp->ProcessIdle()) { // Get the same events except don't block - NSEvent *event = [super nextEventMatchingMask:mask untilDate:nil/* equivalent to [NSDate distantPast] */ inMode:mode dequeue:flag]; + NSEvent *event = [super nextEventMatchingMask:mask untilDate:[NSDate distantPast] inMode:mode dequeue:flag]; // If we got one, simply return it if(event) return event; @@ -150,7 +158,7 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication); - (void)controlTintChanged:(NSNotification *)notification { - wxLogDebug("TODO: send EVT_SYS_COLOUR_CHANGED as appropriate"); + wxLogDebug(wxT("TODO: send EVT_SYS_COLOUR_CHANGED as appropriate")); } @end // implementation wxNSApplicationDelegate : NSObject @@ -322,7 +330,7 @@ bool wxApp::Yield(bool onlyIfNeeded) wxAutoNSAutoreleasePool pool; NSEvent *event = [GetNSApplication() nextEventMatchingMask:NSAnyEventMask - untilDate:nil /* ==[NSDate distantPast] */ + untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue: YES]; if(!event) diff --git a/tests/strings/stdstrings.cpp b/tests/strings/stdstrings.cpp index 4548182651..ded78080c4 100644 --- a/tests/strings/stdstrings.cpp +++ b/tests/strings/stdstrings.cpp @@ -286,6 +286,33 @@ void StdStringTestCase::StdFindLast() CPPUNIT_ASSERT( s1.find_last_of(_T("ijklm")) == 16u ); CPPUNIT_ASSERT( s1.find_last_of(_T("ijklma"), 33, 4) == 16u ); CPPUNIT_ASSERT( s1.find_last_of(_T("a"), 17) == 17u ); + + + + // 0 1 2 3 + // 012345 67890123456789 01234567890123456 +// wxString s1 = _T("aaaaaa\0bcdefghlkjiaa\0aaaabcdbcdbcdbcd"); +// wxString s2 = _T("aaaaaa\0"); + s1.insert(6,1,'\0'); + s1.insert(20,1,'\0'); + s2.insert(6,1,'\0'); + + CPPUNIT_ASSERT( s2.find_last_not_of(_T('a')) == 6u ); + CPPUNIT_ASSERT( s1.find_last_not_of(_T('d')) == 35u ); + CPPUNIT_ASSERT( s1.find_last_not_of(_T('d'), 27) == 26u ); + + CPPUNIT_ASSERT( s1.find_last_not_of(_T("bcd")) == 24u ); + CPPUNIT_ASSERT( s1.find_last_not_of(_T("abc"), 26) == 20u ); + + CPPUNIT_ASSERT( s1.find_last_not_of(_T("abcdefghijklmnopqrstuv"), 26, 3) == 20u ); + + CPPUNIT_ASSERT( s2.find_last_of(_T('c')) == wxString::npos ); + CPPUNIT_ASSERT( s1.find_last_of(_T('a')) == 24u ); + CPPUNIT_ASSERT( s1.find_last_of(_T('b'), 26) == 25u ); + + CPPUNIT_ASSERT( s1.find_last_of(_T("ijklm")) == 17u ); + CPPUNIT_ASSERT( s1.find_last_of(_T("ijklma"), 35, 4) == 17u ); + CPPUNIT_ASSERT( s1.find_last_of(_T("a"), 18) == 18u ); } void StdStringTestCase::StdInsert()