]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/msgdlg.cpp
Add go to first/last and plus/minus art provider icons.
[wxWidgets.git] / src / palmos / msgdlg.cpp
index 689982e0d34fea3aed6c22d840501c410bd20288..29bbb0e56a7db79e6704038f0a802df1342a8d24 100644 (file)
@@ -1,91 +1,87 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msgdlg.cpp
+// Name:        src/palmos/msgdlg.cpp
 // Purpose:     wxMessageDialog
-// Author:      William Osborne
+// Author:      William Osborne - minimal working wxPalmOS port
 // Modified by:
 // Created:     10/13/04
-// RCS-ID:      $Id
+// RCS-ID:      $Id$
 // Copyright:   (c) William Osborne
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "msgdlg.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
-    #include "wx/defs.h"
     #include "wx/utils.h"
     #include "wx/dialog.h"
     #include "wx/msgdlg.h"
 #endif
 
-IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
+#ifdef __WXPALMOS6__
+#include <Loader.h>
+#else // __WXPALMOS5__
+#include <UIResources.h> // alertRscType
+#endif
 
-wxMessageDialog::wxMessageDialog(wxWindow *parent,
-                                 const wxString& message,
-                                 const wxString& caption,
-                                 long style,
-                                 const wxPoint& WXUNUSED(pos))
-{
-#ifdef __WXDEBUG__
-    // check for common programming errors
-    if ( (style & wxID_OK) == wxID_OK )
-    {
-        // programmer probably confused wxID_OK with wxOK. Correct one is wxOK.
-        wxFAIL_MSG( _T("wxMessageBox: Did you mean wxOK (and not wxID_OK)?") );
-    }
-#endif // __WXDEBUG__
+#include <Form.h>
 
-    m_caption = caption;
-    m_message = message;
-    m_dialogStyle = style;
-    m_parent = parent;    
-}
+IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
 
 int wxMessageDialog::ShowModal()
 {
     int AlertID=1000;
     int Result=0;
     int wxResult=wxID_OK;
-    
+    const long style = GetMessageDialogStyle();
+
+#ifdef __WXPALMOS6__
     // Handle to the currently running application database
     DmOpenRef    AppDB;
     SysGetModuleDatabase(SysGetRefNum(), NULL, &AppDB);
+#endif // __WXPALMOS6__
 
     // Translate wx styles into Palm OS styles
-    if (m_dialogStyle & wxYES_NO)
+    if (style & wxYES_NO)
     {
-        if (m_dialogStyle & wxCANCEL)
+        if (style & wxCANCEL)
             AlertID=1300; // Yes No Cancel
         else
             AlertID=1200; // Yes No
     }
-    if (m_dialogStyle & wxOK)
+    if (style & wxOK)
     {
-        if (m_dialogStyle & wxCANCEL)
+        if (style & wxCANCEL)
             AlertID=1100; // Ok Cancel
         else
             AlertID=1000; // Ok
     }
 
     // Add the icon styles
-    if (m_dialogStyle & wxICON_EXCLAMATION)
-        AlertID=AlertID+0; // Warning
-    else if (m_dialogStyle & wxICON_HAND)
-        AlertID=AlertID+1; // Error
-    else if (m_dialogStyle & wxICON_INFORMATION)
-        AlertID=AlertID+2; // Information
-    else if (m_dialogStyle & wxICON_QUESTION)
-        AlertID=AlertID+3; // Confirmation
+    switch ( GetEffectiveIcon() )
+    {
+        case wxICON_ERROR:
+            AlertID = AlertID + 1;
+            break;
+
+        case wxICON_WARNING:
+            AlertID = AlertID + 0;
+            break;
+
+        case wxICON_QUESTION:
+            AlertID = AlertID + 3;
+            break;
+
+        case wxICON_NONE:
+        case wxICON_INFORMATION:
+            AlertID = AlertID + 2;
+            break;
+    }
 
     // The Palm OS Dialog API does not support custom titles in a dialog box.
     // So we have to set the title by manipulating the resource.
@@ -93,13 +89,13 @@ int wxMessageDialog::ShowModal()
     // Get the alert resource
     char *AlertPtr;
     MemHandle AlertHandle;
-    AlertHandle=DmGetResource(AppDB,'Talt',AlertID);
+    AlertHandle = POS_DmGetResource (AppDB, alertRscType, AlertID);
 
     AlertPtr=(char *)MemHandleLock(AlertHandle);
     AlertPtr+=8;
 
     // Clear out any old title.  This must be done with a static array of chars
-    // because using MemSet is not supported on resources and could result in 
+    // because using MemSet is not supported on resources and could result in
     // crashes or unpredictable behaviour.
     char ClearTitle[25]={' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
     MemMove(AlertPtr,&ClearTitle,25);
@@ -108,20 +104,20 @@ int wxMessageDialog::ShowModal()
     int TitleLength=m_caption.length();
     if(TitleLength>25)
         TitleLength=25;
-    
+
     // Center the title in the window
     int BufferLength=(25-TitleLength)/2;
     AlertPtr+=BufferLength;
 
     // Copy the title
     MemMove(AlertPtr,m_caption.c_str(),TitleLength);
-    
+
     // Release the resource
     MemHandleUnlock(AlertHandle);
     DmReleaseResource(AlertHandle);
 
     // Display the dialog
-    Result=FrmCustomAlert(AppDB,AlertID,m_message.c_str(),"","");
+    Result = POS_FrmCustomAlert (AppDB, AlertID, m_message.c_str(), "", "");
 
     // Convert the Palm OS result to wxResult
     if(AlertID<1100)
@@ -156,6 +152,5 @@ int wxMessageDialog::ShowModal()
             wxResult=wxID_CANCEL;
     }
 
-    return wxResult;    
+    return wxResult;
 }
-