#include "wx/sizer.h"
#include "wx/statbmp.h"
#include "wx/button.h"
+ #include "wx/settings.h"
#endif // WX_PRECOMP
#if wxUSE_LOGGUI || wxUSE_LOGWINDOW
const wxArrayLong& times,
const wxString& caption,
long style)
- : wxDialog(parent, -1, caption)
+ : wxDialog(parent, -1, caption,
+ wxDefaultPosition, wxDefaultSize,
+ wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
{
if ( ms_details.IsEmpty() )
{
// to close the log dialog with <Esc> which wouldn't work otherwise (as it
// translates into click on cancel button)
wxButton *btnOk = new wxButton(this, wxID_CANCEL, _("OK"));
- sizerButtons->Add(btnOk, 0, wxCENTRE|wxBOTTOM, MARGIN/2);
+ sizerButtons->Add(btnOk, 0, wxCENTRE | wxBOTTOM, MARGIN/2);
m_btnDetails = new wxButton(this, wxID_MORE, ms_details + _T(" >>"));
- sizerButtons->Add(m_btnDetails, 0, wxCENTRE|wxTOP, MARGIN/2 - 1);
+ sizerButtons->Add(m_btnDetails, 0, wxCENTRE | wxTOP, MARGIN/2 - 1);
#ifndef __WIN16__
wxIcon icon = wxTheApp->GetStdIcon((int)(style & wxICON_MASK));
- sizerAll->Add(new wxStaticBitmap(this, -1, icon), 0, wxCENTRE);
+ sizerAll->Add(new wxStaticBitmap(this, -1, icon), 0);
#endif // !Win16
const wxString& message = messages.Last();
- sizerAll->Add(CreateTextSizer(message), 0, wxCENTRE|wxLEFT|wxRIGHT, MARGIN);
- sizerAll->Add(sizerButtons, 0, wxALIGN_RIGHT|wxLEFT, MARGIN);
+ sizerAll->Add(CreateTextSizer(message), 1,
+ wxALIGN_CENTRE_VERTICAL | wxLEFT | wxRIGHT, MARGIN);
+ sizerAll->Add(sizerButtons, 0, wxALIGN_RIGHT | wxLEFT, MARGIN);
- sizerTop->Add(sizerAll, 0, wxCENTRE|wxALL, MARGIN);
+ sizerTop->Add(sizerAll, 0, wxALL | wxEXPAND, MARGIN);
SetAutoLayout(TRUE);
SetSizer(sizerTop);
int y;
GetTextExtent(_T("H"), (int*)NULL, &y, (int*)NULL, (int*)NULL, &font);
int height = wxMax(y*(count + 3), 100);
- m_listctrl->SetSize(-1, height);
+
+ // if the height as computed from list items exceeds, together with the
+ // actual message & controls, the screen, make it smaller
+ int heightMax =
+ (3*wxSystemSettings::GetSystemMetric(wxSYS_SCREEN_Y))/5 - GetSize().y;
+
+ m_listctrl->SetSize(-1, wxMin(height, heightMax));
}
void wxLogDialog::OnListSelect(wxListEvent& event)
wxString msg;
TimeStamp(&msg);
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !defined(__DARWIN__)
// VZ: this is a bug in wxMac, it *must* accept '\n' as new line, the
// translation must be done in wxTextCtrl, not here! (FIXME)
msg << szString << wxT('\r');