X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd5a32cc2d518f6b72ebb9173bf56f241e96549f..b916f809336755620b010293637b12763f01455d:/src/generic/treectlg.cpp diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index 71f27e271d..2a2e7c814d 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -665,6 +665,21 @@ bool wxGenericTreeCtrl::Create(wxWindow *parent, const wxValidator &validator, const wxString& name ) { +#ifdef __WXMAC__ + int major,minor; + wxGetOsVersion( &major, &minor ); + + if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS; + if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS; + style &= ~wxTR_LINES_AT_ROOT; + 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 ); @@ -1977,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);