#define Uses_TView
#define Uses_TWindow
#define Uses_TPalette
#define Uses_TDrawBuffer
#include <tv.h>
#include "palette.h" // Class definitions for
#include <stdio.h> // For sprintf()
#define cpTestView "\x9\xA\xB\xC\xD\xE" // SIX colors available
TTestView::TTestView( TRect& r ) : TView( r )
{
}
void
TTestView::draw()
{
TDrawBuffer buf;
char
textAttr, text[128];
for
(
int
i = 1; i <= 6; i++)
{
textAttr = getColor( i );
sprintf
(text,
" This line uses index %02X, color is %02X "
, i, textAttr);
buf.moveStr(0, text, textAttr);
writeLine(0, i-1, size.x, i, buf);
}
buf.moveStr(0,
" This line bypasses the palettes! "
, 5);
writeLine(0, 6, size.x, 7, buf);
}
TPalette& TTestView::getPalette()
const
{
static
TPalette palette( cpTestView,
sizeof
(cpTestView)-1 );
return
palette;
}
#define cpTestWindow "\x88\x89\x8A\x8B\x8C\x8D"
#define cpBlueWindow "\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F"
#define cpCyanWindow "\x10\x11\x12\x13\x14\x15\x16\x17"
#define cpGrayWindow "\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"
TTestWindow::TTestWindow() :
TWindowInit( initFrame ),
TWindow( TRect(0, 0, TEST_WIDTH, TEST_HEIGHT), 0, wnNoNumber )
{
TRect r = getExtent();
r.grow(-2, -2);
insert(
new
TTestView(r) );
options |= ofCentered;
flags = wfMove | wfClose;
}
TPalette& TTestWindow::getPalette()
const
{
static
TPalette blue( cpBlueWindow cpTestWindow,
sizeof
( cpBlueWindow cpTestWindow )-1
);
static
TPalette cyan( cpCyanWindow cpTestWindow,
sizeof
( cpCyanWindow cpTestWindow )-1
);
static
TPalette gray( cpGrayWindow cpTestWindow,
sizeof
( cpGrayWindow cpTestWindow )-1
);
static
TPalette *palettes[] = { &blue, &cyan, &gray };
return
*(palettes[palette]);
}