]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/laywin.cpp
Improve drawing of the tree item buttons in the generic renderer.
[wxWidgets.git] / src / generic / laywin.cpp
index 3a9b07640395528fbddc026010f696b7d5f8515a..5cb58f3f6afd2d5e726973c6f66f3fc2231d83c0 100644 (file)
@@ -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"
 
 
 #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;