From 17d5bdf9e953a7340b8985ffcd6535b767a8b09e Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 15 Dec 2001 13:49:05 +0000 Subject: [PATCH] Aqua gets Aqua tree buttons automatically now. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/treebase.h | 1 + src/generic/treectlg.cpp | 64 +++++++++++++++++++++++++++++----------- 2 files changed, 48 insertions(+), 17 deletions(-) diff --git a/include/wx/treebase.h b/include/wx/treebase.h index 9ebd385512..fcc8c30811 100644 --- a/include/wx/treebase.h +++ b/include/wx/treebase.h @@ -120,6 +120,7 @@ enum wxTreeItemIcon #define wxTR_NO_LINES 0x0004 // don't generate level connectors #define wxTR_LINES_AT_ROOT 0x0008 // connect top-level nodes #define wxTR_MAC_BUTTONS wxTR_TWIST_BUTTONS // backward compatibility +#define wxTR_AQUA_BUTTONS 0x0010 // used internally #define wxTR_SINGLE 0x0000 // for convenience #define wxTR_MULTIPLE 0x0020 // can select multiple items diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index 0ebc9aa60b..2a2e7c814d 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -675,8 +675,11 @@ bool wxGenericTreeCtrl::Create(wxWindow *parent, style |= wxTR_NO_LINES; if (major < 10) style |= wxTR_ROW_LINES; + if (major >= 10) + style |= wxTR_AQUA_BUTTONS; #endif + wxScrolledWindow::Create( parent, id, pos, size, style|wxHSCROLL|wxVSCROLL, name ); @@ -1989,28 +1992,55 @@ void wxGenericTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level else if (HasFlag(wxTR_TWIST_BUTTONS)) { // draw the twisty button here - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*m_hilightBrush); - + wxPoint button[3]; - - if (item->IsExpanded()) + dc.SetBrush(*m_hilightBrush); + + if (HasFlag(wxTR_AQUA_BUTTONS)) { - button[0].x = x-5; - button[0].y = y_mid-2; - button[1].x = x+5; - button[1].y = y_mid-2; - button[2].x = x; - button[2].y = y_mid+3; + dc.SetPen(*wxTRANSPARENT_PEN); + + if (item->IsExpanded()) + { + button[0].x = x-6; + button[0].y = y_mid-2; + button[1].x = x+6; + button[1].y = y_mid-2; + button[2].x = x; + button[2].y = y_mid+7; + } + else + { + button[0].y = y_mid-6; + button[0].x = x-2; + button[1].y = y_mid+6; + button[1].x = x-2; + button[2].y = y_mid; + button[2].x = x+7; + } } else { - button[0].y = y_mid-5; - button[0].x = x-2; - button[1].y = y_mid+5; - button[1].x = x-2; - button[2].y = y_mid; - button[2].x = x+3; + dc.SetPen(*wxBLACK_PEN); + + if (item->IsExpanded()) + { + button[0].x = x-5; + button[0].y = y_mid-2; + button[1].x = x+5; + button[1].y = y_mid-2; + button[2].x = x; + button[2].y = y_mid+3; + } + else + { + button[0].y = y_mid-5; + button[0].x = x-2; + button[1].y = y_mid+5; + button[1].x = x-2; + button[2].y = y_mid; + button[2].x = x+3; + } } dc.DrawPolygon(3, button); -- 2.47.2