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

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







PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 1/9

TITLE : A modal dialog from a modal dialog with Turbo Vision





The following code provides an example of executing a Modal
Dialog Box from another Dialog Box when using Turbo Vision.


/*********************************************************************\
* TEST.CPP *
* This module contains the Turbo Vision application code to run *
* this example. It sets up the necessary menus to bring up the *
* test module represented by this demo. *
* *
* TEST MODULE for Dialog Example #3 : Creating a second modal dialog*
* box from within a first. *
* *
*********************************************************************
* *
* This code was written by Borland Technical Support. *
* It is provided as is with no warranties expressed or implied. *
* *
\*********************************************************************/

#define Uses_TRect
#define Uses_TKeys
#define Uses_TEvent
#define Uses_TDialog
#define Uses_TMenu
#define Uses_TMenuItem
#define Uses_TMenuBar
#define Uses_TDeskTop
#define Uses_TApplication
#include
#include

#pragma hdrstop

#include "cmds.h"
#include "mdlg.h"


class TTestApp : public TApplication
{

public:













PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 2/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




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

};


TMenuBar *TTestApp::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;
return new TMenuBar( r, new TMenu(
*new TMenuItem( "~D~ialog Box", cmEDialog, kbAltE )
));
}


void TTestApp::handleEvent( TEvent& event )
{
TFirstDialog *td;

TApplication::handleEvent( event );

if( event.what == evCommand &&
event.message.command == cmEDialog )
{
td = new TFirstDialog( TRect(0,0,40,11),
"The first dialog box." );
if( validView( td ) )
deskTop->execView( td );
}
}


int main()
{
TTestApp TB;
TB.run();
return 0;
}















PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 3/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




/*********************************************************************
* *
* MDLG.CPP *
* This module contains the code for the two subclassed dialogs use*
* by this demo. *
* *
* SUPPORT MODULE for dialog example #3 : Creating a second modal *
* dialog box from within a first. *
* *
* The key to this operation is making sure that the deskTop's *
* execView() function is used in all cases when a modal dialog box*
* is desired. execView() is a member function of TGroup, thus any*
* class derived from TGroup will have its own version of that *
* function. When inside a dialog box handleEvent procedure, code *
* such as *
* *
* TDialog *td = ... *
* execView( td ); *
* *
* will compile, but the box will come up with lots of flashing *
* white on red colors. This is because the new dialog box was *
* inserted into the old dialog box, instead of the deskTop and the*
* palette isn't mapped right. The solution is to execView the *
* dialog box this way: *
* *
* TDialog *td = ... *
* TProgram::deskTop->execView( td ); *
* *
* 'deskTop' is a static public member of TProgram and points to the*
* desktop object of the current application. This way, the dialog*
* box will be inserted into the desktop and the palettes will work*
* properly. The Z order will also be correct so that the views *
* stack up right. *
* *
*********************************************************************
* *
* This code was written by Borland Technical Support. *
* It is provided as is with no warranties expressed or implied. *
* *
*********************************************************************/

#define Uses_TRect
#define Uses_TKeys













PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 4/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




#define Uses_TEvent
#define Uses_TButton
#define Uses_TStaticText
#define Uses_TDialog
#define Uses_MsgBox
#define Uses_TDeskTop
#define Uses_TProgram
#include

#pragma hdrstop

#include "cmds.h"
#include "mdlg.h"


/********************************************************************
* Class TFirstDialog *
********************************************************************
* TFirstDialog::TFirstDialog *
* Constructor for the dialog box. Encapsulates the box to ease *
* creation. *
********************************************************************/

TFirstDialog::TFirstDialog( TRect& r, char *aTitle ) :
TDialog( r, aTitle ),
TWindowInit( initFrame )
{
insert( new TStaticText( TRect(2,2,38,6),
"This is a modal dialog box. Hitting the button below "
"will bring up a second modal dialog box on top of this one."
));

insert( new TButton( TRect(2,8,12,10),
"~M~ore", cmMore, bfDefault )
);
insert( new TButton( TRect(14,8,24,10), "O~K~", cmOK, bfNormal )
);
insert( new TButton( TRect(26,8,36,10), "~C~ancel", cmCancel,
bfNormal )
);

selectNext( False );
options |= ofCentered;














PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 5/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




}


