diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /mp/src/public/vgui/IInputInternal.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/public/vgui/IInputInternal.h')
| -rw-r--r-- | mp/src/public/vgui/IInputInternal.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/mp/src/public/vgui/IInputInternal.h b/mp/src/public/vgui/IInputInternal.h new file mode 100644 index 00000000..2b86bd3b --- /dev/null +++ b/mp/src/public/vgui/IInputInternal.h @@ -0,0 +1,86 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef IINPUTINTERNAL_H
+#define IINPUTINTERNAL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/IInput.h>
+
+namespace vgui
+{
+
+enum MouseCodeState_t
+{
+ BUTTON_RELEASED = 0,
+ BUTTON_PRESSED,
+ BUTTON_DOUBLECLICKED,
+};
+
+typedef int HInputContext;
+
+#define DEFAULT_INPUT_CONTEXT ((vgui::HInputContext)~0)
+
+class IInputInternal : public IInput
+{
+public:
+ // processes input for a frame
+ virtual void RunFrame() = 0;
+
+ virtual void UpdateMouseFocus(int x, int y) = 0;
+
+ // called when a panel becomes invalid
+ virtual void PanelDeleted(VPANEL panel) = 0;
+
+ // inputs into vgui input handling
+ virtual bool InternalCursorMoved(int x,int y) = 0; //expects input in surface space
+ virtual bool InternalMousePressed(MouseCode code) = 0;
+ virtual bool InternalMouseDoublePressed(MouseCode code) = 0;
+ virtual bool InternalMouseReleased(MouseCode code) = 0;
+ virtual bool InternalMouseWheeled(int delta) = 0;
+ virtual bool InternalKeyCodePressed(KeyCode code) = 0;
+ virtual void InternalKeyCodeTyped(KeyCode code) = 0;
+ virtual void InternalKeyTyped(wchar_t unichar) = 0;
+ virtual bool InternalKeyCodeReleased(KeyCode code) = 0;
+
+ // Creates/ destroys "input" contexts, which contains information
+ // about which controls have mouse + key focus, for example.
+ virtual HInputContext CreateInputContext() = 0;
+ virtual void DestroyInputContext( HInputContext context ) = 0;
+
+ // Associates a particular panel with an input context
+ // Associating NULL is valid; it disconnects the panel from the context
+ virtual void AssociatePanelWithInputContext( HInputContext context, VPANEL pRoot ) = 0;
+
+ // Activates a particular input context, use DEFAULT_INPUT_CONTEXT
+ // to get the one normally used by VGUI
+ virtual void ActivateInputContext( HInputContext context ) = 0;
+
+ // This method is called to post a cursor message to the current input context
+ virtual void PostCursorMessage() = 0;
+
+ // Cursor position; this is the current position read from the input queue.
+ // We need to set it because client code may read this during Mouse Pressed
+ // events, etc.
+ virtual void UpdateCursorPosInternal( int x, int y ) = 0;
+
+ // Called to handle explicit calls to CursorSetPos after input processing is complete
+ virtual void HandleExplicitSetCursor( ) = 0;
+
+ // Updates the internal key/mouse state associated with the current input context without sending messages
+ virtual void SetKeyCodeState( KeyCode code, bool bPressed ) = 0;
+ virtual void SetMouseCodeState( MouseCode code, MouseCodeState_t state ) = 0;
+ virtual void UpdateButtonState( const InputEvent_t &event ) = 0;
+};
+
+} // namespace vgui
+
+#define VGUI_INPUTINTERNAL_INTERFACE_VERSION "VGUI_InputInternal001"
+
+#endif // IINPUTINTERNAL_H
|