From: Vadim Zeitlin Date: Sat, 15 Dec 2001 22:20:54 +0000 (+0000) Subject: fixed flicker in wxTreeCtrl::SetItemXXX() X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d00407b2c68548399d9300cf2c9e78aeed81434d fixed flicker in wxTreeCtrl::SetItemXXX() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 609040bc9d..988bb291ed 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -60,6 +60,13 @@ Unix ports: and the compiler flags for C++ files only, CFLAGS should still be used to compile pure C files. +2.3.3 +----- + +wxMSW: + +- fixed flicker in wxTreeCtrl::SetItemXXX() + 2.3.2 ----- diff --git a/include/wx/msw/treectrl.h b/include/wx/msw/treectrl.h index f995392953..ef9f23cff1 100644 --- a/include/wx/msw/treectrl.h +++ b/include/wx/msw/treectrl.h @@ -400,6 +400,9 @@ protected: // SetImageList helper void SetAnyImageList(wxImageList *imageList, int which); + // refresh a single item + void RefreshItem(const wxTreeItemId& item); + wxTextCtrl *m_textCtrl; // used while editing the item label wxImageList *m_imageListNormal, // images for tree elements *m_imageListState; // special images for app defined states diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index e34ecfac62..69ff37efc2 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -1032,6 +1032,15 @@ void wxTreeCtrl::SetItemDropHighlight(const wxTreeItemId& item, bool highlight) DoSetItem(&tvItem); } +void wxTreeCtrl::RefreshItem(const wxTreeItemId& item) +{ + wxRect rect; + if ( GetBoundingRect(item, rect) ) + { + RefreshRect(rect); + } +} + void wxTreeCtrl::SetItemTextColour(const wxTreeItemId& item, const wxColour& col) { @@ -1046,7 +1055,8 @@ void wxTreeCtrl::SetItemTextColour(const wxTreeItemId& item, } attr->SetTextColour(col); - Refresh(); + + RefreshItem(item); } void wxTreeCtrl::SetItemBackgroundColour(const wxTreeItemId& item, @@ -1063,7 +1073,8 @@ void wxTreeCtrl::SetItemBackgroundColour(const wxTreeItemId& item, } attr->SetBackgroundColour(col); - Refresh(); + + RefreshItem(item); } void wxTreeCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font) @@ -1079,7 +1090,8 @@ void wxTreeCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font) } attr->SetFont(font); - Refresh(); + + RefreshItem(item); } // ---------------------------------------------------------------------------- @@ -1097,7 +1109,6 @@ bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const // FALSE means get item rect for the whole item, not only text return SendMessage(GetHwnd(), TVM_GETITEMRECT, FALSE, (LPARAM)&rect) != 0; - } bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const