You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
#ifndef CHOREOWIDGET_H
|
||
|
#define CHOREOWIDGET_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <mxtk/mx.h>
|
||
|
|
||
|
class CChoreoView;
|
||
|
class CChoreoScene;
|
||
|
class CChoreoWidgetDrawHelper;
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose: CChoreoWidgets are mxWindows that we show in the Choreography view area
|
||
|
// so that we can manipulate them with the mouse. The widgets follow the scene
|
||
|
// hierarchy of actors/channels/events, without having to hang off of the underlying
|
||
|
// data. They are just for the UI.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CChoreoWidget
|
||
|
{
|
||
|
public:
|
||
|
// memory handling, uses calloc so members are zero'd out on instantiation
|
||
|
void *operator new( size_t stAllocateBlock );
|
||
|
void operator delete( void *pMem );
|
||
|
|
||
|
CChoreoWidget( CChoreoWidget *parent );
|
||
|
virtual ~CChoreoWidget( void );
|
||
|
|
||
|
// All widgets implement these pure virtuals
|
||
|
|
||
|
// Called to force a widget to create its children based on the scene data
|
||
|
virtual void Create( void ) = 0;
|
||
|
// Force widget to redo layout of self and any children
|
||
|
virtual void Layout( RECT& rc ) = 0;
|
||
|
// Redraw the widget
|
||
|
virtual void redraw( CChoreoWidgetDrawHelper& drawHelper ) = 0;
|
||
|
// Don't overdraw background
|
||
|
virtual bool PaintBackground( void ) { return false; };
|
||
|
// Determine height to reserver for widget ( Actors can be expanded or collapsed, e.g. )
|
||
|
virtual int GetItemHeight( void );
|
||
|
|
||
|
virtual void LocalToScreen( int& mx, int& my );
|
||
|
|
||
|
virtual bool IsSelected( void );
|
||
|
virtual void SetSelected( bool selected );
|
||
|
|
||
|
virtual void setBounds( int x, int y, int w, int h );
|
||
|
virtual int x( void );
|
||
|
virtual int y( void );
|
||
|
virtual int w( void );
|
||
|
virtual int h( void );
|
||
|
virtual CChoreoWidget *getParent( void );
|
||
|
virtual void setVisible( bool visible );
|
||
|
virtual bool getVisible( void );
|
||
|
|
||
|
virtual void getBounds( RECT& bounds );
|
||
|
virtual RECT &getBounds( void );
|
||
|
|
||
|
// Globally accessible scene and view pointers
|
||
|
static CChoreoScene *m_pScene;
|
||
|
static CChoreoView *m_pView;
|
||
|
|
||
|
private:
|
||
|
bool m_bSelected;
|
||
|
bool m_bVisible;
|
||
|
|
||
|
RECT m_rcBounds;
|
||
|
|
||
|
protected:
|
||
|
CChoreoWidget *m_pParent;
|
||
|
};
|
||
|
|
||
|
#endif // CHOREOWIDGET_H
|