/* * display a sample of a named Font */ #include "fontsample.h" #include #include #include #include #include static const int BufferSize = 1000; FontSample::FontSample(const char* sample) : () { Init(sample); } FontSample::FontSample(const char* name, const char* sample) : () { SetInstance(name); Init(sample); } FontSample::~FontSample () { delete sample; delete fontname; delete font; } void FontSample::Init (const char* samp) { SetClassName("FontSample"); font = nil; fontname = new char [BufferSize]; sample = new char [BufferSize]; strcpy(sample, samp); } void FontSample::Reconfig () { Painter* tmp = new Painter(output); Unref(output); output = tmp; output->Reference(); output->SetFont(font); Interactor::Reconfig(); shape->Rect(font->Width(sample), font->Height()); shape->Rigid(hfil, hfil, 0, 0); } void FontSample::Redraw (Coord l, Coord b, Coord r, Coord t) { output->ClearRect(canvas, l, b, r, t); output->Text(canvas, sample, 0, 0); } void FontSample::ShowFont (const char* name) { if (strcmp(name, fontname) != 0) { strcpy(fontname, name); //Unref(font); font = new Font(fontname); font->Reference(); if (output != nil) { if (font->Valid()) { output->FillBg(true); output->SetPattern(solid); Reconfig(); } else { output->FillBg(false); output->SetPattern(gray); } Draw(); } } }