// PropTreeInfo.cpp : implementation file // // Copyright (C) 1998-2001 Scott Ramsay // sramsay@gonavi.com // http://www.gonavi.com // // This material is provided "as is", with absolutely no warranty expressed // or implied. Any use is at your own risk. // // Permission to use or copy this software for any purpose is hereby granted // without fee, provided the above notices are retained on all copies. // Permission to modify the code and to distribute modified code is granted, // provided the above notices are retained, and a notice that the code was // modified is included with the above copyright notice. // // If you use this code, drop me an email. I'd like to know if you find the code // useful. //#include "stdafx.h" #include "../../../idlib/precompiled.h" #pragma hdrstop #include "PropTree.h" #include "../../../sys/win32/rc/proptree_Resource.h" #include "PropTreeInfo.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPropTreeInfo CPropTreeInfo::CPropTreeInfo() : m_pProp(NULL) { } CPropTreeInfo::~CPropTreeInfo() { } BEGIN_MESSAGE_MAP(CPropTreeInfo, CStatic) //{{AFX_MSG_MAP(CPropTreeInfo) ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPropTreeInfo message handlers void CPropTreeInfo::SetPropOwner(CPropTree* pProp) { m_pProp = pProp; } void CPropTreeInfo::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); dc.SelectObject(GetSysColorBrush(COLOR_BTNFACE)); dc.PatBlt(rc.left, rc.top, rc.Width(), rc.Height(), PATCOPY); dc.DrawEdge(&rc, BDR_SUNKENOUTER, BF_RECT); rc.DeflateRect(4, 4); ASSERT(m_pProp!=NULL); CPropTreeItem* pItem = m_pProp->GetFocusedItem(); if (!m_pProp->IsWindowEnabled()) dc.SetTextColor(GetSysColor(COLOR_GRAYTEXT)); else dc.SetTextColor(GetSysColor(COLOR_BTNTEXT)); dc.SetBkMode(TRANSPARENT); dc.SelectObject(m_pProp->GetBoldFont()); CString txt; if (!pItem) txt.LoadString(IDS_NOITEMSEL); else txt = pItem->GetLabelText(); CRect ir; ir = rc; // draw label dc.DrawText(txt, &ir, DT_SINGLELINE|DT_CALCRECT); dc.DrawText(txt, &ir, DT_SINGLELINE); ir.top = ir.bottom; ir.bottom = rc.bottom; ir.right = rc.right; if (pItem) txt = pItem->GetInfoText(); else txt.LoadString(IDS_SELFORINFO); dc.SelectObject(m_pProp->GetNormalFont()); dc.DrawText(txt, &ir, DT_WORDBREAK); }