X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ca65c0440a7163e4e37e48b1c4329709d722db47..6f026b5b63fe7ccb025e84509886f74772b9df13:/src/generic/laywin.cpp diff --git a/src/generic/laywin.cpp b/src/generic/laywin.cpp index 3a9b076403..5cb58f3f6a 100644 --- a/src/generic/laywin.cpp +++ b/src/generic/laywin.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: laywin.cpp +// Name: src/generic/laywin.cpp // Purpose: Implements a simple layout algorithm, plus // wxSashLayoutWindow which is an example of a window with // layout-awareness (via event handlers). This is suited to @@ -7,15 +7,10 @@ // Author: Julian Smart // Modified by: // Created: 04/01/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "laywin.h" -#endif - // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -25,20 +20,25 @@ #ifndef WX_PRECOMP #include "wx/frame.h" - #include "wx/mdi.h" #endif #include "wx/laywin.h" +#include "wx/mdi.h" + IMPLEMENT_DYNAMIC_CLASS(wxQueryLayoutInfoEvent, wxEvent) IMPLEMENT_DYNAMIC_CLASS(wxCalculateLayoutEvent, wxEvent) -DEFINE_EVENT_TYPE(wxEVT_QUERY_LAYOUT_INFO) -DEFINE_EVENT_TYPE(wxEVT_CALCULATE_LAYOUT) +wxDEFINE_EVENT( wxEVT_QUERY_LAYOUT_INFO, wxQueryLayoutInfoEvent ); +wxDEFINE_EVENT( wxEVT_CALCULATE_LAYOUT, wxCalculateLayoutEvent ); + + +// ---------------------------------------------------------------------------- +// wxSashLayoutWindow +// ---------------------------------------------------------------------------- #if wxUSE_SASH IMPLEMENT_CLASS(wxSashLayoutWindow, wxSashWindow) - BEGIN_EVENT_TABLE(wxSashLayoutWindow, wxSashWindow) EVT_CALCULATE_LAYOUT(wxSashLayoutWindow::OnCalculateLayout) EVT_QUERY_LAYOUT_INFO(wxSashLayoutWindow::OnQueryLayoutInfo) @@ -54,6 +54,9 @@ void wxSashLayoutWindow::Init() { m_orientation = wxLAYOUT_HORIZONTAL; m_alignment = wxLAYOUT_TOP; +#ifdef __WXMAC__ + MacSetClipChildren( true ) ; +#endif } // This is the function that wxLayoutAlgorithm calls to ascertain the window @@ -160,12 +163,12 @@ void wxSashLayoutWindow::OnCalculateLayout(wxCalculateLayoutEvent& event) { // If not in query mode, resize the window. // TODO: add wxRect& form to wxWindow::SetSize - wxSize sz = GetSize(); + wxSize sz2 = 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) && + if ((pos.x != thisRect.x || pos.y != thisRect.y || sz2.x != thisRect.width || sz2.y != thisRect.height) && (GetSashVisible(wxSASH_TOP) || GetSashVisible(wxSASH_RIGHT) || GetSashVisible(wxSASH_BOTTOM) || GetSashVisible(wxSASH_LEFT))) Refresh(true); @@ -175,9 +178,10 @@ void wxSashLayoutWindow::OnCalculateLayout(wxCalculateLayoutEvent& event) } #endif // wxUSE_SASH -/* - * wxLayoutAlgorithm - */ + +// ---------------------------------------------------------------------------- +// wxLayoutAlgorithm +// ---------------------------------------------------------------------------- #if wxUSE_MDI_ARCHITECTURE @@ -233,7 +237,7 @@ bool wxLayoutAlgorithm::LayoutWindow(wxWindow* parent, wxWindow* mainWindow) int leftMargin = 0, rightMargin = 0, topMargin = 0, bottomMargin = 0; #if wxUSE_SASH - if (parent->IsKindOf(CLASSINFO(wxSashWindow))) + if (wxDynamicCast(parent, wxSashWindow)) { wxSashWindow* sashWindow = (wxSashWindow*) parent;