]> git.saurik.com Git - wxWidgets.git/commitdiff
Moved line-drawing to splittree implementation.
authorJulian Smart <julian@anthemion.co.uk>
Mon, 3 Dec 2001 20:52:06 +0000 (20:52 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 3 Dec 2001 20:52:06 +0000 (20:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/include/wx/gizmos/splittree.h
contrib/samples/gizmos/splittree/tree.cpp
contrib/samples/gizmos/splittree/tree.h
contrib/src/gizmos/splittree.cpp

index 1b5f543796db20dfdfcf988d02d573cfc93be200..78ae37adbc8f53dce899894b7186ff332747a67b 100644 (file)
@@ -64,6 +64,7 @@ public:
        void OnSize(wxSizeEvent& event);
        void OnExpand(wxTreeEvent& event);
     void OnScroll(wxScrollWinEvent& event);
+       void OnPaint(wxPaintEvent& event);
 
 //// Overrides
     // Override this in case we're using the generic tree control.
index 2a776cc8c280250afdf797d7f25a7996313a44b4..a422ac2816e38dbd3a45e54e41c44c4fe1148f31 100644 (file)
@@ -169,8 +169,10 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     m_splitter = new wxThinSplitterWindow(m_scrolledWindow, idSPLITTER_WINDOW, wxDefaultPosition,
                wxDefaultSize, wxSP_3DBORDER | wxCLIP_CHILDREN /* | wxSP_LIVE_UPDATE */);
        m_splitter->SetSashSize(2);
-    m_tree = new TestTree(m_splitter, idTREE_CTRL, wxDefaultPosition,
-               wxDefaultSize, wxTR_HAS_BUTTONS | wxTR_NO_LINES | wxNO_BORDER );
+
+       /* Note the wxTR_ROW_LINES style: draws horizontal lines between items */
+    m_tree = new TestTree(m_splitter , idTREE_CTRL, wxDefaultPosition,
+               wxDefaultSize, wxTR_HAS_BUTTONS | wxTR_NO_LINES | wxNO_BORDER | wxTR_ROW_LINES );
     m_valueWindow = new TestValueWindow(m_splitter, idVALUE_WINDOW, wxDefaultPosition,
                wxDefaultSize, wxNO_BORDER);
     m_splitter->SplitVertically(m_tree, m_valueWindow);
@@ -230,7 +232,6 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 IMPLEMENT_CLASS(TestTree, wxRemotelyScrolledTreeCtrl)
 
 BEGIN_EVENT_TABLE(TestTree, wxRemotelyScrolledTreeCtrl)
-       EVT_PAINT(TestTree::OnPaint)
 END_EVENT_TABLE()
 
 TestTree::TestTree(wxWindow* parent, wxWindowID id, const wxPoint& pt,
@@ -273,39 +274,6 @@ TestTree::~TestTree()
        delete m_imageList;
 }
 
-void TestTree::OnPaint(wxPaintEvent& event)
-{
-       wxPaintDC dc(this);
-
-       wxTreeCtrl::OnPaint(event);
-
-    // Reset the device origin since it may have been set
-    dc.SetDeviceOrigin(0, 0);
-
-       wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID);
-       dc.SetPen(pen);
-       dc.SetBrush(* wxTRANSPARENT_BRUSH);
-
-    wxSize clientSize = GetClientSize();
-       wxRect itemRect;
-       int cy=0;
-       wxTreeItemId h, lastH;
-       for(h=GetFirstVisibleItem();h;h=GetNextVisible(h))
-       {
-               if (GetBoundingRect(h, itemRect))
-               {
-                       cy = itemRect.GetTop();
-                       dc.DrawLine(0, cy, clientSize.x, cy);
-                       lastH = h;
-               }
-       }
-       if (GetBoundingRect(lastH, itemRect))
-       {
-               cy = itemRect.GetBottom();
-               dc.DrawLine(0, cy, clientSize.x, cy);
-       }
-}
-
 /*
  * TestValueWindow
  */
index 382d580f66171ea90901c1fcccc8eb5217a5fe2a..c799a1309a364efc02058a05f25a539cc868758c 100644 (file)
@@ -45,6 +45,7 @@ protected:
     wxRemotelyScrolledTreeCtrl*        m_tree;
     wxThinSplitterWindow*   m_splitter;
        wxSplitterScrolledWindow* m_scrolledWindow;
+       //wxScrolledWindow* m_scrolledWindow;
     TestValueWindow*           m_valueWindow;
 
 private:
@@ -78,7 +79,6 @@ public:
         const wxSize& sz = wxDefaultSize, long style = wxTR_HAS_BUTTONS);
        ~TestTree();
 
-       void OnPaint(wxPaintEvent& event);
     DECLARE_EVENT_TABLE()
 protected:
        wxImageList*    m_imageList;
index 84f52d843161f6927ad848dfec5d5a5350800145..031a39cb8a4b65bd46627c09c38f1299d81c7697 100644 (file)
@@ -59,6 +59,7 @@ BEGIN_EVENT_TABLE(wxRemotelyScrolledTreeCtrl, wxGenericTreeCtrl)
 BEGIN_EVENT_TABLE(wxRemotelyScrolledTreeCtrl, wxTreeCtrl)
 #endif
        EVT_SIZE(wxRemotelyScrolledTreeCtrl::OnSize)
+       EVT_PAINT(wxRemotelyScrolledTreeCtrl::OnPaint)
        EVT_TREE_ITEM_EXPANDED(-1, wxRemotelyScrolledTreeCtrl::OnExpand)
        EVT_TREE_ITEM_COLLAPSED(-1, wxRemotelyScrolledTreeCtrl::OnExpand)
        EVT_SCROLLWIN(wxRemotelyScrolledTreeCtrl::OnScroll)
@@ -245,6 +246,43 @@ void wxRemotelyScrolledTreeCtrl::OnExpand(wxTreeEvent& event)
                m_companionWindow->GetEventHandler()->ProcessEvent(event);
 }
 
+void wxRemotelyScrolledTreeCtrl::OnPaint(wxPaintEvent& event)
+{
+       wxPaintDC dc(this);
+
+       wxTreeCtrl::OnPaint(event);
+
+    if ((GetWindowStyle() & wxTR_ROW_LINES) == 0)
+        return ;
+
+    // Reset the device origin since it may have been set
+    dc.SetDeviceOrigin(0, 0);
+
+       wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID);
+       dc.SetPen(pen);
+       dc.SetBrush(* wxTRANSPARENT_BRUSH);
+
+    wxSize clientSize = GetClientSize();
+       wxRect itemRect;
+       int cy=0;
+       wxTreeItemId h, lastH;
+       for(h=GetFirstVisibleItem();h;h=GetNextVisible(h))
+       {
+               if (GetBoundingRect(h, itemRect))
+               {
+                       cy = itemRect.GetTop();
+                       dc.DrawLine(0, cy, clientSize.x, cy);
+                       lastH = h;
+               }
+       }
+       if (GetBoundingRect(lastH, itemRect))
+       {
+               cy = itemRect.GetBottom();
+               dc.DrawLine(0, cy, clientSize.x, cy);
+       }
+}
+
+
 // Adjust the containing wxScrolledWindow's scrollbars appropriately
 void wxRemotelyScrolledTreeCtrl::AdjustRemoteScrollbars()
 {