]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/busyinfo.cpp
added missing wxListItem copy ctor to wxMSW, moved wxListItem to the header
[wxWidgets.git] / src / generic / busyinfo.cpp
index d446750d64a8cc7322a105a6666580df6f6a2dde..884318fbe736c86d74ea3b2bbd296d6d674e262d 100644 (file)
 
 
 wxInfoFrame::wxInfoFrame(wxWindow *parent, const wxString& message)
-    : wxFrame(parent, -1, "", wxPoint(0, 0), wxSize(400, 80), wxTHICK_FRAME | wxSIMPLE_BORDER | wxFRAME_TOOL_WINDOW)
+           : wxFrame(parent, -1, wxT("Busy"),
+                     wxDefaultPosition, wxDefaultSize,
+#if defined(__WXX11__)
+                     wxTHICK_FRAME | wxFRAME_TOOL_WINDOW)
+#else
+                     wxSIMPLE_BORDER | wxFRAME_TOOL_WINDOW)
+#endif
 {
-    wxPanel *p = new wxPanel( this );
-    wxStaticText *s = new wxStaticText( p, -1, message, wxPoint(20, 20), wxSize(360, 40), wxALIGN_CENTER );
+    wxPanel *panel = new wxPanel( this );
+    wxStaticText *text = new wxStaticText(panel, -1, message);
+
+    panel->SetCursor(*wxHOURGLASS_CURSOR);
+    text->SetCursor(*wxHOURGLASS_CURSOR);
+
+    // make the frame of at least the standard size (400*80) but big enough
+    // for the text we show
+    wxSize sizeText = text->GetBestSize();
+    SetClientSize(wxMax(sizeText.x, 340) + 60, wxMax(sizeText.y, 40) + 40);
+
+    // need to size the panel correctly first so that text->Centre() works
+    panel->SetSize(GetClientSize());
+
+    text->Centre(wxBOTH);
     Centre(wxBOTH);
-    p->SetCursor(*wxHOURGLASS_CURSOR);
-    s->SetCursor(*wxHOURGLASS_CURSOR);
 }
 
-wxBusyInfo::wxBusyInfo(const wxString& message) : wxObject()
+wxBusyInfo::wxBusyInfo(const wxString& message, wxWindow *parent)
 {
-    m_InfoFrame = new wxInfoFrame( (wxWindow*) NULL, message);
+    m_InfoFrame = new wxInfoFrame( parent, message);
     m_InfoFrame->Show(TRUE);
     wxYield();
     m_InfoFrame->Refresh();
@@ -51,4 +68,5 @@ wxBusyInfo::~wxBusyInfo()
 }
 
 #endif
-  // wxUSE_BUSYINFO
\ No newline at end of file
+  // wxUSE_BUSYINFO
+