]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/app.cpp
Added support for saving greyscale TIFF images.
[wxWidgets.git] / src / palmos / app.cpp
index 8c84faae1284a20cc9006f1acc8368a32b707be2..5e78e97f62ea76750ce8b1b45a8824bad97108eb 100644 (file)
@@ -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
 /////////////////////////////////////////////////////////////////////////////
 // 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"
     #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("palmos");
-    info.name = _T("wxPalmOS");
-#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()
@@ -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()
 {
 }
@@ -292,13 +281,6 @@ int wxApp::GetComCtl32Version()
     return 0;
 }
 
-// Yield to incoming messages
-
-bool wxApp::Yield(bool onlyIfNeeded)
-{
-    return true;
-}
-
 #if wxUSE_EXCEPTIONS
 
 // ----------------------------------------------------------------------------