X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ffecfa5aeb540b54914739dbb8603edbbd4c00a0..eea4d01c65f9b29baa1193db762b4c6b8144af24:/src/palmos/msgdlg.cpp diff --git a/src/palmos/msgdlg.cpp b/src/palmos/msgdlg.cpp index 689982e0d3..29bbb0e56a 100644 --- a/src/palmos/msgdlg.cpp +++ b/src/palmos/msgdlg.cpp @@ -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 +#else // __WXPALMOS5__ +#include // 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 - 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; } -