+ wxBoxSizer *sizerAll = new wxBoxSizer(isPda ? wxVERTICAL : wxHORIZONTAL);
+
+ if (!isPda)
+ {
+ wxStaticBitmap *icon = new wxStaticBitmap
+ (
+ this,
+ wxID_ANY,
+ wxArtProvider::GetMessageBoxIcon(style)
+ );
+ sizerAll->Add(icon, wxSizerFlags().Centre());
+ }
+
+ // create the text sizer with a minimal size so that we are sure it won't be too small
+ wxString message = EllipsizeString(messages.Last());
+ wxSizer *szText = CreateTextSizer(message);
+ szText->SetMinSize(wxMin(300, wxGetDisplaySize().x / 3), -1);
+
+ sizerAll->Add(szText, wxSizerFlags(1).Centre().Border(wxLEFT | wxRIGHT));
+
+ wxButton *btnOk = new wxButton(this, wxID_OK);
+ sizerAll->Add(btnOk, wxSizerFlags().Centre());
+
+ sizerTop->Add(sizerAll, wxSizerFlags().Expand().Border());
+
+
+ // add the details pane
+#ifndef __SMARTPHONE__
+ wxCollapsiblePane * const
+ collpane = new wxCollapsiblePane(this, wxID_ANY, ms_details);
+ sizerTop->Add(collpane, wxSizerFlags(1).Expand().Border());
+
+ wxWindow *win = collpane->GetPane();
+ wxSizer * const paneSz = new wxBoxSizer(wxVERTICAL);
+
+ CreateDetailsControls(win);
+
+ paneSz->Add(m_listctrl, wxSizerFlags(1).Expand().Border(wxTOP));
+
+#if wxUSE_CLIPBOARD || CAN_SAVE_FILES
+ wxBoxSizer * const btnSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ wxSizerFlags flagsBtn;
+ flagsBtn.Border(wxLEFT);
+
+#if wxUSE_CLIPBOARD
+ btnSizer->Add(new wxButton(win, wxID_COPY), flagsBtn);
+#endif // wxUSE_CLIPBOARD
+
+#if CAN_SAVE_FILES
+ btnSizer->Add(new wxButton(win, wxID_SAVE), flagsBtn);
+#endif // CAN_SAVE_FILES
+
+ paneSz->Add(btnSizer, wxSizerFlags().Right().Border(wxTOP));
+#endif // wxUSE_CLIPBOARD || CAN_SAVE_FILES
+
+ win->SetSizer(paneSz);
+ paneSz->SetSizeHints(win);
+#else // __SMARTPHONE__
+ SetLeftMenu(wxID_OK);
+ SetRightMenu(wxID_MORE, ms_details + EXPAND_SUFFIX);
+#endif // __SMARTPHONE__/!__SMARTPHONE__
+
+ SetSizerAndFit(sizerTop);