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.
89 lines
2.3 KiB
89 lines
2.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//=============================================================================//
|
|
|
|
#ifndef ATTRIBUTETEXTENTRY_H
|
|
#define ATTRIBUTETEXTENTRY_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "vgui_controls/TextEntry.h"
|
|
#include "tier1/utlvector.h"
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward declarations
|
|
//-----------------------------------------------------------------------------
|
|
class CDmElement;
|
|
class CAttributeTextPanel;
|
|
class KeyValues;
|
|
|
|
namespace vgui
|
|
{
|
|
class IScheme;
|
|
class Label;
|
|
class Menu;
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// CAttributeTextEntry
|
|
//-----------------------------------------------------------------------------
|
|
class CAttributeTextEntry : public vgui::TextEntry
|
|
{
|
|
DECLARE_CLASS_SIMPLE( CAttributeTextEntry, vgui::TextEntry );
|
|
|
|
public:
|
|
CAttributeTextEntry( Panel *parent, const char *panelName );
|
|
virtual bool GetSelectedRange(int& cx0,int& cx1)
|
|
{
|
|
return BaseClass::GetSelectedRange( cx0, cx1 );
|
|
}
|
|
|
|
protected:
|
|
CAttributeTextPanel *GetParentAttributePanel();
|
|
virtual void OnMouseWheeled( int delta );
|
|
|
|
// We'll only create an "undo" record if the values differ upon focus change
|
|
virtual void OnSetFocus();
|
|
virtual void OnKillFocus();
|
|
virtual void OnKeyCodeTyped( vgui::KeyCode code );
|
|
|
|
virtual void OnPanelDropped( CUtlVector< KeyValues * >& data );
|
|
virtual bool GetDropContextMenu( vgui::Menu *menu, CUtlVector< KeyValues * >& msglist );
|
|
virtual bool IsDroppable( CUtlVector< KeyValues * >& msglist );
|
|
|
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
|
|
|
|
MESSAGE_FUNC_PARAMS( OnTextChanged, "TextChanged", data );
|
|
|
|
private:
|
|
enum
|
|
{
|
|
MAX_TEXT_LENGTH = 1024
|
|
};
|
|
|
|
template<class T> void ApplyMouseWheel( T newValue, T originalValue );
|
|
void StoreInitialValue( bool bForce = false );
|
|
void WriteValueToAttribute();
|
|
void WriteInitialValueToAttribute();
|
|
|
|
bool m_bValueStored;
|
|
char m_szOriginalText[ MAX_TEXT_LENGTH ];
|
|
union
|
|
{
|
|
float m_flOriginalValue;
|
|
int m_nOriginalValue;
|
|
bool m_bOriginalValue;
|
|
};
|
|
};
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
#endif // ATTRIBUTETEXTENTRY_H
|