diff options
Diffstat (limited to 'rhtvision/classes/tindicat.cc')
-rw-r--r-- | rhtvision/classes/tindicat.cc | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/rhtvision/classes/tindicat.cc b/rhtvision/classes/tindicat.cc new file mode 100644 index 0000000..ce23a29 --- /dev/null +++ b/rhtvision/classes/tindicat.cc @@ -0,0 +1,107 @@ +/* + * Turbo Vision - Version 2.0 + * + * Copyright (c) 1994 by Borland International + * All Rights Reserved. + * + +Modified by Robert H”hne to be used for RHIDE. + + * + * + */ +// SET: Moved the standard headers here because according to DJ +// they can inconditionally declare symbols like NULL +#if 0 + #define Uses_strstream +#else + #define Uses_stdio +#endif +#define Uses_string + +#define Uses_TIndicator +#define Uses_TDrawBuffer +#define Uses_TEvent +#define Uses_TView +#define Uses_opstream +#define Uses_ipstream +#define Uses_TIndicator +#define Uses_TStreamableClass +#define Uses_TPalette +#include <tv.h> + +#define cpIndicator "\x02\x03" + +TIndicator::TIndicator( const TRect& bounds ) : + TView( bounds ) +{ + growMode = gfGrowLoY | gfGrowHiY; + location.x = location.y = 1; +} + +void TIndicator::draw() +{ + uchar color, frame; + TDrawBuffer b; + char s[15]; + + if( (state & sfDragging) == 0 ) + { + color = getColor(1); + frame = dragFrame; + } + else + { + color = getColor(2); + frame = normalFrame; + } + + b.moveChar( 0, frame, color, size.x ); + if( modified ) + b.putChar( 0, modifiedStar ); +#if 1 + sprintf(s," %d:%d ",location.y+1,location.x+1); +#else + ostrstream os( s, 15 ); + + os << ' ' << (location.y+1) + << ':' << (location.x+1) << ' ' << ends; +#endif + b.moveCStr( 8-int(strchr(s, ':')-s), s, color); + writeBuf(0, 0, size.x, 1, b); +} + +TPalette& TIndicator::getPalette() const +{ + static TPalette palette( cpIndicator, sizeof( cpIndicator )-1 ); + return palette; +} + +void TIndicator::setState( ushort aState, Boolean enable ) +{ + TView::setState(aState, enable); + if( aState == sfDragging ) + drawView(); +} + +void TIndicator::setValue( const TPoint& aLocation, Boolean aModified ) +{ + if( (location != aLocation) || (modified != aModified) ) + { + location = aLocation; + modified = aModified; + drawView(); + } +} + +#if !defined( NO_STREAM ) +TStreamable *TIndicator::build() +{ + return new TIndicator( streamableInit ); +} + +TIndicator::TIndicator( StreamableInit ) : TView( streamableInit ) +{ +} +#endif // NO_STREAM + |