From 7aefa86e9a10046c33fa16c031160f80d24b8ab7 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 12 Sep 1997 09:34:08 +0000 Subject: [PATCH] Corretta gestione font registrato su file di configurazione git-svn-id: svn://10.65.10.50/trunk@5193 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/printer.cpp | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/include/printer.cpp b/include/printer.cpp index 317783775..3d837d008 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -271,7 +271,7 @@ HIDDEN int read_int (const char *s, int &n, int &cnt) } -void TPrinter::parse_background(const char* bg_desc, TArray& background) +void TPrinter::parse_background(const char* bg_desc, TString_array& background) { TString_array pix; char op, ch; @@ -391,7 +391,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) { if (background.objptr(l) == NULL) // Se la riga non esiste creala { - TString* r = new TString(15); + TToken_string* r = new TToken_string(15); if (curcol != 'n') *r << 'C' << curcol; // Setta valori se diversi da default if (curpat != 'n') *r << 'B' << curpat; if (curwid != '1') *r << 'W' << curwid; @@ -399,7 +399,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) background.add(r, l); } - TString& rwd = (TString&)background[l]; + TString& rwd = background.row(l); for (int j = 0; j < pix.items(); j++) { TToken_string& tt = pix.row(j); @@ -508,12 +508,11 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background) } } -void TPrinter::setbackground(const char *b) +void TPrinter::setbackground(const char* b) { _background.destroy(); - _bg_desc = b; - if (b != NULL) - parse_background(_bg_desc, _background); + if (b && *b) + parse_background(b, _background); } bool printers_on_key(TMask_field & f, KEY key); @@ -1004,15 +1003,12 @@ HIDDEN bool font_handler(TMask_field& f, KEY key) const int num_sizes = (int)xvt_fmap_get_family_sizes(printer().get_printrcd(), (char*)family, sizes, &scalable, MAXSIZES); - TToken_string pn1(80), pn2(80); + TToken_string pn1(80); if (scalable) { for (int i = 4; i <= 32; i++) - { pn1.add(i); - pn2.add(i); - } } else { @@ -1022,10 +1018,10 @@ HIDDEN bool font_handler(TMask_field& f, KEY key) pn1.add(sizes[i]); } else pn1.add(printer().get_char_size()); - pn2 = pn1; } + TList_field& lst = (TList_field&)f.mask().field(MSK_SIZE); - lst.replace_items(pn1, pn2); + lst.replace_items(pn1, pn1); lst.set(format("%d", printer().get_char_size())); } return TRUE; @@ -1562,13 +1558,15 @@ bool TPrinter::print( bool TPrinter::printheader() { if (_headerhandler) - _headerhandler (*this); + _headerhandler(*this); bool ok = TRUE; for (int i = 0; i < _headersize && ok; i++) ok = printrow(getheaderline(i)); - _currentrow = _headersize + 1; +// _currentrow = _headersize + 1; + _currentrow = i+1; + return ok; } @@ -1607,7 +1605,8 @@ void TPrinter::set_fink_mode( // in modo testo. { _fink_mode = f; - if (_fink_mode && (is_generic() || !_isgraphics)) _fink_mode = FALSE; + if (_fink_mode && (is_generic() || !_isgraphics)) + _fink_mode = FALSE; } // @doc EXTERNAL @@ -1827,13 +1826,16 @@ bool TPrinter::set() mask.set(MSK_PRINTERS, _curprn); // Genera font list set_windows_print_device(mask.field(MSK_PRINTERS), K_TAB); - font_handler(mask.field(MSK_FONT),K_TAB); + mask.set(MSK_FONT, _fontname); // Genera size list + font_handler(mask.field(MSK_FONT),K_TAB); + mask.set(MSK_SIZE, _ch_size); - mask.set_handler (MSK_PRINTERS, set_windows_print_device); - mask.set_handler (MSK_FONT, font_handler); mask.set(MSK_LINES, _lines_per_inch); mask.set(MSK_ISGRAPHICS, _isgraphics ? "X" : ""); + + mask.set_handler (MSK_PRINTERS, set_windows_print_device); + mask.set_handler (MSK_FONT, font_handler); if (!_multiple_copies) mask.hide(MSK_NPAGES);