MCPcopy Create free account
hub / github.com/CobaltFusion/DebugViewPP / DrawTreeItem

Function DrawTreeItem

Libraries/PropertyGrid/PropertyTree.h:862–911  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

860 // Overridables
861
862 void DrawTreeItem(CDCHandle dc, HTREEITEM hItem, UINT iState)
863 {
864 IProperty* prop = reinterpret_cast<IProperty*>(TBase::GetItemData(hItem));
865 ATLASSERT(prop);
866
867 // Get paint rectangle
868 RECT rcItem = { 0 };
869 _GetInplaceRect(hItem, &rcItem);
870
871 // Setup drawinfo
872 PROPERTYDRAWINFO di = m_di;
873 di.hDC = dc;
874 di.rcItem = rcItem;
875 di.state = 0;
876 if( !prop->IsEnabled() ) di.state |= ODS_DISABLED;
877 if( hItem == m_iInplaceIndex ) di.state |= ODS_COMBOBOXEDIT;
878
879 // A disabled TreeView control is painted grey in Windows2000
880 if( (GetStyle() & WS_DISABLED) != 0 ) {
881 di.clrText = di.clrDisabled;
882 di.clrBack = ::GetSysColor(COLOR_BTNFACE);
883 }
884
885 // Erase background
886 dc.FillSolidRect(&rcItem, di.clrBack);
887
888 // Draw border
889 bool bDrawBorder = false;
890 switch( prop->GetKind() ) {
891 case PROPKIND_SIMPLE:
892 case PROPKIND_CHECK:
893 bDrawBorder = false;
894 break;
895 default:
896 bDrawBorder = ((iState & CDIS_SELECTED) != 0);
897 break;
898 }
899 if( bDrawBorder ) {
900 RECT rcBorder = rcItem;
901 ::OffsetRect(&rcBorder, -1, 0);
902 CBrush brBorder;
903 brBorder.CreateSolidBrush(di.clrBorder);
904 dc.FrameRect(&rcBorder, brBorder);
905 }
906
907 // Paint value
908 HFONT hOldFont = dc.SelectFont(di.TextFont);
909 prop->DrawValue(di);
910 dc.SelectFont(hOldFont);
911 }
912};
913
914class CPropertyTreeCtrl : public CPropertyTreeImpl<CPropertyTreeCtrl>

Callers

nothing calls this directly

Calls 5

_GetInplaceRectFunction · 0.85
IsEnabledMethod · 0.80
GetItemDataFunction · 0.70
GetKindMethod · 0.45
DrawValueMethod · 0.45

Tested by

no test coverage detected