// some opaque data which will be passed later to AfterChildWaitLoop()
virtual void *BeforeChildWaitLoop() = 0;
- // process pending Windows messages, even in console app
- virtual void AlwaysYield() = 0;
-
// called after starting to wait for the child termination, the parameter
// is the return value of BeforeChildWaitLoop()
virtual void AfterChildWaitLoop(void *data) = 0;
public:
virtual wxEventLoopBase *CreateEventLoop();
virtual void *BeforeChildWaitLoop();
- virtual void AlwaysYield();
virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
public:
virtual wxEventLoopBase *CreateEventLoop();
virtual void *BeforeChildWaitLoop();
- virtual void AlwaysYield();
virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
// some opaque data which will be passed later to AfterChildWaitLoop()
virtual void *BeforeChildWaitLoop() = 0;
- // process pending Windows messages, even in console app
- virtual void AlwaysYield() = 0;
-
// called after starting to wait for the child termination, the parameter
// is the return value of BeforeChildWaitLoop()
virtual void AfterChildWaitLoop(void *data) = 0;
virtual wxEventLoopBase *CreateEventLoop();
#endif // wxUSE_CONSOLE_EVENTLOOP
virtual void *BeforeChildWaitLoop();
- virtual void AlwaysYield();
virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer) { return new wxPalmOSTimerImpl(timer); }
public:
virtual wxEventLoopBase *CreateEventLoop();
virtual void *BeforeChildWaitLoop();
- virtual void AlwaysYield();
virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER
// there is no wxTimer support yet
return new ChildWaitLoopData(wd, winActive);
}
-void wxGUIAppTraits::AlwaysYield()
-{
- wxYield();
-}
-
void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig)
{
wxEndBusyCursor();
// wxConsoleAppTraits implementation
// ============================================================================
-void wxConsoleAppTraits::AlwaysYield()
-{
- // we need to use special logic to deal with WM_PAINT: as this pseudo
- // message is generated automatically as long as there are invalidated
- // windows belonging to this thread, we'd never return if we waited here
- // until we have no more of them left. OTOH, this message is always the
- // last one in the queue, so we can safely return as soon as we detect it
- MSG msg;
- while ( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
- {
- if ( msg.message == WM_PAINT )
- break;
- }
-}
-
void *wxConsoleAppTraits::BeforeChildWaitLoop()
{
// nothing to do here
return NULL;
}
-void wxGUIAppTraits::AlwaysYield()
-{
- wxYield();
-}
-
void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig)
{
}
// wxConsoleAppTraits implementation
// ============================================================================
-void wxConsoleAppTraits::AlwaysYield()
-{
-}
-
void *wxConsoleAppTraits::BeforeChildWaitLoop()
{
return NULL;