// New dialog box implementations
// Split message, using constraints to position controls
-void wxSplitMessage2(const char *message, wxList *messageList, wxWindow *parent, wxRowColSizer *sizer)
+void wxSplitMessage2(const wxChar *message, wxList *messageList, wxWindow *parent, wxRowColSizer *sizer)
{
- char *copyMessage = copystring(message);
+ wxChar *copyMessage = copystring(message);
size_t i = 0;
- size_t len = strlen(copyMessage);
- char *currentMessage = copyMessage;
+ size_t len = wxStrlen(copyMessage);
+ wxChar *currentMessage = copyMessage;
// wxWindow *lastWindow = parent;
while (i < len) {
- while ((i < len) && (copyMessage[i] != '\n')) i++;
+ while ((i < len) && (copyMessage[i] != _T('\n'))) i++;
if (i < len) copyMessage[i] = 0;
wxStaticText *mess = new wxStaticText(parent, -1, currentMessage);
/*
- wxLayoutConstraints *c = new wxLayoutConstraints;
- c->left.SameAs (parent, wxLeft, 10);
- c->top.SameAs (lastWindow, wxBottom, 5);
- c->right.AsIs ();
- c->height.AsIs ();
+ wxLayoutConstraints *c = new wxLayoutConstraints;
+ c->left.SameAs (parent, wxLeft, 10);
+ c->top.SameAs (lastWindow, wxBottom, 5);
+ c->right.AsIs ();
+ c->height.AsIs ();
- mess->SetConstraints(c);
+ mess->SetConstraints(c);
*/
- sizer->AddSizerChild(mess);
+ sizer->AddSizerChild(mess);
messageList->Append(mess);
wxGenericMessageDialog::wxGenericMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption,
long style, const wxPoint& pos):
- wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL)
+ wxDialog(parent, -1, caption, pos,
+#ifdef __WXMOTIF_
+ wxSize(400, 300),
+#else
+ wxDefaultSize,
+#endif
+ wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL)
{
- m_dialogStyle = style;
+ m_dialogStyle = style;
- wxBeginBusyCursor();
+ wxBeginBusyCursor();
- wxSizer *topSizer = new wxSizer(this, wxSizerShrink);
- topSizer->SetBorder(10, 10);
+ wxSizer *topSizer = new wxSizer(this, wxSizerShrink);
+ topSizer->SetBorder(10, 10);
- wxRowColSizer *messageSizer = new wxRowColSizer(topSizer, wxSIZER_COLS, 100);
- messageSizer->SetName("messageSizer");
+ wxRowColSizer *messageSizer = new wxRowColSizer(topSizer, wxSIZER_COLS, 100);
+ messageSizer->SetName(_T("messageSizer"));
// bool centre = ((style & wxCENTRE) == wxCENTRE);
- wxList messageList;
- wxSplitMessage2(message, &messageList, this, messageSizer);
-
- // Insert a spacer
- wxSpacingSizer *spacingSizer = new wxSpacingSizer(topSizer, wxBelow, messageSizer, 20);
-
- wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS);
- buttonSizer->SetName("buttonSizer");
-
- // Specify constraints for the button sizer
- wxLayoutConstraints *c = new wxLayoutConstraints;
- c->width.AsIs ();
- c->height.AsIs ();
- c->top.Below (spacingSizer);
- c->centreX.SameAs (spacingSizer, wxCentreX);
- buttonSizer->SetConstraints(c);
-
- wxButton *ok = NULL;
- wxButton *cancel = NULL;
- wxButton *yes = NULL;
- wxButton *no = NULL;
-
- if (style & wxYES_NO) {
- yes = new wxButton(this, wxID_YES, _("Yes"));
- no = new wxButton(this, wxID_NO, _("No"));
-
- buttonSizer->AddSizerChild(yes);
- buttonSizer->AddSizerChild(no);
- }
-
- if (style & wxOK) {
- ok = new wxButton(this, wxID_OK, _("OK"));
- buttonSizer->AddSizerChild(ok);
- }
-
- if (style & wxCANCEL) {
- cancel = new wxButton(this, wxID_CANCEL, _("Cancel"));
- buttonSizer->AddSizerChild(cancel);
- }
-
- if (ok)
- {
- ok->SetDefault();
- ok->SetFocus();
- }
- else if (yes)
- {
- yes->SetDefault();
- yes->SetFocus();
- }
-
- Layout();
+ wxList messageList;
+ wxSplitMessage2(message, &messageList, this, messageSizer);
+
+ // Insert a spacer
+ wxSpacingSizer *spacingSizer = new wxSpacingSizer(topSizer, wxBelow, messageSizer, 20);
+
+ wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS);
+ buttonSizer->SetName(_T("buttonSizer"));
+ buttonSizer->SetSpacing(12,0);
+
+ // Specify constraints for the button sizer
+ wxLayoutConstraints *c = new wxLayoutConstraints;
+ c->width.AsIs ();
+ c->height.AsIs ();
+ c->top.Below (spacingSizer);
+ c->centreX.SameAs (spacingSizer, wxCentreX);
+ buttonSizer->SetConstraints(c);
+
+ wxButton *ok = (wxButton *) NULL;
+ wxButton *cancel = (wxButton *) NULL;
+ wxButton *yes = (wxButton *) NULL;
+ wxButton *no = (wxButton *) NULL;
+
+ if (style & wxYES_NO) {
+ yes = new wxButton(this, wxID_YES, _("Yes"), wxDefaultPosition, wxSize(75,-1) );
+ no = new wxButton(this, wxID_NO, _("No"), wxDefaultPosition, wxSize(75,-1) );
+
+ buttonSizer->AddSizerChild(yes);
+ buttonSizer->AddSizerChild(no);
+ }
+
+ if (style & wxOK) {
+ ok = new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxSize(75,-1) );
+ buttonSizer->AddSizerChild(ok);
+ }
+
+ if (style & wxCANCEL) {
+ cancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(75,-1) );
+ buttonSizer->AddSizerChild(cancel);
+ }
+
+ if (ok)
+ {
+ ok->SetDefault();
+ ok->SetFocus();
+ }
+ else if (yes)
+ {
+ yes->SetDefault();
+ yes->SetFocus();
+ }
+
+ Layout();
Centre(wxBOTH);
- wxEndBusyCursor();
+ wxEndBusyCursor();
}
void wxGenericMessageDialog::OnYes(wxCommandEvent& WXUNUSED(event))
{
- EndModal(wxID_YES);
+ EndModal(wxID_YES);
}
void wxGenericMessageDialog::OnNo(wxCommandEvent& WXUNUSED(event))
{
- EndModal(wxID_NO);
+ EndModal(wxID_NO);
}
void wxGenericMessageDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
{
- // Allow cancellation via ESC/Close button except if
- // only YES and NO are specified.
- if ( (m_dialogStyle & wxYES_NO) != wxYES_NO || (m_dialogStyle & wxCANCEL) )
- EndModal(wxID_CANCEL);
+ // Allow cancellation via ESC/Close button except if
+ // only YES and NO are specified.
+ if ( (m_dialogStyle & wxYES_NO) != wxYES_NO || (m_dialogStyle & wxCANCEL) )
+ EndModal(wxID_CANCEL);
}
-int wxMessageBox(const wxString& message, const wxString& caption, long style,
- wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y) )
-{
- wxMessageDialog dialog(parent, message, caption, style);
-
- int ans = dialog.ShowModal();
- switch ( ans )
- {
- case wxID_OK:
- return wxOK;
- break;
- case wxID_YES:
- return wxYES;
- break;
- case wxID_NO:
- return wxNO;
- break;
- default:
- case wxID_CANCEL:
- return wxCANCEL;
- break;
- }
-
- return ans;
-}
-