]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/treectlg.cpp
added ScrollLines/Pages
[wxWidgets.git] / src / generic / treectlg.cpp
index 468dd926e63766b40c9d975de3b05d6ed6fe3b49..2650eac81d69d983d4f94be744644f1b4768e1b9 100644 (file)
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
+#if wxUSE_TREECTRL
+
 #include "wx/generic/treectlg.h"
 #include "wx/imaglist.h"
 #include "wx/settings.h"
@@ -1483,6 +1485,17 @@ void wxGenericTreeCtrl::SelectItem(const wxTreeItemId& itemId,
     if ( GetEventHandler()->ProcessEvent( event ) && !event.IsAllowed() )
       return;
 
+    wxTreeItemId parent = GetParent( itemId );
+    while (parent.IsOk())
+    {
+        if (!IsExpanded(parent))
+            Expand( parent );
+            
+        parent = GetParent( parent );
+    }
+    
+    EnsureVisible( itemId );
+    
     // ctrl press
     if (unselect_others)
     {
@@ -1582,7 +1595,7 @@ void wxGenericTreeCtrl::ScrollTo(const wxTreeItemId &item)
 
     int start_x = 0;
     int start_y = 0;
-    ViewStart( &start_x, &start_y );
+    GetViewStart( &start_x, &start_y );
     start_y *= PIXELS_PER_UNIT;
 
     int client_h = 0;
@@ -1908,8 +1921,13 @@ void wxGenericTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level
         {
             colText = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_HIGHLIGHTTEXT );
 
+#ifdef __WXMAC__
+               // no rect outline, we already have the background color
+            pen = wxTRANSPARENT_PEN;
+#else
             if ( m_hasFocus )
                pen = wxBLACK_PEN;
+#endif
 
         }
         else
@@ -2741,3 +2759,4 @@ void wxGenericTreeCtrl::RefreshLine( wxGenericTreeItem *item )
     Refresh( TRUE, &rect );
 }
 
+#endif // wxUSE_TREECTRL