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;
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);