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
This commit is contained in:
angelo 1997-05-28 12:48:12 +00:00
parent c4a26ad0d5
commit 2e9e8948ec
2 changed files with 31 additions and 5 deletions

View File

@ -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 <mf TPrinter::jump>
{

View File

@ -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]; }