/////////////////////////////////////////////////////////////////////////////
-// 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
/////////////////////////////////////////////////////////////////////////////
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__
-
m_caption = caption;
m_message = message;
- m_dialogStyle = style;
- m_parent = parent;
+ m_parent = parent;
+ SetMessageDialogStyle(style);
}
int wxMessageDialog::ShowModal()
int AlertID=1000;
int Result=0;
int wxResult=wxID_OK;
-
+ const long style = GetMessageDialogStyle();
+
// Handle to the currently running application database
DmOpenRef AppDB;
SysGetModuleDatabase(SysGetRefNum(), NULL, &AppDB);
// 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.
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);
wxResult=wxID_CANCEL;
}
- return wxResult;
+ return wxResult;
}