/////////////////////////////////////////////////////////////////////////////
-// 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)
+ if (style & wxICON_EXCLAMATION)
AlertID=AlertID+0; // Warning
- else if (m_dialogStyle & wxICON_HAND)
+ else if (style & wxICON_HAND)
AlertID=AlertID+1; // Error
- else if (m_dialogStyle & wxICON_INFORMATION)
+ else if (style & wxICON_INFORMATION)
AlertID=AlertID+2; // Information
- else if (m_dialogStyle & wxICON_QUESTION)
+ else if (style & wxICON_QUESTION)
AlertID=AlertID+3; // Confirmation
// The Palm OS Dialog API does not support custom titles in a dialog box.
// 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);
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)
wxResult=wxID_CANCEL;
}
- return wxResult;
+ return wxResult;
}
-