diff options
Diffstat (limited to 'rhtvision/examples/tcombo/tcmbowin.cpp')
-rw-r--r-- | rhtvision/examples/tcombo/tcmbowin.cpp | 106 |
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) +{} |