implemented wxEventLoop for wxMac

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-01-12 20:09:00 +00:00
parent 25e2f480a7
commit 4d90072c22
10 changed files with 194 additions and 104 deletions

View File

@@ -47,13 +47,6 @@ class WXDLLEXPORT wxApp: public wxAppBase
wxApp();
virtual ~wxApp() {}
virtual int MainLoop();
virtual void ExitMainLoop();
virtual bool Pending() ;
virtual bool Dispatch() ;
virtual void Exit();
virtual bool Yield(bool onlyIfNeeded = FALSE);
virtual void WakeUpIdle();
@@ -69,6 +62,8 @@ class WXDLLEXPORT wxApp: public wxAppBase
void OnEndSession(wxCloseEvent& event);
void OnQueryEndSession(wxCloseEvent& event);
void MacDoOneEvent() ;
protected:
bool m_showOnInit;
int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
@@ -80,8 +75,6 @@ public:
virtual bool Initialize(int& argc, wxChar **argv);
virtual void CleanUp();
bool IsExiting() { return !m_keepGoing ; }
// the installed application event handler
WXEVENTHANDLERREF MacGetEventHandler() { return m_macEventHandler ; }
WXEVENTHANDLERREF MacGetCurrentEventHandlerCallRef() { return m_macCurrentEventHandlerCallRef ; }
@@ -98,8 +91,6 @@ public:
int m_nCmdShow;
private:
bool m_keepGoing ;
// mac specifics
WXEVENTHANDLERREF m_macEventHandler ;
@@ -131,7 +122,6 @@ public:
WXHRGN m_macSleepRgn ;
WXHRGN m_macHelpRgn ;
void MacDoOneEvent() ;
WXEVENTREF MacGetCurrentEvent() { return m_macCurrentEvent ; }
void MacHandleOneEvent( WXEVENTREF ev ) ;

View File

@@ -0,0 +1,52 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/mac/carbon/evtloop.h
// Purpose: declaration of wxEventLoop for wxMac
// Author: Vadim Zeitlin
// Modified by:
// Created: 2006-01-12
// RCS-ID: $Id$
// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_MAC_CARBON_EVTLOOP_H_
#define _WX_MAC_CARBON_EVTLOOP_H_
// set wxMAC_USE_RUN_APP_EVENT_LOOP to 1 if the standard
// RunApplicationEventLoop function should be used, otherwise
// the lower level CarbonEventLoop will be used
//
// in the long run we should make this 1 by default but we will have to clean
// up event handling to make sure we don't miss handling of things like pending
// events etc and perhaps we will also have to pipe events through an
// ueber-event-handler to make sure we have one place to do all these
// house-keeping functions
#define wxMAC_USE_RUN_APP_EVENT_LOOP 0
// ----------------------------------------------------------------------------
// wxEventLoop
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxEventLoop : public wxEventLoopBase
{
public:
wxEventLoop();
// implement base class pure virtuals
virtual int Run();
virtual void Exit(int rc = 0);
virtual bool Pending() const;
virtual bool Dispatch();
private:
// the loop exit code
int m_exitcode;
#if !wxMAC_USE_RUN_APP_EVENT_LOOP
// should we exit the loop?
bool m_shouldExit;
#endif // !wxMAC_USE_RUN_APP_EVENT_LOOP
};
#endif // _WX_MAC_CARBON_EVTLOOP_H_

18
include/wx/mac/evtloop.h Normal file
View File

@@ -0,0 +1,18 @@
///////////////////////////////////////////////////////////////////////////////
// Name: include/wx/mac/evtloop.h
// Purpose: simply forwards to wx/mac/carbon/evtloop.h for consistency with
// the other Mac headers
// Author: Vadim Zeitlin
// Modified by:
// Created: 2006-01-12
// RCS-ID: $Id$
// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifdef __WXMAC_CLASSIC__
#error "wxEventLoop is not implemented for Classic build."
#else
#include "wx/mac/carbon/evtloop.h"
#endif