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 /sp/src/public/vgui_controls/consoledialog.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/public/vgui_controls/consoledialog.h')
| -rw-r--r-- | sp/src/public/vgui_controls/consoledialog.h | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/sp/src/public/vgui_controls/consoledialog.h b/sp/src/public/vgui_controls/consoledialog.h new file mode 100644 index 00000000..8483bf66 --- /dev/null +++ b/sp/src/public/vgui_controls/consoledialog.h @@ -0,0 +1,171 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef CONSOLEDIALOG_H
+#define CONSOLEDIALOG_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <Color.h>
+#include "tier1/utlvector.h"
+#include "vgui_controls/EditablePanel.h"
+#include "vgui_controls/Frame.h"
+#include "icvar.h"
+
+class ConCommandBase;
+
+
+namespace vgui
+{
+
+// Things the user typed in and hit submit/return with
+class CHistoryItem
+{
+public:
+ CHistoryItem( void );
+ CHistoryItem( const char *text, const char *extra = NULL );
+ CHistoryItem( const CHistoryItem& src );
+ ~CHistoryItem( void );
+
+ const char *GetText() const;
+ const char *GetExtra() const;
+ void SetText( const char *text, const char *extra );
+ bool HasExtra() { return m_bHasExtra; }
+
+private:
+ char *m_text;
+ char *m_extraText;
+ bool m_bHasExtra;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Game/dev console dialog
+//-----------------------------------------------------------------------------
+class CConsolePanel : public vgui::EditablePanel, public IConsoleDisplayFunc
+{
+ DECLARE_CLASS_SIMPLE( CConsolePanel, vgui::EditablePanel );
+
+public:
+ CConsolePanel( Panel *pParent, const char *pName, bool bStatusVersion );
+ ~CConsolePanel();
+
+ // Inherited from IConsoleDisplayFunc
+ virtual void ColorPrint( const Color& clr, const char *pMessage );
+ virtual void Print( const char *pMessage );
+ virtual void DPrint( const char *pMessage );
+ virtual void GetConsoleText( char *pchText, size_t bufSize ) const;
+
+ // clears the console
+ void Clear();
+
+ // writes console to a file
+ void DumpConsoleTextToFile();
+
+ // Hides the console
+ void Hide();
+
+ bool TextEntryHasFocus() const;
+ void TextEntryRequestFocus();
+
+
+
+private:
+ enum
+ {
+ MAX_HISTORY_ITEMS = 100,
+ };
+
+ class CompletionItem
+ {
+ public:
+ CompletionItem( void );
+ CompletionItem( const CompletionItem& src );
+ CompletionItem& operator =( const CompletionItem& src );
+ ~CompletionItem( void );
+ const char *GetItemText( void );
+ const char *GetCommand( void ) const;
+ const char *GetName() const;
+
+ bool m_bIsCommand;
+ ConCommandBase *m_pCommand;
+ CHistoryItem *m_pText;
+ };
+
+protected:
+ // methods
+ void OnAutoComplete(bool reverse);
+ MESSAGE_FUNC_PTR( OnTextChanged, "TextChanged", panel );
+ void RebuildCompletionList(const char *partialText);
+ void UpdateCompletionListPosition();
+ MESSAGE_FUNC( CloseCompletionList, "CloseCompletionList" );
+ MESSAGE_FUNC_CHARPTR( OnMenuItemSelected, "CompletionCommand", command );
+ void ClearCompletionList();
+ void AddToHistory( const char *commandText, const char *extraText );
+
+ // vgui overrides
+ virtual void PerformLayout();
+ virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
+ virtual void OnCommand(const char *command);
+ virtual void OnKeyCodeTyped(vgui::KeyCode code);
+ virtual void OnThink();
+
+ vgui::RichText *m_pHistory;
+ vgui::TextEntry *m_pEntry;
+ vgui::Button *m_pSubmit;
+ vgui::Menu *m_pCompletionList;
+ Color m_PrintColor;
+ Color m_DPrintColor;
+
+ int m_iNextCompletion; // the completion that we'll next go to
+ char m_szPartialText[256];
+ char m_szPreviousPartialText[256];
+ bool m_bAutoCompleteMode; // true if the user is currently tabbing through completion options
+ bool m_bWasBackspacing;
+ bool m_bStatusVersion;
+
+ CUtlVector< CompletionItem * > m_CompletionList;
+ CUtlVector< CHistoryItem > m_CommandHistory;
+
+ friend class CConsoleDialog;
+};
+
+
+class CConsoleDialog : public vgui::Frame
+{
+ DECLARE_CLASS_SIMPLE( CConsoleDialog, vgui::Frame );
+
+public:
+ CConsoleDialog( vgui::Panel *pParent, const char *pName, bool bStatusVersion );
+
+ virtual void OnScreenSizeChanged( int iOldWide, int iOldTall );
+ virtual void Close();
+ virtual void PerformLayout();
+
+ // brings dialog to the fore
+ MESSAGE_FUNC( Activate, "Activate" );
+ MESSAGE_FUNC_CHARPTR( OnCommandSubmitted, "CommandSubmitted", command );
+
+ // hides the console
+ void Hide();
+
+ // Chain to the page
+ void Print( const char *msg );
+ void DPrint( const char *msg );
+ void ColorPrint( const Color& clr, const char *msg );
+ void Clear();
+ void DumpConsoleTextToFile();
+
+ virtual void OnKeyCodePressed( vgui::KeyCode code );
+
+protected:
+ CConsolePanel *m_pConsolePanel;
+};
+
+} // end namespace vgui
+
+#endif // CONSOLEDIALOG_H
|