]>
git.saurik.com Git - wxWidgets.git/blob - src/generic/busyinfo.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Information window when app is busy
4 // Author: Vaclav Slavik
5 // Copyright: (c) 1999 Vaclav Slavik
6 // Licence: wxWindows Licence
7 /////////////////////////////////////////////////////////////////////////////
10 #pragma implementation "busyinfo.h"
13 #include "wx/wxprec.h"
21 #include "wx/busyinfo.h"
22 #include "wx/stattext.h"
27 wxInfoFrame::wxInfoFrame(wxWindow
*parent
, const wxString
& message
)
28 : wxFrame(parent
, -1, wxT("Busy"),
29 wxDefaultPosition
, wxDefaultSize
,
30 #if defined(__WXX11__)
31 wxTHICK_FRAME
| wxFRAME_TOOL_WINDOW
)
33 wxSIMPLE_BORDER
| wxFRAME_TOOL_WINDOW
)
36 wxPanel
*panel
= new wxPanel( this );
37 wxStaticText
*text
= new wxStaticText(panel
, -1, message
);
39 panel
->SetCursor(*wxHOURGLASS_CURSOR
);
40 text
->SetCursor(*wxHOURGLASS_CURSOR
);
42 // make the frame of at least the standard size (400*80) but big enough
43 // for the text we show
44 wxSize sizeText
= text
->GetBestSize();
50 int nParentHeight
= parent
->GetClientSize().y
;
51 int nParentWidth
= parent
->GetClientSize().x
;
54 SetBackgroundColour("WHITE");
55 nColor
= (LONG
)GetBackgroundColour().GetPixel();
57 ::WinSetPresParam( GetHwnd()
62 panel
->SetBackgroundColour("WHITE");
63 nColor
= (LONG
)panel
->GetBackgroundColour().GetPixel();
65 ::WinSetPresParam( GetHwndOf(panel
)
70 nWidth
= wxMax(sizeText
.x
, 340) + 60;
71 nHeight
= wxMax(sizeText
.y
, 40) + 40;
72 nX
= (nParentWidth
- nWidth
) / 2;
73 nY
= (nParentHeight
/ 2) - (nHeight
/ 2);
74 nY
= nParentHeight
- (nY
+ nHeight
);
75 ::WinSetWindowPos( m_hFrame
81 ,SWP_SIZE
| SWP_MOVE
| SWP_ACTIVATE
83 text
->SetBackgroundColour("WHITE");
84 nColor
= (LONG
)text
->GetBackgroundColour().GetPixel();
86 ::WinSetPresParam( GetHwndOf(text
)
93 SetClientSize(wxMax(sizeText
.x
, 340) + 60, wxMax(sizeText
.y
, 40) + 40);
95 // need to size the panel correctly first so that text->Centre() works
96 panel
->SetSize(GetClientSize());
103 wxBusyInfo::wxBusyInfo(const wxString
& message
, wxWindow
*parent
)
105 m_InfoFrame
= new wxInfoFrame( parent
, message
);
106 m_InfoFrame
->Show(TRUE
);
108 m_InfoFrame
->Refresh();
112 wxBusyInfo::~wxBusyInfo()
114 m_InfoFrame
->Show(FALSE
);
115 m_InfoFrame
->Close();