//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #include #include "choreowidget.h" #include "choreoview.h" // Static elements CChoreoScene *CChoreoWidget::m_pScene = NULL; CChoreoView *CChoreoWidget::m_pView = NULL; static int widgets = 0; //----------------------------------------------------------------------------- // CChoreoWidget new/delete // All fields in the object are all initialized to 0. //----------------------------------------------------------------------------- void *CChoreoWidget::operator new( size_t stAllocateBlock ) { widgets++; // call into engine to get memory Assert( stAllocateBlock != 0 ); return calloc( 1, stAllocateBlock ); }; //----------------------------------------------------------------------------- // Purpose: // Input : *pMem - //----------------------------------------------------------------------------- void CChoreoWidget::operator delete( void *pMem ) { widgets--; // set the memory to a known value int size = _msize( pMem ); memset( pMem, 0xfe, size ); // get the engine to free the memory free( pMem ); } //----------------------------------------------------------------------------- // Purpose: Construct widget, all widgets clip their children and brethren // Input : *parent - //----------------------------------------------------------------------------- CChoreoWidget::CChoreoWidget( CChoreoWidget *parent ) { m_bSelected = false; m_pParent = parent; m_bVisible = true; m_rcBounds.left = m_rcBounds.right = m_rcBounds.top = m_rcBounds.bottom = 0; } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- CChoreoWidget::~CChoreoWidget( void ) { } //----------------------------------------------------------------------------- // Purpose: Default implementation, just return base row height //----------------------------------------------------------------------------- int CChoreoWidget::GetItemHeight( void ) { return m_pView->GetRowHeight(); } //----------------------------------------------------------------------------- // Purpose: // Input : mx - // my - //----------------------------------------------------------------------------- void CChoreoWidget::LocalToScreen( int& mx, int& my ) { /* HWND wnd = (HWND)getHandle(); if ( !wnd ) return; POINT pt; pt.x = (short)mx; pt.y = (short)my; ClientToScreen( wnd, &pt ); mx = pt.x; my = pt.y; */ } //----------------------------------------------------------------------------- // Purpose: // Output : Returns true on success, false on failure. //----------------------------------------------------------------------------- bool CChoreoWidget::IsSelected( void ) { return m_bSelected; } //----------------------------------------------------------------------------- // Purpose: // Input : selected - //----------------------------------------------------------------------------- void CChoreoWidget::SetSelected( bool selected ) { m_bSelected = selected; } void CChoreoWidget::setBounds( int x, int y, int w, int h ) { m_rcBounds.left = x; m_rcBounds.right = x + w; m_rcBounds.top = y; m_rcBounds.bottom = y + h; } int CChoreoWidget::x( void ) { return m_rcBounds.left; } int CChoreoWidget::y( void ) { return m_rcBounds.top; } int CChoreoWidget::w( void ) { return m_rcBounds.right - m_rcBounds.left; } int CChoreoWidget::h( void ) { return m_rcBounds.bottom - m_rcBounds.top; } CChoreoWidget *CChoreoWidget::getParent( void ) { return m_pParent; } void CChoreoWidget::setVisible( bool visible ) { m_bVisible = visible; } bool CChoreoWidget::getVisible( void ) { return m_bVisible; } void CChoreoWidget::getBounds( RECT& bounds ) { bounds = m_rcBounds; } RECT &CChoreoWidget::getBounds( void ) { return m_rcBounds; }