/***********************************************************************
* TFirstDialog::handleEvent
* Handle the button and bring up the second dialog box when
* this button is pushed.
***********************************************************************/

void TFirstDialog::handleEvent( TEvent& event )
{
TSecondDialog *td;

if( event.what == evCommand )
switch( event.message.command )
{
case cmMore: // Brings up a second dialog box...
td = new TSecondDialog( TRect(0,0,38,9),
"The second dialog box."
);
if( TProgram::application->validView( td ) )
TProgram::deskTop->execView( td );
clearEvent( event );
break;
}

TDialog::handleEvent( event );
}


/**********************************************************************
*
* Class TSecondDialog
*
**********************************************************************
* TSecondDialog::TSecondDialog
* A fairly cheezy second dialog box with an ok button to make it go
* away. (This is probably a good thing 🙂 )
***********************************************************************/

TSecondDialog::TSecondDialog( TRect& r, char *aTitle ) :
TDialog( r, aTitle ),
TWindowInit( initFrame )













PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 6/9

TITLE : A modal dialog from a modal dialog with Turbo Vision





{
insert( new TStaticText( TRect(2,2,36,5),
"This the second modal dialog box. Hitting the button or "
" will make it go away."
));

insert( new TButton( TRect(13,6,23,8), "O~K~", cmOK, bfDefault )
);
options |= ofCentered;
}











/*********************************************************************
* *
* CMDS.H *
* This header contains various commands used in the main message *
* system (including the menu bar, status line, and miscellaneous *
* dialog boxes.) *
* *
*********************************************************************
* *
* This code was written by Borland Technical Support. *
* It is provided as is with no warranties expressed or implied. *
* *
*********************************************************************/

#ifndef _CMDS_H
#define _CMDS_H

const unsigned short cmEDialog = 100;
const unsigned short cmMore = 101;

#endif














PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 7/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




/*********************************************************************
* *
* MDLG.H *
* This header contains the class definitions for the MDLG.CPP *
* source module. *
* *
* CLASSES *
* TFirstDialog The first dialog box. *
* TSecondDialog The second dialog box. *
* *
*********************************************************************
* *
* This code was written by Borland Technical Support. *
* It is provided as is with no warranties expressed or implied. *
* *
*********************************************************************/


class TFirstDialog : public TDialog
{

public:

TFirstDialog( TRect& r, char *aTitle );
virtual void handleEvent( TEvent& event );

};


class TSecondDialog : public TDialog
{

public:

TSecondDialog( TRect& r, char *aTitle );

};



















PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 8/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




#
# Makefile for Turbo Vision sample demo
#
# Written by Borland Tech Support, 1992.
#
.AUTODEPEND

NAME = test
OBJS = $(NAME).obj mdlg.obj

DEBUG = -v
MODEL = -ml
MAP = -x
INCPATH = C:\BORLANDC\INCLUDE;C:\BORLANDC\TVISION\INCLUDE
LIBPATH = C:\BORLANDC\LIB;C:\BORLANDC\TVISION\LIB

CFLAGS = -c -H=$(NAME).sym $(DEBUG) $(MODEL)
LFLAGS = $(MAP) $(DEBUG) -Vt -L$(LIBPATH)
CC = bcc
LINK = tlink

.cpp.obj:
$(CC) +$(NAME).cfg {$*.cpp }

.c.obj:
$(CC) +$(NAME).cfg {$*.c }

$(NAME).exe: $(NAME).cfg $(OBJS)
$(LINK) @&&~
$(LFLAGS) c0l +
$(OBJS)
$(NAME).exe
$(NAME).map
tv +
emu + mathl + cl
~

$(NAME).cfg: makefile
copy &&~
$(CFLAGS) -I$(INCPATH) -L$(LIBPATH)
~ $(NAME).cfg

clean:













PRODUCT : Borland C++ NUMBER : 1158
VERSION : 3.1
OS : DOS
DATE : November 11, 1992 PAGE : 9/9

TITLE : A modal dialog from a modal dialog with Turbo Vision




del *.sym *.obj *.exe *.cfg





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 : TI1158.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/