summaryrefslogtreecommitdiff
path: root/utils/vgui_panel_zoo/TextEntryDemo5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/vgui_panel_zoo/TextEntryDemo5.cpp')
-rw-r--r--utils/vgui_panel_zoo/TextEntryDemo5.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/utils/vgui_panel_zoo/TextEntryDemo5.cpp b/utils/vgui_panel_zoo/TextEntryDemo5.cpp
new file mode 100644
index 0000000..e49272e
--- /dev/null
+++ b/utils/vgui_panel_zoo/TextEntryDemo5.cpp
@@ -0,0 +1,87 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+#include "DemoPage.h"
+
+#include <VGUI/IVGui.h>
+
+#include <vgui_controls/TextEntry.h>
+#include <vgui/KeyCode.h>
+
+using namespace vgui;
+
+//-----------------------------------------------------------------------------
+// Text Entry controls are notepad-like windows that hold text.
+// In this demo we create an editable text entry window that holds multiple lines
+// of text. We initialize it with some starting text.
+// We override the enter key to clear the text. To add a newline manually you can
+// type ctrl-enter
+//-----------------------------------------------------------------------------
+class TextEntryDemo5: public DemoPage
+{
+ public:
+ TextEntryDemo5(Panel *parent, const char *name);
+ ~TextEntryDemo5();
+ private:
+
+ void OnKeyCodeTyped(KeyCode code);
+
+ TextEntry *m_pTextEntry;
+
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Constructor
+//-----------------------------------------------------------------------------
+TextEntryDemo5::TextEntryDemo5(Panel *parent, const char *name) : DemoPage(parent, name)
+{
+ m_pTextEntry = new TextEntry(this, "AnotherTextEntry");
+
+ // Position the window and make it nice and wide.
+ // Make it tall enough to fit several lines of text.
+ m_pTextEntry->SetBounds(100, 100, 200, 100);
+
+
+ // Make this window hold multiple lines of text.
+ // This will turn off horizontal scrolling,
+ // and wrap text from line to line.
+ m_pTextEntry->SetMultiline(true);
+
+ // Insert text after you have set the size and position of the window
+ m_pTextEntry->InsertString("Some starting text and a pile of text. ");
+ m_pTextEntry->InsertString("Some more text to make mutiple lines. ");
+ m_pTextEntry->InsertString("Even more scrumptious, chocolatey delicious text. ");
+ m_pTextEntry->InsertString("Enough text to get that scroll bar a-scrolling. ");
+ m_pTextEntry->InsertString("That's it a nice number of chars.");
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Destructor
+//-----------------------------------------------------------------------------
+TextEntryDemo5::~TextEntryDemo5()
+{
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: When the enter key is pressed we clear the textentry.
+// To add a newline use ctrl-return.
+//-----------------------------------------------------------------------------
+void TextEntryDemo5::OnKeyCodeTyped(KeyCode code)
+{
+ if (code == KEY_ENTER)
+ {
+ m_pTextEntry->SetText("");
+ }
+
+ DemoPage::OnKeyCodeTyped(code);
+}
+
+Panel* TextEntryDemo5_Create(Panel *parent)
+{
+ return new TextEntryDemo5(parent, "TextEntryDemo5");
+}
+
+