#if defined( __BORLANDC__ )
#pragma option -Vo-
#endif
#if defined( __BCOPT__ ) && !defined (__FLAT__)
#pragma option -po-
#endif
#if !defined( __BUTTON_TYPE )
#define __BUTTON_TYPE
const
int
bfNormal = 0x00,
bfDefault = 0x01,
bfLeftJust = 0x02,
bfBroadcast = 0x04,
bfGrabFocus = 0x08,
cmRecordHistory = 60;
#endif // __BUTTON_TYPE
#if defined( Uses_TDialog ) && !defined( __TDialog )
#define __TDialog
#define cpGrayDialog \
"\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2A\x2B\x2C\x2D\x2E\x2F"
\
"\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3A\x3B\x3C\x3D\x3E\x3F"
#define cpBlueDialog \
"\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
\
"\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
#define cpCyanDialog \
"\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
\
"\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
#define cpDialog cpGrayDialog
const
int
dpBlueDialog = 0,
dpCyanDialog = 1,
dpGrayDialog = 2;
class
_FAR TRect;
struct
_FAR TEvent;
class
_FAR TValidator;
class
TDialog :
public
TWindow
{
public
:
TDialog(
const
TRect& bounds, TStringView aTitle )
noexcept
;
virtual
TPalette& getPalette()
const
;
virtual
void
handleEvent( TEvent& event );
virtual
Boolean valid( ushort command );
private
:
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TDialog( StreamableInit )
noexcept
;
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TDialog& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TDialog*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TDialog& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TDialog* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TDialog
#if defined( Uses_TInputLine ) && !defined( __TInputLine )
#define __TInputLine
const
ushort
ilMaxBytes = 0,
ilMaxWidth = 1,
ilMaxChars = 2;
class
_FAR TRect;
struct
_FAR TEvent;
class
_FAR TValidator;
class
TInputLine :
public
TView
{
public
:
TInputLine(
const
TRect& bounds,
int
limit, TValidator *aValid = 0, ushort limitMode = ilMaxBytes )
noexcept
;
~TInputLine();
virtual
ushort dataSize();
virtual
void
draw();
virtual
void
getData(
void
*rec );
virtual
TPalette& getPalette()
const
;
virtual
void
handleEvent( TEvent& event );
void
selectAll( Boolean enable, Boolean scroll=True );
virtual
void
setData(
void
*rec );
virtual
void
setState( ushort aState, Boolean enable );
virtual
Boolean valid( ushort cmd );
void
setValidator( TValidator* aValid );
char
* data;
int
maxLen;
int
maxWidth;
int
maxChars;
int
curPos;
int
firstPos;
int
selStart;
int
selEnd;
private
:
Boolean canScroll(
int
delta );
int
mouseDelta( TEvent& event );
int
mousePos( TEvent& event );
int
displayedPos(
int
pos );
void
deleteSelect();
void
deleteCurrent();
void
adjustSelectBlock();
void
saveState();
void
restoreState();
Boolean checkValid(Boolean);
Boolean canUpdateCommands();
void
setCmdState( ushort, Boolean );
void
updateCommands();
static
const
char
_NEAR rightArrow;
static
const
char
_NEAR leftArrow;
virtual
const
char
*streamableName()
const
{
return
name; }
TValidator* validator;
int
anchor;
char
* oldData;
int
oldCurPos;
int
oldFirstPos;
int
oldSelStart;
int
oldSelEnd;
protected
:
TInputLine( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TInputLine& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TInputLine*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TInputLine& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TInputLine* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TInputLine
#if defined( Uses_TButton ) && !defined( __TButton )
#define __TButton
class
_FAR TRect;
struct
_FAR TEvent;
class
_FAR TDrawBuffer;
class
TButton :
public
TView
{
public
:
TButton(
const
TRect& bounds,
TStringView aTitle,
ushort aCommand,
ushort aFlags
)
noexcept
;
~TButton();
virtual
void
draw();
void
drawState( Boolean down );
virtual
TPalette& getPalette()
const
;
virtual
void
handleEvent( TEvent& event );
void
makeDefault( Boolean enable );
virtual
void
press();
virtual
void
setState( ushort aState, Boolean enable );
const
char
*title;
protected
:
ushort command;
uchar flags;
Boolean amDefault;
private
:
void
drawTitle( TDrawBuffer&,
int
,
int
, TAttrPair, Boolean );
void
pressButton( TEvent& );
TRect getActiveRect();
enum
{ animationDurationMs = 100 };
TTimerId animationTimer;
static
const
char
* _NEAR shadows;
static
const
char
* _NEAR markers;
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TButton( StreamableInit )
noexcept
: TView( streamableInit ) {};
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TButton& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TButton*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TButton& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TButton* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TButton
#if defined( Uses_TSItem ) && !defined( __TSItem )
#define __TSItem
class
TSItem
{
public
:
TSItem( TStringView aValue, TSItem *aNext )
noexcept
{ value = newStr(aValue); next = aNext; }
~TSItem() {
delete
[] (
char
*) value; }
const
char
*value;
TSItem *next;
};
#endif // Uses_TSItem
#if defined( Uses_TCluster ) && !defined( __TCluster )
#define __TCluster
class
_FAR TRect;
class
_FAR TSItem;
struct
_FAR TEvent;
class
_FAR TPoint;
class
_FAR TStringCollection;
class
TCluster :
public
TView
{
public
:
TCluster(
const
TRect& bounds, TSItem *aStrings )
noexcept
;
~TCluster();
virtual
ushort dataSize();
void
drawBox(
const
char
*icon,
char
marker );
void
drawMultiBox(
const
char
*icon,
const
char
* marker);
virtual
void
getData(
void
*rec );
ushort getHelpCtx();
virtual
TPalette& getPalette()
const
;
virtual
void
handleEvent( TEvent& event );
virtual
Boolean mark(
int
item );
virtual
uchar multiMark(
int
item );
virtual
void
press(
int
item );
virtual
void
movedTo(
int
item );
virtual
void
setData(
void
*rec );
virtual
void
setState( ushort aState, Boolean enable );
virtual
void
setButtonState(uint32_t aMask, Boolean enable);
protected
:
uint32_t value;
uint32_t enableMask;
int
sel;
TStringCollection *strings;
private
:
int
column(
int
item );
int
findSel( TPoint p );
int
row(
int
item );
void
moveSel(
int
,
int
);
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TCluster( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
Boolean buttonState(
int
);
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TCluster& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TCluster*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TCluster& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TCluster* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TCluster
#if defined( Uses_TRadioButtons ) && !defined( __TRadioButtons )
#define __TRadioButtons
class
_FAR TRect;
class
_FAR TSItem;
class
TRadioButtons :
public
TCluster
{
public
:
TRadioButtons(
const
TRect& bounds, TSItem *aStrings )
noexcept
;
virtual
void
draw();
virtual
Boolean mark(
int
item );
virtual
void
movedTo(
int
item );
virtual
void
press(
int
item );
virtual
void
setData(
void
*rec );
private
:
static
const
char
* _NEAR button;
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TRadioButtons( StreamableInit )
noexcept
;
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TRadioButtons& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TRadioButtons*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TRadioButtons& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TRadioButtons* cl )
{
return
os << (TStreamable *)cl; }
inline
TRadioButtons::TRadioButtons(
const
TRect& bounds, TSItem *aStrings )
noexcept
:
TCluster( bounds, aStrings )
{
}
#endif // Uses_TRadioButtons
#if defined( Uses_TCheckBoxes ) && !defined( __TCheckBoxes )
#define __TCheckBoxes
class
_FAR TRect;
class
_FAR TSItem;
class
TCheckBoxes :
public
TCluster
{
public
:
TCheckBoxes(
const
TRect& bounds, TSItem *aStrings)
noexcept
;
virtual
void
draw();
virtual
Boolean mark(
int
item );
virtual
void
press(
int
item );
private
:
static
const
char
* _NEAR button;
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TCheckBoxes( StreamableInit )
noexcept
;
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TCheckBoxes& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TCheckBoxes*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TCheckBoxes& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TCheckBoxes* cl )
{
return
os << (TStreamable *)cl; }
inline
TCheckBoxes::TCheckBoxes(
const
TRect& bounds, TSItem *aStrings)
noexcept
:
TCluster( bounds, aStrings )
{
}
#endif // Uses_TCheckBoxes
#if defined( Uses_TMultiCheckBoxes ) && !defined( __TMultiCheckBoxes )
#define __TMultiCheckBoxes
const
unsigned
short
cfOneBit = 0x0101,
cfTwoBits = 0x0203,
cfFourBits = 0x040F,
cfEightBits = 0x08FF;
class
_FAR TRect;
class
_FAR TSItem;
class
TMultiCheckBoxes :
public
TCluster
{
public
:
TMultiCheckBoxes(TRect&, TSItem*, uchar, ushort,
const
char
*)
noexcept
;
~TMultiCheckBoxes();
virtual
ushort dataSize();
virtual
void
draw();
virtual
void
getData(
void
*);
virtual
uchar multiMark(
int
item);
virtual
void
press(
int
item );
virtual
void
setData(
void
*);
private
:
uchar selRange;
ushort flags;
char
* states;
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TMultiCheckBoxes( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TMultiCheckBoxes& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TMultiCheckBoxes*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TMultiCheckBoxes& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TMultiCheckBoxes* cl )
{
return
os << (TStreamable *)cl; }
#endif
#if defined( Uses_TListBox ) && !defined( __TListBox )
#define __TListBox
class
_FAR TRect;
class
_FAR TScrollBar;
class
_FAR TCollection;
struct
TListBoxRec
{
TCollection *items;
ushort selection;
};
class
TListBox :
public
TListViewer
{
public
:
TListBox(
const
TRect& bounds, ushort aNumCols, TScrollBar *aScrollBar )
noexcept
;
~TListBox();
virtual
ushort dataSize();
virtual
void
getData(
void
*rec );
virtual
void
getText(
char
*dest,
short
item,
short
maxLen );
virtual
void
newList( TCollection *aList );
virtual
void
setData(
void
*rec );
TCollection *list();
private
:
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TCollection *items;
TListBox( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TListBox& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TListBox*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TListBox& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TListBox* cl )
{
return
os << (TStreamable *)cl; }
inline
TCollection *TListBox::list()
{
return
items;
}
#endif // Uses_TListBox
#if defined( Uses_TStaticText ) && !defined( __TStaticText )
#define __TStaticText
class
_FAR TRect;
class
TStaticText :
public
TView
{
public
:
TStaticText(
const
TRect& bounds, TStringView aText )
noexcept
;
~TStaticText();
virtual
void
draw();
virtual
TPalette& getPalette()
const
;
virtual
void
getText(
char
* );
protected
:
const
char
*text;
private
:
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TStaticText( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TStaticText& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TStaticText*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TStaticText& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TStaticText* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TStaticText
#if defined( Uses_TParamText ) && !defined( __TParamText )
#define __TParamText
class
_FAR TRect;
class
TParamText :
public
TStaticText
{
public
:
TParamText(
const
TRect& bounds )
noexcept
;
~TParamText();
virtual
void
getText(
char
*str );
virtual
void
setText(
const
char
*fmt, ... );
virtual
int
getTextLen();
protected
:
char
*str;
private
:
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
TParamText( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TParamText& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TParamText*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TParamText& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TParamText* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TParamText
#if defined( Uses_TLabel ) && !defined( __TLabel )
#define __TLabel
class
_FAR TRect;
struct
_FAR TEvent;
class
_FAR TView;
class
TLabel :
public
TStaticText
{
public
:
TLabel(
const
TRect& bounds, TStringView aText, TView *aLink )
noexcept
;
virtual
void
draw();
virtual
TPalette& getPalette()
const
;
virtual
void
handleEvent( TEvent& event );
virtual
void
shutDown();
protected
:
TView *link;
Boolean light;
private
:
virtual
const
char
*streamableName()
const
{
return
name; }
void
focusLink(TEvent&);
protected
:
TLabel( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, TLabel& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, TLabel*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, TLabel& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, TLabel* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_TLabel
#if defined( Uses_THistoryViewer ) && !defined( __THistoryViewer )
#define __THistoryViewer
class
_FAR TRect;
class
_FAR TScrollBar;
class
THistoryViewer :
public
TListViewer
{
public
:
THistoryViewer(
const
TRect& bounds,
TScrollBar *aHScrollBar,
TScrollBar *aVScrollBar,
ushort aHistoryId
)
noexcept
;
virtual
TPalette& getPalette()
const
;
virtual
void
getText(
char
*dest,
short
item,
short
maxLen );
virtual
void
handleEvent( TEvent& event );
int
historyWidth()
noexcept
;
protected
:
ushort historyId;
};
#endif // Uses_THistoryViewer
#if defined( Uses_THistoryWindow ) && !defined( __THistoryWindow )
#define __THistoryWindow
class
_FAR TListViewer;
class
_FAR TRect;
class
_FAR TWindow;
class
_FAR TInputLine;
class
THistInit
{
public
:
THistInit( TListViewer *(*cListViewer)( TRect, TWindow *, ushort ) )
noexcept
;
protected
:
TListViewer *(*createListViewer)( TRect, TWindow *, ushort );
};
class
THistoryWindow :
public
TWindow,
public
virtual
THistInit
{
public
:
THistoryWindow(
const
TRect& bounds, ushort historyId )
noexcept
;
virtual
TPalette& getPalette()
const
;
virtual
void
getSelection(
char
*dest );
virtual
void
handleEvent( TEvent& event );
static
TListViewer *initViewer( TRect, TWindow *, ushort );
protected
:
TListViewer *viewer;
};
#endif // Uses_THistoryWindow
#if defined( Uses_THistory ) && !defined( __THistory )
#define __THistory
class
_FAR TRect;
class
_FAR TInputLine;
struct
_FAR TEvent;
class
_FAR THistoryWindow;
class
THistory :
public
TView
{
public
:
THistory(
const
TRect& bounds, TInputLine *aLink, ushort aHistoryId )
noexcept
;
virtual
void
draw();
virtual
TPalette& getPalette()
const
;
virtual
void
handleEvent( TEvent& event );
virtual
THistoryWindow *initHistoryWindow(
const
TRect& bounds );
virtual
void
recordHistory(
const
char
*s);
virtual
void
shutDown();
protected
:
TInputLine *link;
ushort historyId;
private
:
static
const
char
* _NEAR icon;
virtual
const
char
*streamableName()
const
{
return
name; }
protected
:
THistory( StreamableInit )
noexcept
;
virtual
void
write( opstream& );
virtual
void
*read( ipstream& );
public
:
static
const
char
*
const
_NEAR name;
static
TStreamable *build();
};
inline
ipstream& operator >> ( ipstream& is, THistory& cl )
{
return
is >> (TStreamable&)cl; }
inline
ipstream& operator >> ( ipstream& is, THistory*& cl )
{
return
is >> (
void
*&)cl; }
inline
opstream& operator << ( opstream& os, THistory& cl )
{
return
os << (TStreamable&)cl; }
inline
opstream& operator << ( opstream& os, THistory* cl )
{
return
os << (TStreamable *)cl; }
#endif // Uses_THistory
#if defined( __BORLANDC__ )
#pragma option -Vo.
#endif
#if defined( __BCOPT__ ) && !defined (__FLAT__)
#pragma option -po.
#endif