improved sizing of wxBusyInfo window and updated the docs a bit
[wxWidgets.git] / src / generic / busyinfo.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: busyinfo.cpp
3 // Purpose: Information window when app is busy
4 // Author: Vaclav Slavik
5 // Copyright: (c) 1999 Vaclav Slavik
6 // Licence: wxWindows Licence
7 /////////////////////////////////////////////////////////////////////////////
8
9 #ifdef __GNUG__
10 #pragma implementation "busyinfo.h"
11 #endif
12
13 #include "wx/wxprec.h"
14
15 #ifdef __BORDLANDC__
16 #pragma hdrstop
17 #endif
18
19 #if wxUSE_BUSYINFO
20
21 #include "wx/busyinfo.h"
22 #include "wx/stattext.h"
23 #include "wx/panel.h"
24 #include "wx/utils.h"
25
26
27 wxInfoFrame::wxInfoFrame(wxWindow *parent, const wxString& message)
28 : wxFrame(parent, -1, wxT(""),
29 wxDefaultPosition, wxDefaultSize,
30 wxSIMPLE_BORDER | wxFRAME_TOOL_WINDOW)
31 {
32 wxPanel *panel = new wxPanel( this );
33 wxStaticText *text = new wxStaticText(panel, -1, message);
34
35 panel->SetCursor(*wxHOURGLASS_CURSOR);
36 text->SetCursor(*wxHOURGLASS_CURSOR);
37
38 // make the frame of at least the standard size (400*80) but big enough
39 // for the text we show
40 wxSize sizeText = text->GetBestSize();
41 SetClientSize(wxMax(sizeText.x, 340) + 60, wxMax(sizeText.y, 40) + 40);
42
43 // need to size the panel correctly first so that text->Centre() works
44 panel->SetSize(GetClientSize());
45
46 text->Centre(wxBOTH);
47 Centre(wxBOTH);
48 }
49
50 wxBusyInfo::wxBusyInfo(const wxString& message, wxWindow *parent)
51 {
52 m_InfoFrame = new wxInfoFrame( parent, message);
53 m_InfoFrame->Show(TRUE);
54 wxYield();
55 m_InfoFrame->Refresh();
56 wxYield();
57 }
58
59 wxBusyInfo::~wxBusyInfo()
60 {
61 m_InfoFrame->Show(FALSE);
62 m_InfoFrame->Close();
63 wxYield();
64 }
65
66 #endif
67 // wxUSE_BUSYINFO
68