TVision
view release on metacpan or search on metacpan
tvision.git/examples/tvdemo/tvdemo1.cpp view on Meta::CPAN
setScreenMode((ushort)newMode);
}
break;
case evMouseDown:
if (event.mouse.buttons == mbRightButton)
event.what = evNothing;
break;
}
}
//
// Create statusline.
//
TStatusLine *TVDemo::initStatusLine( TRect r )
{
r.a.y = r.b.y - 1;
return (new TStatusLine( r,
*new TStatusDef( 0, 50 ) +
*new TStatusItem( "~F1~ Help", kbF1, cmHelp ) +
*new TStatusItem( "~Alt-X~ Exit", kbAltX, cmQuit ) +
*new TStatusItem( 0, kbShiftDel, cmCut ) +
*new TStatusItem( 0, kbCtrlIns, cmCopy ) +
*new TStatusItem( 0, kbShiftIns, cmPaste ) +
*new TStatusItem( 0, kbAltF3, cmClose ) +
*new TStatusItem( 0, kbF10, cmMenu ) +
*new TStatusItem( 0, kbF5, cmZoom ) +
*new TStatusItem( 0, kbCtrlF5, cmResize ) +
*new TStatusDef( 50, 0xffff ) +
*new TStatusItem( "Howdy", kbF1, cmHelp )
)
);
}
//
// Puzzle function
//
void TVDemo::puzzle()
{
TPuzzleWindow *puzz = (TPuzzleWindow *) validView(new TPuzzleWindow);
if(puzz != 0)
{
puzz->helpCtx = hcPuzzle;
deskTop->insert(puzz);
}
}
//
// retrieveDesktop() function ( restores the previously stored Desktop )
//
void TVDemo::retrieveDesktop()
{
if (!ifstream("TVDEMO.DST").good())
messageBox("Could not find desktop file", mfOKButton | mfError);
else
{
fpstream *f = new fpstream("TVDEMO.DST", ios::in|ios::binary);
if( !f )
messageBox("Could not open desktop file", mfOKButton | mfError);
else
{
TVDemo::loadDesktop(*f);
if( !f )
messageBox("Error reading desktop file", mfOKButton | mfError);
}
delete f;
}
}
//
// saveDesktop() function ( saves the DeskTop by calling storeDesktop function )
//
void TVDemo::saveDesktop()
{
fpstream *f = new fpstream("TVDEMO.DST", ios::out|ios::binary);
if( f )
{
TVDemo::storeDesktop(*f);
if( !f )
{
messageBox("Could not create TVDEMO.DST.", mfOKButton | mfError);
delete f;
::remove("TVDEMO.DST");
return;
}
}
delete f;
}
//
// writeView() function ( writes a view object to a resource file )
//
static void writeView(TView *p, void *strm)
{
fpstream *s = (fpstream *) strm;
if (p != TProgram::deskTop->last)
*s << p;
}
//
// storeDesktop() function ( stores the Desktop in a resource file )
//
void TVDemo::storeDesktop(fpstream& s)
{
deskTop->forEach(::writeView, &s);
s << 0;
}
( run in 0.484 second using v1.01-cache-2.11-cpan-5b529ec07f3 )