#ifndef __PRINTWIN_H #define __PRINTWIN_H #ifndef __WINDOW_H #include #endif #ifndef __ARRAY_H #include #endif #ifndef __TEXT_H #include #endif // Implementazione di una finestra XVT per la stampa: scrivendoci su tutto l'output // va sulla stampante corrente. Usata direttamente da TPrinter. class TPrintwin : public TWindow { bool _aborted; // stampa abortita PRINT_RCD* _printrcd; // record di stampa XVT int _formlen; // indovina int _formwidth; // indovina TArray* _bg; // l'intero background della pagina (vedi TPrintapp) TTextfile& _txt; // il TText da stampare TArray _images; // bitmaps da stampare sotto al testo // un'orrenda quantita' di dettagli relativi ai font e alle loro dimensioni int _lead, _ascent, _descent; int _hofs, _vofs; int _chary; int _char_size; // tutto ok per stampare bool _inited; // pitta lo sfondo della riga j void paint_background(long j); // pitta la riga j void paint_row(long j); // pitta la fetta di finestra che XVT gli lascia pittare per la pagina data // (dipende dal driver, ma di solito pitta l'intera pagina) bool print_band(int page, RCT&); public: // check if aborted; also returned by do_print bool aborted() const { return _aborted; } // starts printing; FALSE if aborted; when possible starts concurrent thread // (not possible in WIN 3.1) bool do_print(); TPrintwin(TTextfile& txt); virtual ~TPrintwin(); }; #endif