// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
IMPLEMENT_DYNAMIC_CLASS(wxQueryLayoutInfoEvent, wxEvent)
IMPLEMENT_DYNAMIC_CLASS(wxCalculateLayoutEvent, wxEvent)
+#if wxUSE_SASH
IMPLEMENT_CLASS(wxSashLayoutWindow, wxSashWindow)
BEGIN_EVENT_TABLE(wxSashLayoutWindow, wxSashWindow)
EVT_QUERY_LAYOUT_INFO(wxSashLayoutWindow::OnQueryLayoutInfo)
END_EVENT_TABLE()
-wxSashLayoutWindow::wxSashLayoutWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos,
- const wxSize& size, long style, const wxString& name):
- wxSashWindow(parent, id, pos, size, style, name)
+bool wxSashLayoutWindow::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos,
+ const wxSize& size, long style, const wxString& name)
+{
+ return wxSashWindow::Create(parent, id, pos, size, style, name);
+}
+
+void wxSashLayoutWindow::Init()
{
m_orientation = wxLAYOUT_HORIZONTAL;
m_alignment = wxLAYOUT_TOP;
}
case wxLAYOUT_NONE:
{
- break;
+ break;
}
}
{
// If not in query mode, resize the window.
// TODO: add wxRect& form to wxWindow::SetSize
+ wxSize sz = GetSize();
+ wxPoint pos = GetPosition();
SetSize(thisRect.x, thisRect.y, thisRect.width, thisRect.height);
+
+ // Make sure the sash is erased when the window is resized
+ if ((pos.x != thisRect.x || pos.y != thisRect.y || sz.x != thisRect.width || sz.y != thisRect.height) &&
+ (GetSashVisible(wxSASH_TOP) || GetSashVisible(wxSASH_RIGHT) || GetSashVisible(wxSASH_BOTTOM) || GetSashVisible(wxSASH_LEFT)))
+ Refresh(TRUE);
+
}
event.SetRect(clientSize);
}
+#endif // wxUSE_SASH
/*
* wxLayoutAlgorithm
// reduce the available space to allow space for any active edges.
int leftMargin = 0, rightMargin = 0, topMargin = 0, bottomMargin = 0;
+#if wxUSE_SASH
if (parent->IsKindOf(CLASSINFO(wxSashWindow)))
{
wxSashWindow* sashWindow = (wxSashWindow*) parent;
if (sashWindow->GetSashVisible(wxSASH_BOTTOM))
bottomMargin += sashWindow->GetDefaultBorderSize();
}
+#endif // wxUSE_SASH
int cw, ch;
parent->GetClientSize(& cw, & ch);
{
wxWindow* win = (wxWindow*) node->Data();
- event.SetId(win->GetId());
- event.SetEventObject(win);
- event.SetFlags(0); // ??
+ if (win != mainWindow)
+ {
+ event.SetId(win->GetId());
+ event.SetEventObject(win);
+ event.SetFlags(0); // ??
- win->GetEventHandler()->ProcessEvent(event);
+ win->GetEventHandler()->ProcessEvent(event);
+ }
node = node->Next();
}