]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/logg.cpp
fixed wxTaskBarIcon compilation
[wxWidgets.git] / src / generic / logg.cpp
index f58a6a971931e4a11bb02fc1524d6588c8330305..a0ff4d36721712bffb44a1b0687b43f3566f8ced 100644 (file)
@@ -44,6 +44,7 @@
     #include "wx/sizer.h"
     #include "wx/statbmp.h"
     #include "wx/button.h"
+    #include "wx/settings.h"
 #endif // WX_PRECOMP
 
 #if wxUSE_LOGGUI || wxUSE_LOGWINDOW
@@ -670,7 +671,9 @@ wxLogDialog::wxLogDialog(wxWindow *parent,
                          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() )
     {
@@ -721,20 +724,21 @@ wxLogDialog::wxLogDialog(wxWindow *parent,
     // 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);
@@ -866,7 +870,13 @@ void wxLogDialog::CreateDetailsControls()
     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)
@@ -1066,7 +1076,7 @@ void wxLogTextCtrl::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
     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');