added wxCANCEL_DEFAULT style to wxMessageDialog (only implemented for MSW for now); also tightened up the style checks in wxMessageDialog::SetMessageDialogStyle()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -309,6 +309,7 @@ All (GUI):
|
|||||||
- Added wxWrapSizer (Arne Steinarson)
|
- Added wxWrapSizer (Arne Steinarson)
|
||||||
- Added wxSpinCtrlDouble (John Labenski)
|
- Added wxSpinCtrlDouble (John Labenski)
|
||||||
- Support custom labels in wxMessageDialog (Gareth Simpson for wxMac version).
|
- Support custom labels in wxMessageDialog (Gareth Simpson for wxMac version).
|
||||||
|
- Also added wxCANCEL_DEFAULT to wxMessageDialog.
|
||||||
- Allow copying text in the log dialogs.
|
- Allow copying text in the log dialogs.
|
||||||
- Added multisample (anti-aliasing) support to wxGLCanvas (Olivier Playez).
|
- Added multisample (anti-aliasing) support to wxGLCanvas (Olivier Playez).
|
||||||
- Initialize wx{Client,Paint,Window}DC with fonts/colours of its window.
|
- Initialize wx{Client,Paint,Window}DC with fonts/colours of its window.
|
||||||
|
@@ -143,9 +143,24 @@ public:
|
|||||||
wxASSERT_MSG( ((style & wxYES_NO) == wxYES_NO) || !(style & wxYES_NO),
|
wxASSERT_MSG( ((style & wxYES_NO) == wxYES_NO) || !(style & wxYES_NO),
|
||||||
"wxYES and wxNO may only be used together" );
|
"wxYES and wxNO may only be used together" );
|
||||||
|
|
||||||
|
wxASSERT_MSG( !(style & wxYES) || !(style & wxOK),
|
||||||
|
"wxOK and wxYES/wxNO can't be used together" );
|
||||||
|
|
||||||
|
wxASSERT_MSG( (style & wxYES) || (style & wxOK),
|
||||||
|
"one of wxOK and wxYES/wxNO must be used" );
|
||||||
|
|
||||||
wxASSERT_MSG( (style & wxID_OK) != wxID_OK,
|
wxASSERT_MSG( (style & wxID_OK) != wxID_OK,
|
||||||
"wxMessageBox: Did you mean wxOK (and not wxID_OK)?" );
|
"wxMessageBox: Did you mean wxOK (and not wxID_OK)?" );
|
||||||
|
|
||||||
|
wxASSERT_MSG( !(style & wxNO_DEFAULT) || (style & wxNO),
|
||||||
|
"wxNO_DEFAULT is invalid without wxNO" );
|
||||||
|
|
||||||
|
wxASSERT_MSG( !(style & wxCANCEL_DEFAULT) || (style & wxCANCEL),
|
||||||
|
"wxCANCEL_DEFAULT is invalid without wxCANCEL" );
|
||||||
|
|
||||||
|
wxASSERT_MSG( !(style & wxCANCEL_DEFAULT) || !(style & wxNO_DEFAULT),
|
||||||
|
"only one default button can be specified" );
|
||||||
|
|
||||||
m_dialogStyle = style;
|
m_dialogStyle = style;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -39,9 +39,14 @@ public:
|
|||||||
@c wxCANCEL.
|
@c wxCANCEL.
|
||||||
@style{wxNO_DEFAULT}
|
@style{wxNO_DEFAULT}
|
||||||
Makes the "No" button default, can only be used with @c wxYES_NO.
|
Makes the "No" button default, can only be used with @c wxYES_NO.
|
||||||
|
@style{wxCANCEL_DEFAULT}
|
||||||
|
Makes the "Cancel" button default, can only be used with @c wxCANCEL
|
||||||
@style{wxYES_DEFAULT}
|
@style{wxYES_DEFAULT}
|
||||||
Makes the "Yes" button default, this is the default behaviour and
|
Makes the "Yes" button default, this is the default behaviour and
|
||||||
this flag exists solely for symmetry with @c wxNO_DEFAULT.
|
this flag exists solely for symmetry with @c wxNO_DEFAULT.
|
||||||
|
@style{wxOK_DEFAULT}
|
||||||
|
Makes the "OK" button default, this is the default behaviour and
|
||||||
|
this flag exists solely for symmetry with @c wxCANCEL_DEFAULT.
|
||||||
@style{wxICON_EXCLAMATION}
|
@style{wxICON_EXCLAMATION}
|
||||||
Displays an exclamation mark symbol.
|
Displays an exclamation mark symbol.
|
||||||
@style{wxICON_ERROR}
|
@style{wxICON_ERROR}
|
||||||
@@ -62,6 +67,11 @@ public:
|
|||||||
implemented only under MSW).
|
implemented only under MSW).
|
||||||
@endStyleTable
|
@endStyleTable
|
||||||
|
|
||||||
|
Notice that not all styles are compatible: only one of @c wxOK and @c
|
||||||
|
wxYES_NO may be specified (and one of them must be specified) and at
|
||||||
|
most one default button style can be used and it is only valid if the
|
||||||
|
corresponding button is shown in the message box.
|
||||||
|
|
||||||
@param parent
|
@param parent
|
||||||
Parent window.
|
Parent window.
|
||||||
@param message
|
@param message
|
||||||
@@ -75,7 +85,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
wxMessageDialog(wxWindow* parent, const wxString& message,
|
wxMessageDialog(wxWindow* parent, const wxString& message,
|
||||||
const wxString& caption = "Message box",
|
const wxString& caption = "Message box",
|
||||||
long style = wxOK | wxCANCEL,
|
long style = wxOK | wxCENTRE,
|
||||||
const wxPoint& pos = wxDefaultPosition);
|
const wxPoint& pos = wxDefaultPosition);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -446,7 +446,7 @@ int wxMessageDialog::ShowModal()
|
|||||||
HWND hWnd = m_parent ? GetHwndOf(m_parent) : NULL;
|
HWND hWnd = m_parent ? GetHwndOf(m_parent) : NULL;
|
||||||
|
|
||||||
// translate wx style in MSW
|
// translate wx style in MSW
|
||||||
unsigned int msStyle = MB_OK;
|
unsigned int msStyle;
|
||||||
const long wxStyle = GetMessageDialogStyle();
|
const long wxStyle = GetMessageDialogStyle();
|
||||||
if ( wxStyle & wxYES_NO )
|
if ( wxStyle & wxYES_NO )
|
||||||
{
|
{
|
||||||
@@ -459,15 +459,24 @@ int wxMessageDialog::ShowModal()
|
|||||||
|
|
||||||
if ( wxStyle & wxNO_DEFAULT )
|
if ( wxStyle & wxNO_DEFAULT )
|
||||||
msStyle |= MB_DEFBUTTON2;
|
msStyle |= MB_DEFBUTTON2;
|
||||||
|
else if ( wxStyle & wxCANCEL_DEFAULT )
|
||||||
|
msStyle |= MB_DEFBUTTON3;
|
||||||
}
|
}
|
||||||
|
else // without Yes/No we're going to have an OK button
|
||||||
if (wxStyle & wxOK)
|
|
||||||
{
|
{
|
||||||
if ( wxStyle & wxCANCEL )
|
if ( wxStyle & wxCANCEL )
|
||||||
|
{
|
||||||
msStyle = MB_OKCANCEL;
|
msStyle = MB_OKCANCEL;
|
||||||
else
|
|
||||||
|
if ( wxStyle & wxCANCEL_DEFAULT )
|
||||||
|
msStyle |= MB_DEFBUTTON2;
|
||||||
|
}
|
||||||
|
else // just "OK"
|
||||||
|
{
|
||||||
msStyle = MB_OK;
|
msStyle = MB_OK;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (wxStyle & wxICON_EXCLAMATION)
|
if (wxStyle & wxICON_EXCLAMATION)
|
||||||
msStyle |= MB_ICONEXCLAMATION;
|
msStyle |= MB_ICONEXCLAMATION;
|
||||||
else if (wxStyle & wxICON_HAND)
|
else if (wxStyle & wxICON_HAND)
|
||||||
|
Reference in New Issue
Block a user