#include #include #include #include #include #include #include #include #include #include class T : public Tray { public: T(HBox* hb) : Tray(hb) { output = new Painter(); output->SetColors(nil, new Color("red")); } void SetPattern() { output = new Painter; output->SetPattern(new Pattern(new Bitmap("pdmenu.xbm"))); } }; class HB : public HBox { public: HB(Interactor* i) : HBox(i) { bm = new Bitmap("pdmenu.xbm"); } void SetPattern() { output = new Painter; // output->SetPattern(new Pattern(bm)); output->Stencil(new Canvas(40, 42), 0, 0, new Bitmap("pdmenu.xbm"), 0); } void Redraw(Coord l, Coord b, Coord r, Coord t) { output->SetColors(output->GetBgColor(), output->GetFgColor()); output->Stencil(new Canvas(40, 42), 0, 0, new Bitmap("pdmenu.xbm"), 0); } private: Bitmap* bm; }; class I : public Interactor { public: I() : Interactor() { // canvas = new Canvas(40, 42); bm = new Bitmap("pdmenu.xbm"); } void SetPattern() { output = new Painter; // output->SetPattern(new Pattern(bm)); output->SetColors(output->GetBgColor(), output->GetFgColor()); output->Stencil(canvas, 0, 0, bm, bm); } void Redraw(Coord l, Coord b, Coord r, Coord t) { output->SetColors(output->GetBgColor(), output->GetFgColor()); output->Stencil(canvas, 0, 0, bm, nil); } private: Bitmap* bm; }; main() { World* w = new World; I* i = new I(); HBox* h = new HBox(i); T* t = new T(h); Shape s; w->InsertApplication(t); s.Rect(40, 42); w->Reshape(s); w->Run(); }