From 2e9e8948ec4b63fd66dc5d18d37d1a5523675e3a Mon Sep 17 00:00:00 2001 From: angelo Date: Wed, 28 May 1997 12:48:12 +0000 Subject: [PATCH] Correzione MI3381. Aggiunti i metodi get_fink_mode() e set_fink_mode(), per settare il tipo di fincatura sulla stampante. E' stato introdotto un flag aggiuntivo, _fink_mode, per la stampa delle linee (fincatura nel caso degli EC/solleciti), per non alterare i valori di _isgraphics. E' quindi ora possibile fare le linee in modo testo indipendentemente dal settaggio di _isgraphics. Ovviamente se _isgraphics non e' settato le linee eventualmente tracciate in modo grafico saranno fatte in modo testo. git-svn-id: svn://10.65.10.50/trunk@4437 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/printer.cpp | 28 +++++++++++++++++++++++----- include/printer.h | 8 ++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/include/printer.cpp b/include/printer.cpp index 9c6b92b8e..d18b6e7b8 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -283,7 +283,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) TToken_string tt; TFilename bmp; - if (!_isgraphics && _finker == NULL) + if (!_fink_mode && _finker == NULL) _finker = new TPrint_intersector(_fink, _formlen); else if (_finker) _finker->clear(); @@ -334,7 +334,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) read_int (bg_desc, x2, cnt); read_int (bg_desc, y2, cnt); cnt++; // skip separator - if (_isgraphics) + if (_isgraphics && _fink_mode) { tt << op; tt.add (x1 - 1); @@ -1109,8 +1109,8 @@ TPrinter::TPrinter() #else _isgraphics = FALSE; #endif - - _finker = _isgraphics ? NULL : new TPrint_intersector(_fink, _formlen); + set_fink_mode(TRUE); + _finker = _isgraphics && _fink_mode ? NULL : new TPrint_intersector(_fink, _formlen); } bool TPrinter::isfax() const @@ -1591,6 +1591,24 @@ bool TPrinter::printfooter() // @doc EXTERNAL +// @mfunc Permette di settare il tipo di fincatura +void TPrinter::set_fink_mode( + bool f) // @parm Indica il tipo di fincatura: + // + // @flag TRUE | Fincatura di tipo grafico + // @flag FALSE | Fincatura di tipo testo + + // @comm Viene prima controllato che la stampante supporti la modalita' grafica, + // in tal caso, se viene impostato il flag a TRUE e la stampante e' generica + // oppure non ha il flag di stampa elementi grafici attivato, la fincatura sara' + // in modo testo. +{ + _fink_mode = f; + if (_fink_mode && (is_generic() || !_isgraphics)) _fink_mode = FALSE; +} + +// @doc EXTERNAL + // @mfunc Permette di saltare alcune righe dalla posizione corrente // // @rdesc Ritorna il risulato dell'operazione: @@ -1598,7 +1616,7 @@ bool TPrinter::printfooter() // @flag TRUE | Se e' riuscito a saltare le righe // @flag FALSE | Se non e' riuscito a saltare le righe bool TPrinter::skip( - int linestoskip) // @parm Vengono accettai solo valori positivi + int linestoskip) // @parm Vengono accettati solo valori positivi // @xref { diff --git a/include/printer.h b/include/printer.h index 9d17278ba..3e9ceccc5 100755 --- a/include/printer.h +++ b/include/printer.h @@ -351,6 +351,9 @@ class TPrinter : public TObject // @cmember:(INTERNAL) Caratteri per fincatura char _fink[11]; + // @cmember:(INTERNAL) Tipo di fincatura (TRUE grafica, FALSE testo) + bool _fink_mode; + // @cmember:(INTERNAL) Fincatore per modo testo TPrint_intersector* _finker; @@ -531,6 +534,11 @@ public: void set_fincatura(const char* s) { strncpy(_fink, s, sizeof(_fink)); } + // @cmember Setta/forza il tipo di fincatura + void set_fink_mode(bool f) ; + // @cmember Ritorna il tipo di fincatura + bool get_fink_mode() { return _fink_mode; } + // @cmember Ritorna il carattere di fincatura alto-sinistra char f_topleft() const { return _fink[0]; }