void wxPanel::Init()
{
+ m_container.SetContainerWindow(this);
}
bool wxPanel::Create(wxWindow *parent, wxWindowID id,
{
}
-// ----------------------------------------------------------------------------
-// misc
-// ----------------------------------------------------------------------------
-
void wxPanel::InitDialog()
{
wxInitDialogEvent event(GetId());
GetEventHandler()->ProcessEvent(event);
}
+// ----------------------------------------------------------------------------
+// event handlers
+// ----------------------------------------------------------------------------
+
// Responds to colour changes, and passes event on to children.
void wxPanel::OnSysColourChanged(wxSysColourChangedEvent& event)
{
- SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
+ SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
Refresh();
// Propagate the event to the non-top-level children
wxWindow::OnSysColourChanged(event);
}
-void wxPanel::OnSize(wxSizeEvent& WXUNUSED(event))
+void wxPanel::OnSize(wxSizeEvent& event)
{
#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
Layout();
#endif // wxUSE_CONSTRAINTS
+
+ //
+ // Need to properly move child windows under OS/2
+ //
+#if defined(__WXPM__)
+ else
+ {
+ PSWP pWinSwp = GetSwp();
+
+ if (pWinSwp->cx == 0 && pWinSwp->cy == 0 && pWinSwp->fl == 0)
+ //
+ // Uninitialized
+ //
+ ::WinQueryWindowPos(GetHWND(), pWinSwp);
+ else
+ {
+ SWP vSwp;
+ int nYDiff;
+
+ ::WinQueryWindowPos(GetHWND(), &vSwp);
+ nYDiff = pWinSwp->cy - vSwp.cy;
+ MoveChildren(nYDiff);
+ pWinSwp->cx = vSwp.cx;
+ pWinSwp->cy = vSwp.cy;
+ }
+ }
+#endif
+ event.Skip();
}