// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "panelg.h"
#endif
// wxWin macros
// ----------------------------------------------------------------------------
+#if wxUSE_EXTENDED_RTTI
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxPanel, wxWindow,"wx/panel.h")
+
+WX_BEGIN_PROPERTIES_TABLE(wxPanel)
+// style wxTAB_TRAVERSAL
+WX_END_PROPERTIES_TABLE()
+
+WX_BEGIN_HANDLERS_TABLE(wxPanel)
+WX_END_HANDLERS_TABLE()
+
+WX_CONSTRUCTOR_4( wxPanel , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size )
+
+#else
IMPLEMENT_DYNAMIC_CLASS(wxPanel, wxWindow)
+#endif
BEGIN_EVENT_TABLE(wxPanel, wxWindow)
EVT_SYS_COLOUR_CHANGED(wxPanel::OnSysColourChanged)
{
}
-// ----------------------------------------------------------------------------
-// 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();
+#if defined(__WXPM__)
+ else
+ {
+ // Need to properly move child windows under OS/2
+
+ 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
#endif // wxUSE_CONSTRAINTS
+
+ event.Skip();
}