summaryrefslogtreecommitdiff
path: root/rhtvision/examples/tcombo/tcmbowin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rhtvision/examples/tcombo/tcmbowin.cpp')
-rw-r--r--rhtvision/examples/tcombo/tcmbowin.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/rhtvision/examples/tcombo/tcmbowin.cpp b/rhtvision/examples/tcombo/tcmbowin.cpp
new file mode 100644
index 0000000..13cc7c3
--- /dev/null
+++ b/rhtvision/examples/tcombo/tcmbowin.cpp
@@ -0,0 +1,106 @@
+/*************************************************************************/
+/* */
+/* TCMBOWIN.CPP */
+/* */
+/* Copyright (c) 1992, Vincent J. Dentice */
+/* All rights reserved */
+/* */
+/* The TComboBox class is an extension to Borland International's Turbo */
+/* Vision Applications Framework for DOS. It provides a class that */
+/* acts like a Combo Box in other graphical environments like Microsoft */
+/* Windows and IBM OS/2. */
+/* */
+/* It is designed to be with a TDialog class and a TCollection Class. */
+/* */
+/* */
+/* Date Prg Ver Description */
+/* -------- --- --- ------------------------------------------------- */
+/* 09/30/92 VJD 0.1 Initial module definition. */
+/* 11/16/92 VJD 0.2 Added streamability to the TComboBox classes. */
+/* */
+/*************************************************************************/
+
+
+#define Uses_TComboWindow
+#define Uses_TScrollBar
+#define Uses_TStreamableClass
+#define Uses_TPalette
+#include "tcombobx.h"
+
+#define cpComboWindow "\x13\x13\x15\x04\x05\x1A\x1C"
+
+
+TComboWindow::TComboWindow(const TRect& bounds, TCollection *aList) :
+ TWindowInit(&TComboWindow::initFrame),
+ TWindow(bounds, 0, wnNoNumber)
+{
+ TRect r;
+ TScrollBar *sb;
+
+ setState(sfShadow, False);
+ flags = 0;
+
+ r = getExtent();
+ r.a.x = r.b.x - 1;
+ sb = new TScrollBar(r);
+ insert(sb);
+
+ r = getExtent();
+ r.b.x--;
+ viewer = new TComboViewer(r, aList, sb);
+ insert(viewer);
+}
+
+
+TPalette& TComboWindow::getPalette() const
+{
+ static TPalette palette (cpComboWindow, sizeof(cpComboWindow)-1);
+ return palette;
+}
+
+
+void TComboWindow::getSelection(char *dest)
+{
+ viewer->getText(dest, viewer->focused, 255);
+}
+
+
+void TComboWindow::handleEvent(TEvent& event)
+{
+ if ((event.what == evMouseDown) && !containsMouse(event)) {
+ endModal(cmCancel);
+ clearEvent(event);
+ }
+ TWindow::handleEvent(event);
+}
+
+
+void TComboWindow::setSelection(const char *data)
+{
+ viewer->focusItem(viewer->list->indexOf((void *)data));
+}
+
+
+void * TComboWindow::read( ipstream& is )
+{
+ TWindow::read(is);
+ is >> viewer;
+ return this;
+}
+
+void TComboWindow::write( opstream& os )
+{
+ TWindow::write(os);
+ os << viewer;
+}
+
+
+TStreamable *TComboWindow::build()
+{
+ return new TComboWindow(streamableInit);
+}
+
+
+TComboWindow::TComboWindow(StreamableInit) : TWindowInit(0),
+ TWindow(streamableInit)
+{}