]> git.saurik.com Git - wxWidgets.git/commitdiff
1. Yet another unit test for new stirng stuff
authorRyan Norton <wxprojects@comcast.net>
Thu, 7 Oct 2004 16:50:24 +0000 (16:50 +0000)
committerRyan Norton <wxprojects@comcast.net>
Thu, 7 Oct 2004 16:50:24 +0000 (16:50 +0000)
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

docs/latex/wx/evthand.tex
src/cocoa/app.mm
tests/strings/stdstrings.cpp

index 257f4f3b7400bb2fb153708ace3c0f76aad856d2..88c52e5e961deca4159c5c92966e3c62b09e3913 100644 (file)
@@ -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,
index f8f064934f73bb861a6af0ffce3bc8e72fdf0c55..e2336ca1b18ca3cfe568ff67499d0d743c1c31c5 100644 (file)
@@ -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)
index 454818265165ed7b35caa734a698d2f84b3c0b71..ded78080c413ce075ded90a506a02f820015286a 100644 (file)
@@ -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()