Corretta gestione font registrato su file di configurazione

git-svn-id: svn://10.65.10.50/trunk@5193 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1997-09-12 09:34:08 +00:00
parent 2f7b0f744b
commit 7aefa86e9a

View File

@ -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; TString_array pix;
char op, ch; 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 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 (curcol != 'n') *r << 'C' << curcol; // Setta valori se diversi da default
if (curpat != 'n') *r << 'B' << curpat; if (curpat != 'n') *r << 'B' << curpat;
if (curwid != '1') *r << 'W' << curwid; if (curwid != '1') *r << 'W' << curwid;
@ -399,7 +399,7 @@ void TPrinter::parse_background(const char* bg_desc, TArray& background)
background.add(r, l); background.add(r, l);
} }
TString& rwd = (TString&)background[l]; TString& rwd = background.row(l);
for (int j = 0; j < pix.items(); j++) for (int j = 0; j < pix.items(); j++)
{ {
TToken_string& tt = pix.row(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(); _background.destroy();
_bg_desc = b; if (b && *b)
if (b != NULL) parse_background(b, _background);
parse_background(_bg_desc, _background);
} }
bool printers_on_key(TMask_field & f, KEY key); 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(), const int num_sizes = (int)xvt_fmap_get_family_sizes(printer().get_printrcd(),
(char*)family, sizes, &scalable, MAXSIZES); (char*)family, sizes, &scalable, MAXSIZES);
TToken_string pn1(80), pn2(80); TToken_string pn1(80);
if (scalable) if (scalable)
{ {
for (int i = 4; i <= 32; i++) for (int i = 4; i <= 32; i++)
{
pn1.add(i); pn1.add(i);
pn2.add(i);
}
} }
else else
{ {
@ -1022,10 +1018,10 @@ HIDDEN bool font_handler(TMask_field& f, KEY key)
pn1.add(sizes[i]); pn1.add(sizes[i]);
} }
else pn1.add(printer().get_char_size()); else pn1.add(printer().get_char_size());
pn2 = pn1;
} }
TList_field& lst = (TList_field&)f.mask().field(MSK_SIZE); 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())); lst.set(format("%d", printer().get_char_size()));
} }
return TRUE; return TRUE;
@ -1562,13 +1558,15 @@ bool TPrinter::print(
bool TPrinter::printheader() bool TPrinter::printheader()
{ {
if (_headerhandler) if (_headerhandler)
_headerhandler (*this); _headerhandler(*this);
bool ok = TRUE; bool ok = TRUE;
for (int i = 0; i < _headersize && ok; i++) for (int i = 0; i < _headersize && ok; i++)
ok = printrow(getheaderline(i)); ok = printrow(getheaderline(i));
_currentrow = _headersize + 1; // _currentrow = _headersize + 1;
_currentrow = i+1;
return ok; return ok;
} }
@ -1607,7 +1605,8 @@ void TPrinter::set_fink_mode(
// in modo testo. // in modo testo.
{ {
_fink_mode = f; _fink_mode = f;
if (_fink_mode && (is_generic() || !_isgraphics)) _fink_mode = FALSE; if (_fink_mode && (is_generic() || !_isgraphics))
_fink_mode = FALSE;
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -1827,13 +1826,16 @@ bool TPrinter::set()
mask.set(MSK_PRINTERS, _curprn); // Genera font list mask.set(MSK_PRINTERS, _curprn); // Genera font list
set_windows_print_device(mask.field(MSK_PRINTERS), K_TAB); 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 mask.set(MSK_FONT, _fontname); // Genera size list
font_handler(mask.field(MSK_FONT),K_TAB);
mask.set(MSK_SIZE, _ch_size); 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_LINES, _lines_per_inch);
mask.set(MSK_ISGRAPHICS, _isgraphics ? "X" : ""); 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) if (!_multiple_copies)
mask.hide(MSK_NPAGES); mask.hide(MSK_NPAGES);