X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ffecfa5aeb540b54914739dbb8603edbbd4c00a0..04fa04d8067d235ab45b5bc05b65f0679634b541:/src/palmos/app.cpp diff --git a/src/palmos/app.cpp b/src/palmos/app.cpp index c66d9f24e5..5e78e97f62 100644 --- a/src/palmos/app.cpp +++ b/src/palmos/app.cpp @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp +// Name: src/palmos/app.cpp // Purpose: wxApp -// Author: William Osborne +// Author: William Osborne - minimal working wxPalmOS port // Modified by: // Created: 10/08/04 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) William Osborne // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -17,10 +17,6 @@ // headers // --------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "app.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -29,6 +25,7 @@ #endif #ifndef WX_PRECOMP + #include "wx/dynarray.h" #include "wx/frame.h" #include "wx/app.h" #include "wx/utils.h" @@ -42,16 +39,15 @@ #include "wx/dialog.h" #include "wx/msgdlg.h" #include "wx/intl.h" - #include "wx/dynarray.h" - #include "wx/wxchar.h" - #include "wx/icon.h" + #include "wx/crt.h" #include "wx/log.h" + #include "wx/module.h" #endif #include "wx/apptrait.h" #include "wx/filename.h" -#include "wx/module.h" #include "wx/dynlib.h" +#include "wx/evtloop.h" #if wxUSE_TOOLTIPS #include "wx/tooltip.h" @@ -68,8 +64,6 @@ // global variables // --------------------------------------------------------------------------- -extern wxList WXDLLEXPORT wxPendingDelete; - // NB: all "NoRedraw" classes must have the same names as the "normal" classes // with NR suffix - wxWindow::MSWCreate() supposes this const wxChar *wxCanvasClassName = wxT("wxWindowClass"); @@ -106,36 +100,34 @@ void *wxGUIAppTraits::BeforeChildWaitLoop() return NULL; } -void wxGUIAppTraits::AlwaysYield() -{ - wxYield(); -} - void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig) { } +#if wxUSE_THREADS bool wxGUIAppTraits::DoMessageFromThreadWait() { return false; } +#endif // wxUSE_THREADS -wxToolkitInfo& wxGUIAppTraits::GetToolkitInfo() +wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const { - static wxToolkitInfo info; - wxToolkitInfo& baseInfo = wxAppTraits::GetToolkitInfo(); - info.versionMajor = baseInfo.versionMajor; - info.versionMinor = baseInfo.versionMinor; - info.os = baseInfo.os; - info.shortName = _T("msw"); - info.name = _T("wxMSW"); -#ifdef __WXUNIVERSAL__ - info.shortName << _T("univ"); - info.name << _T("/wxUniversal"); -#endif - return info; + // TODO: how to get PalmOS GUI system version ? + return wxPORT_PALMOS; } +#if wxUSE_TIMER +wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer) +{ + return new wxPalmOSTimerImpl(timer); +}; +#endif // wxUSE_TIMER + +wxEventLoopBase* wxGUIAppTraits::CreateEventLoop() +{ + return new wxEventLoop; +} // =========================================================================== // wxApp implementation // =========================================================================== @@ -149,7 +141,6 @@ int wxApp::m_nCmdShow = 0; IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) EVT_END_SESSION(wxApp::OnEndSession) EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession) END_EVENT_TABLE() @@ -193,7 +184,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) // to create a window of this class is made. bool wxApp::RegisterWindowClasses() { - return TRUE; + return true; } // --------------------------------------------------------------------------- @@ -202,7 +193,7 @@ bool wxApp::RegisterWindowClasses() bool wxApp::UnregisterWindowClasses() { - bool retval = TRUE; + bool retval = true; return retval; } @@ -220,8 +211,7 @@ void wxApp::CleanUp() // unregister the classes now UnregisterWindowClasses(); - delete wxWinHandleHash; - wxWinHandleHash = NULL; + wxDELETE(wxWinHandleHash); } // ---------------------------------------------------------------------------- @@ -235,28 +225,27 @@ wxApp::wxApp() wxApp::~wxApp() { + wxChar **argv_tmp; + argv_tmp = argv; + // src/palmos/main.cpp // our cmd line arguments are allocated inside wxEntry(HINSTANCE), they // don't come from main(), so we have to free them - while ( argc ) { // m_argv elements were allocated by wxStrdup() - free(argv[--argc]); + if (argv_tmp[--argc]) { + free((void *)(argv_tmp[--argc])); + } } - // but m_argv itself -- using new[] - delete [] argv; + delete [] argv_tmp; + //argv = NULL; } // ---------------------------------------------------------------------------- // wxApp idle handling // ---------------------------------------------------------------------------- -void wxApp::OnIdle(wxIdleEvent& event) -{ - wxAppBase::OnIdle(event); -} - void wxApp::WakeUpIdle() { } @@ -268,7 +257,7 @@ void wxApp::WakeUpIdle() void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event)) { if (GetTopWindow()) - GetTopWindow()->Close(TRUE); + GetTopWindow()->Close(true); } // Default behaviour: close the application with prompts. The @@ -278,7 +267,7 @@ void wxApp::OnQueryEndSession(wxCloseEvent& event) if (GetTopWindow()) { if (!GetTopWindow()->Close(!event.CanVeto())) - event.Veto(TRUE); + event.Veto(true); } } @@ -292,13 +281,6 @@ int wxApp::GetComCtl32Version() return 0; } -// Yield to incoming messages - -bool wxApp::Yield(bool onlyIfNeeded) -{ - return true; -} - #if wxUSE_EXCEPTIONS // ----------------------------------------------------------------------------