home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tv20cpp.zip
/
tvision
/
app.h
next >
Wrap
C/C++ Source or Header
|
1998-03-29
|
11KB
|
352 lines
/*
* app.h
*
* Turbo Vision - Version 2.0
*
* Copyright (c) 1994 by Borland International
* All Rights Reserved.
*
* Modified by Sergio Sigala <ssigala@globalnet.it>
*/
#if defined( Uses_TBackground ) && !defined( __TBackground )
#define __TBackground
class TRect;
class TBackground : public TView
{
public:
TBackground( const TRect& bounds, char aPattern );
virtual void draw();
virtual TPalette& getPalette() const;
protected:
char pattern;
private:
virtual const char *streamableName() const
{ return name; }
protected:
TBackground( StreamableInit );
virtual void write( opstream& );
virtual void *read( ipstream& );
public:
static const char * const name;
static TStreamable *build();
};
inline ipstream& operator >> ( ipstream& is, TBackground& cl )
{ return is >> (TStreamable&)cl; }
inline ipstream& operator >> ( ipstream& is, TBackground*& cl )
{ return is >> (void *&)cl; }
inline opstream& operator << ( opstream& os, TBackground& cl )
{ return os << (TStreamable&)cl; }
inline opstream& operator << ( opstream& os, TBackground* cl )
{ return os << (TStreamable *)cl; }
#endif // Uses_TBackground
#if defined( Uses_TDeskTop ) && !defined( __TDeskTop )
#define __TDeskTop
class TBackground;
class TRect;
class TEvent;
class TDeskInit
{
public:
TDeskInit( TBackground *(*cBackground)( TRect ) );
protected:
TBackground *(*createBackground)( TRect );
};
class TDeskTop : public TGroup, public virtual TDeskInit
{
public:
TDeskTop( const TRect& );
void cascade( const TRect& );
virtual void handleEvent( TEvent& );
static TBackground *initBackground( TRect );
void tile( const TRect& );
virtual void tileError();
virtual void shutDown();
static /*const*/ char defaultBkgrnd;
protected:
TBackground *background;
Boolean tileColumnsFirst;
private:
// static const char defaultBkgrnd;
virtual const char *streamableName() const
{ return name; }
protected:
TDeskTop( StreamableInit );
public:
static const char * const name;
static TStreamable *build();
};
inline ipstream& operator >> ( ipstream& is, TDeskTop& cl )
{ return is >> (TStreamable&)(TGroup&)cl; }
inline ipstream& operator >> ( ipstream& is, TDeskTop*& cl )
{ return is >> (void *&)cl; }
inline opstream& operator << ( opstream& os, TDeskTop& cl )
{ return os << (TStreamable&)(TGroup&)cl; }
inline opstream& operator << ( opstream& os, TDeskTop* cl )
{ return os << (TStreamable *)(TGroup *)cl; }
#endif
// Turbo Vision 2.0 Color Palettes
#ifndef __UNPATCHED
#define cpAppColor \
"\x71\x70\x78\x74\x20\x28\x24\x17\x1F\x1A\x31\x31\x1E\x71\x1F" \
"\x37\x3F\x3A\x13\x13\x3E\x21\x3F\x70\x7F\x7A\x13\x13\x70\x7F\x7E" \
"\x70\x7F\x7A\x13\x13\x70\x70\x7F\x7E\x20\x2B\x2F\x78\x2E\x70\x30" \
"\x3F\x3E\x1F\x2F\x1A\x20\x72\x31\x31\x30\x2F\x3E\x31\x13\x38\x00" \
"\x17\x1F\x1A\x71\x71\x1E\x17\x1F\x1E\x20\x2B\x2F\x78\x2E\x10\x30" \
"\x3F\x3E\x70\x2F\x7A\x20\x12\x31\x31\x30\x2F\x3E\x31\x13\x38\x00" \
"\x37\x3F\x3A\x13\x13\x3E\x30\x3F\x3E\x20\x2B\x2F\x78\x2E\x30\x70" \
"\x7F\x7E\x1F\x2F\x1A\x20\x32\x31\x71\x70\x2F\x7E\x71\x13\x78\x00" \
"\x37\x3F\x3A\x13\x13\x30\x3E\x1E" // help colors
#else
#define cpAppColor \
"\x71\x70\x78\x74\x20\x28\x24\x17\x1F\x1A\x31\x31\x1E\x71\x1F" \
"\x37\x3F\x3A\x13\x13\x3E\x21\x3F\x70\x7F\x7A\x13\x13\x70\x7F\x7E" \
"\x70\x7F\x7A\x13\x13\x70\x70\x7F\x7E\x20\x2B\x2F\x78\x2E\x70\x30" \
"\x3F\x3E\x1F\x2F\x1A\x20\x72\x31\x31\x30\x2F\x3E\x31\x13\x38\x00" \
"\x17\x1F\x1A\x71\x71\x1E\x17\x1F\x1E\x20\x2B\x2F\x78\x2E\x10\x30" \
"\x3F\x3E\x70\x2F\x7A\x20\x12\x31\x31\x30\x2F\x3E\x31\x13\x38\x00" \
"\x37\x3F\x3A\x13\x13\x3E\x30\x3F\x3E\x20\x2B\x2F\x78\x2E\x30\x70" \
"\x7F\x7E\x1F\x2F\x1A\x20\x32\x31\x71\x70\x2F\x7E\x71\x13\x38\x00" \
"\x37\x3F\x3A\x13\x13\x30\x3E\x1E" // help colors
#endif
#ifndef __UNPATCHED
#define cpAppBlackWhite \
"\x70\x70\x78\x7F\x07\x07\x0F\x07\x0F\x07\x70\x70\x07\x70\x0F" \
"\x07\x0F\x07\x70\x70\x07\x70\x0F\x70\x7F\x7F\x70\x07\x70\x07\x0F" \
"\x70\x7F\x7F\x70\x07\x70\x70\x7F\x7F\x07\x0F\x0F\x78\x0F\x78\x07" \
"\x0F\x0F\x0F\x70\x0F\x07\x70\x70\x70\x07\x70\x0F\x07\x07\x08\x00" \
"\x07\x0F\x0F\x07\x70\x07\x07\x0F\x0F\x70\x78\x7F\x08\x7F\x08\x70" \
"\x7F\x7F\x7F\x0F\x70\x70\x07\x70\x70\x70\x07\x7F\x70\x07\x78\x00" \
"\x70\x7F\x7F\x70\x07\x70\x70\x7F\x7F\x07\x0F\x0F\x78\x0F\x78\x07" \
"\x0F\x0F\x0F\x70\x0F\x07\x70\x70\x70\x07\x70\x0F\x07\x07\x08\x00" \
"\x07\x0F\x07\x70\x70\x07\x0F\x70" // help colors
#else
#define cpAppBlackWhite \
"\x70\x70\x78\x7F\x07\x07\x0F\x07\x0F\x07\x70\x70\x07\x70\x0F" \
"\x07\x0F\x07\x70\x70\x07\x70\x0F\x70\x7F\x7F\x70\x07\x70\x07\x0F" \
"\x70\x7F\x7F\x70\x07\x70\x70\x7F\x7F\x07\x0F\x0F\x78\x0F\x78\x07" \
"\x0F\x0F\x0F\x70\x0F\x07\x70\x70\x70\x07\x70\x0F\x07\x07\x78\x00" \
"\x07\x0F\x0F\x07\x70\x07\x07\x0F\x0F\x70\x78\x7F\x08\x7F\x08\x70" \
"\x7F\x7F\x7F\x0F\x70\x70\x07\x70\x70\x70\x07\x7F\x70\x07\x78\x00" \
"\x70\x7F\x7F\x70\x07\x70\x70\x7F\x7F\x07\x0F\x0F\x78\x0F\x78\x07" \
"\x0F\x0F\x0F\x70\x0F\x07\x70\x70\x70\x07\x70\x0F\x07\x07\x78\x00" \
"\x07\x0F\x07\x70\x70\x07\x0F\x70" // help colors
#endif
#ifndef __UNPATCHED
#define cpAppMonochrome \
"\x70\x07\x07\x0F\x70\x70\x70\x07\x0F\x07\x70\x70\x07\x70\x00" \
"\x07\x0F\x07\x70\x70\x07\x70\x00\x70\x70\x70\x07\x07\x70\x07\x00" \
"\x70\x70\x70\x07\x07\x70\x70\x70\x0F\x07\x07\x0F\x70\x0F\x70\x07" \
"\x0F\x0F\x07\x70\x07\x07\x70\x07\x07\x07\x70\x0F\x07\x07\x70\x00" \
"\x70\x70\x70\x07\x07\x70\x70\x70\x0F\x07\x07\x0F\x70\x0F\x70\x07" \
"\x0F\x0F\x07\x70\x07\x07\x70\x07\x07\x07\x70\x0F\x07\x07\x01\x00" \
"\x70\x70\x70\x07\x07\x70\x70\x70\x0F\x07\x07\x0F\x70\x0F\x70\x07" \
"\x0F\x0F\x07\x70\x07\x07\x70\x07\x07\x07\x70\x0F\x07\x07\x01\x00" \
"\x07\x0F\x07\x70\x70\x07\x0F\x70" // help colors
#else
#define cpAppMonochrome \
"\x70\x07\x07\x0F\x70\x70\x70\x07\x0F\x07\x70\x70\x07\x70\x00" \
"\x07\x0F\x07\x70\x70\x07\x70\x00\x70\x70\x70\x07\x07\x70\x07\x00" \
"\x70\x70\x70\x07\x07\x70\x70\x70\x0F\x07\x07\x0F\x70\x0F\x70\x07" \
"\x0F\x0F\x07\x70\x07\x07\x70\x07\x07\x07\x70\x0F\x07\x07\x70\x00" \
"\x70\x70\x70\x07\x07\x70\x70\x70\x0F\x07\x07\x0F\x70\x0F\x70\x07" \
"\x0F\x0F\x07\x70\x07\x07\x70\x07\x07\x07\x70\x0F\x07\x07\x70\x00" \
"\x70\x70\x70\x07\x07\x70\x70\x70\x0F\x07\x07\x0F\x70\x0F\x70\x07" \
"\x0F\x0F\x07\x70\x07\x07\x70\x07\x07\x07\x70\x0F\x07\x07\x70\x00" \
"\x07\x0F\x07\x70\x70\x07\x0F\x70" // help colors
#endif
#if defined( Uses_TProgram ) && !defined( __TProgram )
#define __TProgram
// Standard application help contexts
// Note: range $FF00 - $FFFF of help contexts are reserved by Borland
const unsigned short hcNew = 0xFF01;
const unsigned short hcOpen = 0xFF02;
const unsigned short hcSave = 0xFF03;
const unsigned short hcSaveAs = 0xFF04;
const unsigned short hcSaveAll = 0xFF05;
const unsigned short hcChangeDir = 0xFF06;
const unsigned short hcDosShell = 0xFF07;
const unsigned short hcExit = 0xFF08;
const unsigned short hcUndo = 0xFF10;
const unsigned short hcCut = 0xFF11;
const unsigned short hcCopy = 0xFF12;
const unsigned short hcPaste = 0xFF13;
const unsigned short hcClear = 0xFF14;
const unsigned short hcTile = 0xFF20;
const unsigned short hcCascade = 0xFF21;
const unsigned short hcCloseAll = 0xFF22;
const unsigned short hcResize = 0xFF23;
const unsigned short hcZoom = 0xFF24;
const unsigned short hcNext = 0xFF25;
const unsigned short hcPrev = 0xFF26;
const unsigned short hcClose = 0xFF27;
class TStatusLine;
class TMenuBar;
class TDeskTop;
class TEvent;
class TView;
class TProgInit
{
public:
TProgInit( TStatusLine *(*cStatusLine)( TRect ),
TMenuBar *(*cMenuBar)( TRect ),
TDeskTop *(*cDeskTop )( TRect )
);
protected:
TStatusLine *(*createStatusLine)( TRect );
TMenuBar *(*createMenuBar)( TRect );
TDeskTop *(*createDeskTop)( TRect );
};
/* ---------------------------------------------------------------------- */
/* class TProgram */
/* */
/* Palette layout */
/* 1 = TBackground */
/* 2- 7 = TMenuView and TStatusLine */
/* 8-15 = TWindow(Blue) */
/* 16-23 = TWindow(Cyan) */
/* 24-31 = TWindow(Gray) */
/* 32-63 = TDialog */
/* ---------------------------------------------------------------------- */
const
// TApplication palette entries
apColor = 0,
apBlackWhite = 1,
apMonochrome = 2;
class TDialog;
class TWindow;
class TProgram : public TGroup, public virtual TProgInit
{
public:
TProgram();
virtual ~TProgram();
virtual Boolean canMoveFocus();
virtual ushort executeDialog(TDialog*, void*data = 0);
virtual void getEvent(TEvent& event);
virtual TPalette& getPalette() const;
virtual void handleEvent(TEvent& event);
virtual void idle();
virtual void initScreen();
virtual void outOfMemory();
virtual void putEvent( TEvent& event );
virtual void run();
virtual TWindow* insertWindow(TWindow*);
void setScreenMode( ushort mode );
TView *validView( TView *p );
virtual void shutDown();
virtual void suspend() {}
virtual void resume() {}
static TStatusLine *initStatusLine( TRect );
static TMenuBar *initMenuBar( TRect );
static TDeskTop *initDeskTop( TRect );
static TProgram * application;
static TStatusLine * statusLine;
static TMenuBar * menuBar;
static TDeskTop * deskTop;
static int appPalette;
protected:
static TEvent pending;
private:
static const char * exitText;
};
#endif
#if defined( Uses_TApplication ) && !defined( __TApplication )
#define __TApplication
//class TApplication : public TProgram
class TApplication : public TScreen, public TProgram
{
protected:
TApplication();
virtual ~TApplication();
public:
virtual void suspend();
virtual void resume();
void getEvent(TEvent& event) { TProgram::getEvent(event); };
};
#endif