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.
103 lines
2.5 KiB
103 lines
2.5 KiB
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef HITAREA_H
|
|
#define HITAREA_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "gamegraphic.h"
|
|
#include "dmxloader/dmxelement.h"
|
|
#include "tier1/utlvector.h"
|
|
#include "vstdlib/ieventsystem.h"
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CHitArea : public CGameGraphic
|
|
{
|
|
DECLARE_DMXELEMENT_UNPACK()
|
|
|
|
public:
|
|
|
|
CHitArea( const char *pName );
|
|
virtual ~CHitArea();
|
|
|
|
bool Unserialize( CDmxElement *pGraphic );
|
|
|
|
// Update geometry and execute scripting.
|
|
virtual void UpdateGeometry();
|
|
virtual void UpdateRenderData( color32 parentColor, CUtlVector< RenderGeometryList_t > &renderGeometryLists, int firstListIndex );
|
|
|
|
virtual bool HitTest( int x, int y );
|
|
|
|
// Cursor events
|
|
// AUTO_GAINMOUSEFOCUS
|
|
void OnCursorEnter();
|
|
// AUTO_LOSEMOUSEFOCUS
|
|
void OnCursorExit();
|
|
void OnCursorMove( const int &cursorX, const int &cursorY );
|
|
|
|
// Mouse events
|
|
// AUTO_MOUSELEFTDOWN
|
|
// AUTO_MOUSERIGHTDOWN
|
|
// AUTO_MOUSEMIDDLEDOWN
|
|
void OnMouseDown( const ButtonCode_t &code );
|
|
// AUTO_MOUSELEFTUP
|
|
// AUTO_MOUSERIGHTUP
|
|
// AUTO_MOUSEMIDDLEUP
|
|
void OnMouseUp( const ButtonCode_t &code, bool bFireScripts = true );
|
|
// AUTO_MOUSEDOUBLECLICK
|
|
void OnMouseDoubleClick( const ButtonCode_t &code );
|
|
void OnMouseWheel( const int &delta ){}
|
|
|
|
// Keyboard events
|
|
// AUTO_KEYDOWN
|
|
void OnKeyDown( const ButtonCode_t &code );
|
|
// AUTO_KEYUP
|
|
void OnKeyUp( const ButtonCode_t &code );
|
|
void OnKeyCodeTyped( const ButtonCode_t &code );
|
|
void OnKeyTyped( const wchar_t &unichar );
|
|
|
|
// AUTO_GAINKEYFOCUS
|
|
void OnGainKeyFocus();
|
|
// AUTO_LOSEKEYFOCUS
|
|
void OnLoseKeyFocus();
|
|
|
|
// Calls to scripting.
|
|
void OnDragStartCallScriptEvent( const int &cursorX, const int &cursorY );
|
|
void OnDragCallScriptEvent( const int &cursorX, const int &cursorY );
|
|
void OnDragStopCallScriptEvent( const int &cursorX, const int &cursorY );
|
|
|
|
virtual void SetVisible( bool bVisible );
|
|
|
|
virtual bool IsHitArea() const { return true; }
|
|
|
|
virtual KeyValues *HandleScriptCommand( KeyValues *args );
|
|
|
|
private:
|
|
CHitArea();
|
|
|
|
CUtlVector< Vector2D > m_ScreenPositions;
|
|
|
|
bool m_bDragEnabled;
|
|
bool m_bCanStartDragging;
|
|
bool m_IsDragging;
|
|
|
|
int m_DragStartCursorPos[2];
|
|
int m_DragCurrentCursorPos[2];
|
|
|
|
CUtlString m_OnMouseLeftClickedScriptCommand;
|
|
|
|
};
|
|
|
|
|
|
#endif // HITAREA_H
|