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
This commit is contained in:
Ryan Norton
2004-10-07 16:50:24 +00:00
parent d2b1753d16
commit 422d306cb3
3 changed files with 40 additions and 5 deletions

View File

@@ -105,7 +105,7 @@ is an alternative to the use of static event tables. See the 'event' or the old
\begin{verbatim} \begin{verbatim}
frame->Connect( wxID_EXIT, frame->Connect( wxID_EXIT,
wxEVT_COMMAND_MENU_SELECTED, wxEVT_COMMAND_MENU_SELECTED,
(wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) MyFrame::OnQuit ); (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &MyFrame::OnQuit );
\end{verbatim} \end{verbatim}
\perlnote{In wxPerl this function takes 4 arguments: \texttt{id, \perlnote{In wxPerl this function takes 4 arguments: \texttt{id,

View File

@@ -70,12 +70,20 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication);
plan on stopping the event loop, it is wise to send an event through plan on stopping the event loop, it is wise to send an event through
the queue to ensure this method will return. the queue to ensure this method will return.
See wxEventLoop::Exit() for more information. See wxEventLoop::Exit() for more information.
<20> <20>RN: We used to use nil as the untilDate in previous versions since nil
<EFBFBD> <20>is a shorter and more concise way of specifying an infinite amount of
<EFBFBD><EFBFBD> <20>time than [NSDate distantPast]. <20>However, Apple neglects to mention in
<EFBFBD> <20>their documentation that nil is not handled correctly in OSX 10.2
<EFBFBD> <20>(and possibly lower) and when the call is reached the system comes to
<EFBFBD> <20>a screeching halt, therefore we need to specify [NSDate distantPast]
<EFBFBD> <20>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 - (NSEvent *)nextEventMatchingMask:(unsigned int)mask untilDate:(NSDate *)expiration inMode:(NSString *)mode dequeue:(BOOL)flag
{ {
// Get the same events except don't block // 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 we got one, simply return it
if(event) if(event)
return event; return event;
@@ -91,7 +99,7 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication);
while(wxTheApp->ProcessIdle()) while(wxTheApp->ProcessIdle())
{ {
// Get the same events except don't block // 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 we got one, simply return it
if(event) if(event)
return event; return event;
@@ -150,7 +158,7 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication);
- (void)controlTintChanged:(NSNotification *)notification - (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 @end // implementation wxNSApplicationDelegate : NSObject
@@ -322,7 +330,7 @@ bool wxApp::Yield(bool onlyIfNeeded)
wxAutoNSAutoreleasePool pool; wxAutoNSAutoreleasePool pool;
NSEvent *event = [GetNSApplication() NSEvent *event = [GetNSApplication()
nextEventMatchingMask:NSAnyEventMask nextEventMatchingMask:NSAnyEventMask
untilDate:nil /* ==[NSDate distantPast] */ untilDate:[NSDate distantPast]
inMode:NSDefaultRunLoopMode inMode:NSDefaultRunLoopMode
dequeue: YES]; dequeue: YES];
if(!event) if(!event)

View File

@@ -286,6 +286,33 @@ void StdStringTestCase::StdFindLast()
CPPUNIT_ASSERT( s1.find_last_of(_T("ijklm")) == 16u ); 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("ijklma"), 33, 4) == 16u );
CPPUNIT_ASSERT( s1.find_last_of(_T("a"), 17) == 17u ); 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() void StdStringTestCase::StdInsert()