Category : C++ Source Code
Archive   : C_ALL.ZIP
Filename : TI1011.ASC

 
Output of file : TI1011.ASC contained in archive : C_ALL.ZIP







PRODUCT : Borland C++ NUMBER : 1011
VERSION : 3.0
OS : DOS
DATE : August 12, 1992 PAGE : 1/5

TITLE : Modal and Modeless Dialog Boxes using Turbo Vision




// This File provides an example of both Modal and Modeless
// Dialog Boxes using the Turbo Vision Library for C++. The
// example also provides an implementation of 'Data Transfers' to
// and from Modeless Dialog Boxes.
//
// TOOLS: BC++ v3.00 + Turbo Vision Library (Large Memory Model)
// ( or TC++ v1.x, TC++ v3.00 + TV.LIB )

#define Uses_TKeys
#define Uses_TRect
#define Uses_TEvent
#define Uses_TLabel
#define Uses_TButton
#define Uses_TInputLine
#define Uses_TDialog
#define Uses_TMenuBar
#define Uses_TMenu
#define Uses_TMenuItem
#define Uses_TStaticText
#define Uses_MsgBox
#define Uses_TDeskTop
#define Uses_TApplication
#include


const int cmModalBox = 100; // Command list.
const int cmModelessBox = 101;


class TMode : public TApplication
{
public:
TMode() : TProgInit( initStatusLine,
initMenuBar,
initDeskTop )
{}
void handleEvent( TEvent& event );
static TMenuBar *initMenuBar( TRect r );
};


class TModalBox : public TDialog
{













PRODUCT : Borland C++ NUMBER : 1011
VERSION : 3.0
OS : DOS
DATE : August 12, 1992 PAGE : 2/5

TITLE : Modal and Modeless Dialog Boxes using Turbo Vision




public:
TModalBox();
};


class TModelessBox : public TDialog
{
// data struct to store data in.
static struct modelessData
{
char name[20];
char rank[20];
} data;

public:
TModelessBox();
virtual void handleEvent( TEvent& event );
};


//

// Code for main() function.
//
void main(void)
{
TMode modalApp;
modalApp.run();
}


//
// Code for the TMode object (Application object.)
//

TMenuBar *TMode::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;

return (new TMenuBar( r, new TMenu(
*new TMenuItem( "~M~odal Dialog ", cmModalBox,
kbNoKey, hcNoContext, 0,
new TMenuItem( "Mode~L~ess Dialog", cmModelessBox,
kbNoKey, hcNoContext, 0))













PRODUCT : Borland C++ NUMBER : 1011
VERSION : 3.0
OS : DOS
DATE : August 12, 1992 PAGE : 3/5

TITLE : Modal and Modeless Dialog Boxes using Turbo Vision




))
);
}

void TMode::handleEvent( TEvent& event )
{
TView *t;

TApplication::handleEvent(event);

if (event.what == evCommand)
{
switch (event.message.command)
{
case cmModalBox:
t = (TView *) validView( new TModalBox() );
if( t )
{
// ExecView() a modal dialog box
deskTop->execView( t );

// Must destroy a modal dialog box
destroy( t );
}
break;

case cmModelessBox:
t = (TView *) validView( new TModelessBox() );
if( t )
// Insert() a modeless dialog box
deskTop->insert( t );
break;
}
}
}


//
// Code for the TModalBox object.
//

TModalBox::TModalBox() :
TDialog(TRect(0, 0, 46, 11), "About"),













PRODUCT : Borland C++ NUMBER : 1011
VERSION : 3.0
OS : DOS
DATE : August 12, 1992 PAGE : 4/5

TITLE : Modal and Modeless Dialog Boxes using Turbo Vision




TWindowInit( initFrame )
{
insert( new TStaticText(TRect(3,2,43,10),
"\003Dialog Box Demo\n \n"
"\003Modal & Modeless Dialog Boxes\n \n"
"\003Copyright (C) 1992 Borland International" ));
insert(new TButton(TRect(18, 8, 28, 10), "~O~K",
cmOK, bfDefault));
options |= ofCentered;
}



//
// Code for the TModelessBox object.
//

TModelessBox::modelessData TModelessBox::data = { "", "" };

TModelessBox::TModelessBox() :
TDialog( TRect(0, 0, 35, 9), "Modeless Dialog" ),
TWindowInit( initFrame )
{
TInputLine *control = new TInputLine( TRect(10,2,32,3), 20);
insert(control);
insert( new TLabel( TRect(2,2,9,3), "~N~ame:", control) );

control = new TInputLine( TRect(10,4,32,5), 20);
insert(control);
insert( new TLabel( TRect(2,4,9,5), "~R~ank:", control) );

insert( new TButton( TRect(6,6,16,8), "~O~K", cmOK,
bfDefault) );
insert( new TButton( TRect(19,6,29,8),
"~C~ancel", cmCancel, bfNormal) );
selectNext( False );

options |= ofCentered;
setData(&data); // Initialize dialog
// box data fields.
}















PRODUCT : Borland C++ NUMBER : 1011
VERSION : 3.0
OS : DOS
DATE : August 12, 1992 PAGE : 5/5

TITLE : Modal and Modeless Dialog Boxes using Turbo Vision




void TModelessBox::handleEvent( TEvent& event )
{
if(event.what != evKeyBoard ||
event.keyDown.keyCode ! = kbEsc)
TDialog::handleEvent(event); // Call base handleEvent().

if( event.what == evCommand )
{
switch( event.message.command )
{
case cmOK:
case cmYes:
getData(&data); // Retrieve data on OK or Yes.
// Drop through and close box.
case cmCancel:
case cmNo:
close(); // Close dialog box.
clearEvent(event);
break;
}
}
}



DISCLAIMER: You have the right to use this technical information
subject to the terms of the No-Nonsense License Statement that
you received with the Borland product to which this information
pertains.






















  3 Responses to “Category : C++ Source Code
Archive   : C_ALL.ZIP
Filename : TI1011.ASC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/