mirror of
https://github.com/dhewm/dhewm3.git
synced 2024-12-15 15:20:56 +00:00
104 lines
2.6 KiB
C++
104 lines
2.6 KiB
C++
|
// PropTreeItemButton.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 "PropTreeItemButton.h"
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
#define BUTTON_SIZE 17
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CPropTreeItemButton
|
||
|
|
||
|
CPropTreeItemButton::CPropTreeItemButton() {
|
||
|
mouseDown = false;
|
||
|
}
|
||
|
|
||
|
CPropTreeItemButton::~CPropTreeItemButton() {
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CPropTreeItemButton message handlers
|
||
|
|
||
|
LONG CPropTreeItemButton::DrawItem( CDC* pDC, const RECT& rc, LONG x, LONG y )
|
||
|
{
|
||
|
CSize textSize;
|
||
|
CRect textRect;
|
||
|
LONG nTotal = 0;
|
||
|
|
||
|
nTotal = CPropTreeItem::DrawItem( pDC, rc, x, y );
|
||
|
|
||
|
textSize = pDC->GetOutputTextExtent( buttonText );
|
||
|
|
||
|
buttonRect.left = m_rc.right - ( textSize.cx + 12 + 4);
|
||
|
buttonRect.top = m_rc.top + ((m_rc.bottom - m_rc.top)/2)-BUTTON_SIZE/2;
|
||
|
buttonRect.right = buttonRect.left + textSize.cx + 12;
|
||
|
buttonRect.bottom = buttonRect.top + BUTTON_SIZE;
|
||
|
|
||
|
UINT buttonStyle;
|
||
|
|
||
|
if ( (m_dwState & TreeItemChecked) ) {
|
||
|
buttonStyle = DFCS_BUTTONPUSH | DFCS_PUSHED;
|
||
|
} else {
|
||
|
buttonStyle = DFCS_BUTTONPUSH;
|
||
|
}
|
||
|
pDC->DrawFrameControl(&buttonRect, DFC_BUTTON, buttonStyle );
|
||
|
|
||
|
textRect = buttonRect;
|
||
|
textRect.left += 4;
|
||
|
textRect.right -= 8;
|
||
|
pDC->DrawText( buttonText, textRect, DT_SINGLELINE|DT_VCENTER );
|
||
|
|
||
|
//Adjust hit test rect to acount for window scrolling
|
||
|
hitTestRect = buttonRect;
|
||
|
hitTestRect.OffsetRect(0, m_pProp->GetOrigin().y);
|
||
|
|
||
|
return nTotal;
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemButton::DrawAttribute(CDC* pDC, const RECT& rc) {
|
||
|
}
|
||
|
|
||
|
|
||
|
LPARAM CPropTreeItemButton::GetItemValue() {
|
||
|
return (LPARAM)0;
|
||
|
}
|
||
|
|
||
|
|
||
|
void CPropTreeItemButton::SetItemValue(LPARAM lParam) {
|
||
|
}
|
||
|
|
||
|
|
||
|
BOOL CPropTreeItemButton::HitButton( const POINT& pt ) {
|
||
|
return hitTestRect.PtInRect( pt );
|
||
|
}
|
||
|
|
||
|
void CPropTreeItemButton::SetButtonText( LPCSTR text ) {
|
||
|
buttonText = text;
|
||
|
}
|