CW5.2 Pro Adaptions, wxMac starting to move in

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
1999-11-05 09:16:09 +00:00
parent 20f2deb3cf
commit 519cb848a8
176 changed files with 19303 additions and 9141 deletions

View File

@@ -14,11 +14,47 @@
#endif
#include "wx/msgdlg.h"
#include "wx/mac/uma.h"
#if !USE_SHARED_LIBRARY
IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
#endif
#define kMacOKAlertResourceID 128
#define kMacYesNoAlertResourceID 129
#define kMacYesNoCancelAlertResourceID 130
#define kMacNoYesAlertResourceID 131
#define kMacNoYesCancelAlertResourceID 132
short language = 0 ;
void wxMacConvertNewlines( const char *source , char * destination )
{
const char *s = source ;
char *d = destination ;
while( *s )
{
switch( *s )
{
case 0x0a :
*d++ = 0x0d ;
++s ;
break ;
case 0x0d :
*d++ = 0x0d ;
++s ;
if ( *s == 0x0a )
++s ;
break ;
default :
*d++ = *s++ ;
break ;
}
}
*d = 0 ;
}
wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption,
long style, const wxPoint& pos)
{
@@ -30,7 +66,226 @@ wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, cons
int wxMessageDialog::ShowModal()
{
// TODO
return wxID_CANCEL;
int resultbutton = wxID_CANCEL ;
short result ;
Str255 pascalTitle ;
Str255 pascalText ;
strcpy( (char*) pascalTitle , m_caption ) ;
c2pstr( (char*) pascalTitle ) ;
strcpy( (char*) pascalText , m_message ) ;
wxMacConvertNewlines( (char*)pascalText ,(char*) pascalText) ;
c2pstr( (char*) pascalText ) ;
if ( !UMAHasAppearance() )
{
int resourceID ;
if (m_dialogStyle & wxYES_NO)
{
if (m_dialogStyle & wxCANCEL)
resourceID = kMacYesNoCancelAlertResourceID;
else
resourceID = kMacYesNoAlertResourceID + language * 10 ;
}
else if (m_dialogStyle & wxOK)
{
if (m_dialogStyle & wxCANCEL)
resourceID = kMacOKAlertResourceID; // wrong
else
resourceID = kMacOKAlertResourceID;
}
else
{
return resultbutton ;
}
/*
if (hWnd)
msStyle |= MB_APPLMODAL;
else
msStyle |= MB_TASKMODAL;
*/
ParamText( pascalTitle , pascalText , NULL , NULL ) ;
if (m_dialogStyle & wxICON_EXCLAMATION)
result = Alert( resourceID , NULL ) ;
else if (m_dialogStyle & wxICON_HAND)
result = StopAlert( resourceID , NULL ) ;
else if (m_dialogStyle & wxICON_INFORMATION)
result = NoteAlert( resourceID , NULL ) ;
else if (m_dialogStyle & wxICON_QUESTION)
result = CautionAlert( resourceID , NULL ) ;
else
result = Alert( resourceID , NULL ) ;
resultbutton = result ;
if (m_dialogStyle & wxYES_NO)
{
if (m_dialogStyle & wxCANCEL)
{
switch( result )
{
case 1 :
resultbutton = wxID_YES ;
break ;
case 2 :
resultbutton = wxID_NO ;
break ;
case 3 :
resultbutton = wxID_CANCEL ;
break ;
}
}
else
{
switch( result )
{
case 1 :
resultbutton = wxID_YES ;
break ;
case 2 :
resultbutton = wxID_NO ;
break ;
case 3 :
break ;
}
}
}
}
else
{
AlertStdAlertParamRec param;
param.movable = true;
param.filterProc = NULL ;
if (m_dialogStyle & wxYES_NO)
{
if (m_dialogStyle & wxCANCEL)
{
param.defaultText = "\pYes" ;
param.cancelText = (StringPtr) kAlertDefaultCancelText;
param.otherText = "\pNo";
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = kAlertStdAlertCancelButton;
}
else
{
param.defaultText = "\pYes" ;
param.cancelText = NULL;
param.otherText = "\pNo";
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = 0;
}
}
else if (m_dialogStyle & wxOK)
{
if (m_dialogStyle & wxCANCEL)
{
// thats a cancel missing
param.defaultText = (StringPtr) kAlertDefaultOKText ;
param.cancelText = NULL;
param.otherText = NULL;
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = 0;
}
else
{
param.defaultText = (StringPtr) kAlertDefaultOKText ;
param.cancelText = NULL;
param.otherText = NULL;
param.helpButton = false ;
param.defaultButton = kAlertStdAlertOKButton;
param.cancelButton = 0;
}
}
else
{
return resultbutton ;
}
param.position = 0;
if (m_dialogStyle & wxICON_EXCLAMATION)
StandardAlert( kAlertNoteAlert, pascalTitle, pascalText, &param, &result );
else if (m_dialogStyle & wxICON_HAND)
StandardAlert( kAlertStopAlert, pascalTitle, pascalText, &param, &result );
else if (m_dialogStyle & wxICON_INFORMATION)
StandardAlert( kAlertNoteAlert, pascalTitle, pascalText, &param, &result );
else if (m_dialogStyle & wxICON_QUESTION)
StandardAlert( kAlertCautionAlert, pascalTitle, pascalText, &param, &result );
else
StandardAlert( kAlertPlainAlert, pascalTitle, pascalText, &param, &result );
if (m_dialogStyle & wxOK)
{
if (m_dialogStyle & wxCANCEL)
{
//TODO add Cancelbutton
switch( result )
{
case 1 :
resultbutton = wxID_OK ;
break ;
case 2 :
break ;
case 3 :
break ;
}
}
else
{
switch( result )
{
case 1 :
resultbutton = wxID_OK ;
break ;
case 2 :
break ;
case 3 :
break ;
}
}
}
else if (m_dialogStyle & wxYES_NO)
{
if (m_dialogStyle & wxCANCEL)
{
switch( result )
{
case 1 :
resultbutton = wxID_YES ;
break ;
case 2 :
resultbutton = wxID_CANCEL ;
break ;
case 3 :
resultbutton = wxID_NO ;
break ;
}
}
else
{
switch( result )
{
case 1 :
resultbutton = wxID_YES ;
break ;
case 2 :
break ;
case 3 :
resultbutton = wxID_NO ;
break ;
}
}
}
}
return resultbutton ;
}