summaryrefslogtreecommitdiff
path: root/public/dme_controls/AttributeTextEntry.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/dme_controls/AttributeTextEntry.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'public/dme_controls/AttributeTextEntry.h')
-rw-r--r--public/dme_controls/AttributeTextEntry.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/public/dme_controls/AttributeTextEntry.h b/public/dme_controls/AttributeTextEntry.h
new file mode 100644
index 0000000..7a3454b
--- /dev/null
+++ b/public/dme_controls/AttributeTextEntry.h
@@ -0,0 +1,89 @@
+//========= 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