+ wxBoxSizer *sizerAll = new wxBoxSizer(isPda ? wxVERTICAL : wxHORIZONTAL);
+
+ wxBitmap bitmap;
+ switch ( style & wxICON_MASK )
+ {
+ case wxICON_ERROR:
+ bitmap = wxArtProvider::GetBitmap(wxART_ERROR, wxART_MESSAGE_BOX);
+#ifdef __WXPM__
+ bitmap.SetId(wxICON_SMALL_ERROR);
+#endif
+ break;
+
+ case wxICON_INFORMATION:
+ bitmap = wxArtProvider::GetBitmap(wxART_INFORMATION, wxART_MESSAGE_BOX);
+#ifdef __WXPM__
+ bitmap.SetId(wxICON_SMALL_INFO);
+#endif
+ break;
+
+ case wxICON_WARNING:
+ bitmap = wxArtProvider::GetBitmap(wxART_WARNING, wxART_MESSAGE_BOX);
+#ifdef __WXPM__
+ bitmap.SetId(wxICON_SMALL_WARNING);
+#endif
+ break;
+
+ default:
+ wxFAIL_MSG(_T("incorrect log style"));
+ }
+
+ if (!isPda)
+ sizerAll->Add(new wxStaticBitmap(this, wxID_ANY, bitmap), 0,
+ wxALIGN_CENTRE_VERTICAL);
+
+ // 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, 1,
+ wxALIGN_CENTRE_VERTICAL | wxLEFT | wxRIGHT, MARGIN);
+
+ wxButton *btnOk = new wxButton(this, wxID_OK);
+ sizerAll->Add(btnOk, 0, isPda ? wxCENTRE : wxCENTRE|wxBOTTOM, MARGIN/2);
+
+ sizerTop->Add(sizerAll, 0, wxALL | wxEXPAND, MARGIN);
+
+
+ // add the details pane
+
+#ifndef __SMARTPHONE__
+ wxCollapsiblePane *collpane = new wxCollapsiblePane(this, wxID_ANY, ms_details);
+ sizerTop->Add(collpane, 1, wxGROW|wxALL, MARGIN);
+
+ wxWindow *win = collpane->GetPane();
+ wxSizer *paneSz = new wxBoxSizer(wxVERTICAL);
+
+ CreateDetailsControls(win);
+
+ paneSz->Add(m_listctrl, 1, wxEXPAND | wxTOP, MARGIN);
+
+#if wxUSE_FILE && !defined(__SMARTPHONE__)
+ paneSz->Add(m_btnSave, 0, wxALIGN_RIGHT | wxTOP, MARGIN);
+#endif // wxUSE_FILE
+
+ win->SetSizer(paneSz);
+ paneSz->SetSizeHints(win);
+#else // __SMARTPHONE__
+ SetLeftMenu(wxID_OK);
+ SetRightMenu(wxID_MORE, ms_details + EXPAND_SUFFIX);
+#endif // __SMARTPHONE__/!__SMARTPHONE__