diff options
Diffstat (limited to 'tvision/examples/tcombo/test.cpp')
-rw-r--r-- | tvision/examples/tcombo/test.cpp | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/tvision/examples/tcombo/test.cpp b/tvision/examples/tcombo/test.cpp new file mode 100644 index 0000000..12b1b83 --- /dev/null +++ b/tvision/examples/tcombo/test.cpp @@ -0,0 +1,140 @@ +/*************************************************************************/ +/* */ +/* Test program file for TComboBox and TStaticInputLine classes. */ +/* */ +/* Copyright (c) 1992, Vincent J. Dentice */ +/* All rights reserved */ +/* */ +/*************************************************************************/ + +#define Uses_ifpstream +#define Uses_ofpstream +#define Uses_TApplication +#define Uses_TButton +#define Uses_TDeskTop +#define Uses_TDialog +#define Uses_TEvent +#define Uses_TInputLine +#define Uses_TKeys +#define Uses_TMenuBar +#define Uses_TMenuItem +#define Uses_TRect +#define Uses_TStatusLine +#define Uses_TStatusItem +#define Uses_TStatusDef +#define Uses_TStringCollection +#define Uses_TSubMenu +#include <tv.h> + +#define Uses_TComboBox +#define Uses_TStaticInputLine +#include "tcombobx.h" +#include "tsinputl.h" + +const int cmNewDialog = 200; // assign new command values + + +class TMyApp : public TApplication { + public: + TMyApp(); + static TStatusLine *initStatusLine( TRect r ); + static TMenuBar *initMenuBar( TRect r ); + virtual void handleEvent( TEvent& event); + void newDialog(); +}; + +//static short winNumber = 0; // initialize window number + + +TMyApp::TMyApp() : TProgInit(&TMyApp::initStatusLine, + &TMyApp::initMenuBar, + &TMyApp::initDeskTop) +{ +} + + +TStatusLine *TMyApp::initStatusLine(TRect r) +{ + r.a.y = r.b.y - 1; // move top to 1 line above bottom + return new TStatusLine( r, + *new TStatusDef( 0, 0xFFFF ) + + *new TStatusItem( 0, kbF10, cmMenu ) + + *new TStatusItem( "~Alt-X~ Exit", kbAltX, cmQuit ) + + *new TStatusItem( "~Alt-F3~ Close", kbAltF3, cmClose ) + ); +} + +TMenuBar *TMyApp::initMenuBar( TRect r ) +{ + r.b.y = r.a.y + 1; // set bottom line 1 line below top line + return new TMenuBar( r, + *new TSubMenu( "~F~ile", kbAltF )+ + *new TMenuItem( "~D~ialog", cmNewDialog, kbF3, hcNoContext, "F3" )+ + newLine()+ + *new TMenuItem( "E~x~it", cmQuit, cmQuit, hcNoContext, "Alt-X" ) + ); +} + +void TMyApp::handleEvent(TEvent& event) +{ + TApplication::handleEvent(event); // act like base! + if(event.what == evCommand) { + switch(event.message.command) { + case cmNewDialog: // but respond to additional commands + newDialog(); // define action for cmMyNewWin + break; + default: + return; + } + clearEvent( event ); // clear event after handling + } +} + +void TMyApp::newDialog() +{ + TDialog *pd; + TInputLine *tv; + TStringCollection *list; + struct { + char line1[128]; + TCollection *list1; + char line2[128]; + TCollection *list2; + } data; + + list = new TStringCollection(5,2); + + list->insert(newStr("Test 1")); + list->insert(newStr("Test 2")); + + TRect r(2,1,27,10); + + pd = new TDialog(r, "Test Dialog"); + if (pd) { + tv = new TInputLine(TRect(2,1,20,2), 128); + pd->insert(tv); + pd->insert(new TComboBox(TRect(20,1,21,2), tv, list)); + + tv = new TStaticInputLine(TRect(2,3,20,4), 128, list); + pd->insert(tv); + pd->insert(new TComboBox(TRect(20,3,21,4), tv, list)); + + pd->insert(new TButton(TRect( 1,6,11,8), "~O~K", cmOK, bfDefault)); + pd->insert(new TButton(TRect(12,6,22,8), "Cancel", cmCancel, bfNormal)); + } + + pd->selectNext(False); + deskTop->execView(pd); + + pd->getData(&data); + + CLY_destroy(pd); + CLY_destroy(list); +} + +int main() +{ + TMyApp myApp; + myApp.run(); + return 0; +} |