Fine correzione sull' impostazione stampante

git-svn-id: svn://10.65.10.50/trunk@3570 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1996-09-12 11:06:24 +00:00
parent bb0fbf044b
commit 6ff153a4f5

View File

@ -945,24 +945,20 @@ HIDDEN bool set_windows_print_device (TMask_field& f, KEY key)
TPrinter& pr = printer(); TPrinter& pr = printer();
TToken_string& pn = pr.getprinternames ();
TString80 pdev (pn.get(atoi (f.get()))); // Nome stampante corrente
char szDevice[80];
GetProfileString ("devices", pdev, "", szDevice, sizeof (szDevice));
pdev << "," << szDevice;
// scrivi (e semmai lo si risistema poi)
WriteProfileString("windows", "device", pdev);
if (m.is_running()) if (m.is_running())
{ {
TToken_string& pn = pr.getprinternames ();
TString80 pdev (pn.get(atoi (f.get()))); // Nome stampante corrente
char szDevice[80];
GetProfileString ("devices", pdev, "", szDevice, sizeof (szDevice));
pdev << "," << szDevice;
char szOldPrinter[80];
GetProfileString ("windows", "device", ",,,", szOldPrinter, sizeof (szOldPrinter));
// scrivi (e semmai lo si risistema poi)
WriteProfileString("windows", "device", pdev);
pr.set_printrcd(); pr.set_printrcd();
pr.set_win_formlen(); pr.set_win_formlen();
WriteProfileString("windows", "device", szOldPrinter);
} }
const int MAX_FAMILIES = 128; const int MAX_FAMILIES = 128;
@ -1037,6 +1033,8 @@ HIDDEN bool font_handler(TMask_field& f, KEY key)
#endif #endif
HIDDEN char defPrinter[80];
TPrinter::TPrinter() TPrinter::TPrinter()
: _date (TODAY), _multiple_link (FALSE), _frozen (FALSE), _isgraphics (TRUE), : _date (TODAY), _multiple_link (FALSE), _frozen (FALSE), _isgraphics (TRUE),
_lines_per_inch (6), _ch_size (12), _ncopies(1), _export_header(FALSE), _lines_per_inch (6), _ch_size (12), _ncopies(1), _export_header(FALSE),
@ -1071,23 +1069,36 @@ TPrinter::TPrinter()
// xvt_print_open (); // xvt_print_open ();
set_win_formlen (); set_win_formlen ();
char defPrinter[80]; // char szDevice[50];
char szDevice[50]; // get default printer driver
GetProfileString ("windows", "device", ",,,", defPrinter, sizeof(defPrinter));
TToken_string& pn2 = getprinternames(); // get printer names TToken_string& pn2 = getprinternames(); // get printer names
CHECK(_curprn >= 0, "Can't find printer ");
if (_curprn >= pn2.items()) if (_curprn >= pn2.items())
{ {
// get default printer driver
GetProfileString ("windows", "device", ",,,", defPrinter, sizeof(defPrinter));
TToken_string pdev (defPrinter, ','); TToken_string pdev (defPrinter, ',');
GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice)); // GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice));
pdev.add(szDevice); // pdev.add(szDevice);
const TString80 p1(pdev.get(0)); // current printer const TString80 p1(pdev.get(0)); // current printer
_curprn = pn2.get_pos(p1); _curprn = pn2.get_pos(p1);
} }
CHECK(_curprn >= 0, "Can't find printer "); else
{
TString80 pdev(pn2.get(_curprn)); // Nome stampante corrente
char szDevice[80];
GetProfileString ("devices", pdev, "", szDevice, sizeof (szDevice));
pdev << "," << szDevice;
// scrivi (e semmai lo si risistema poi)
WriteProfileString("windows", "device", pdev);
}
set_fincatura("+++++++++-|"); set_fincatura("+++++++++-|");
@ -1306,7 +1317,9 @@ TPrinter::~TPrinter ()
{ {
xvt_print_destroy(_print_rcd); xvt_print_destroy(_print_rcd);
_print_rcd = NULL; _print_rcd = NULL;
} }
WriteProfileString("windows", "device", defPrinter);
// xvt_print_close(); // xvt_print_close();
#endif #endif
} }
@ -1759,8 +1772,8 @@ bool TPrinter::set()
#if XVT_OS == XVT_OS_WIN #if XVT_OS == XVT_OS_WIN
pn2 = getprinternames(); pn2 = getprinternames();
// char old_default[80]; char old_default[80];
// GetProfileString ("windows", "device", ",,,", old_default, sizeof(old_default)); GetProfileString ("windows", "device", ",,,", old_default, sizeof(old_default));
const int np = pn2.items(); const int np = pn2.items();
for (i = 0; i < np; i++) for (i = 0; i < np; i++)
@ -1823,12 +1836,17 @@ bool TPrinter::set()
/* /*
if (k == K_ESC || k == K_ENTER) if (k == K_ESC || k == K_ENTER)
{
*/
if (k == K_ESC)
{ {
// riaggiusta stampante default windows come prima // riaggiusta stampante default windows come prima
// curprn e rcd sono quelle di prima // curprn e rcd sono quelle di prima
main_app().enable_menu_item(M_FILE_PG_SETUP); main_app().enable_menu_item(M_FILE_PG_SETUP);
WriteProfileString("windows", "device", old_default); WriteProfileString("windows", "device", old_default);
} }
/*
}
*/ */
if (k == K_ESC) if (k == K_ESC)
{ {
@ -1837,7 +1855,6 @@ bool TPrinter::set()
s_printrcd * rcd = get_printrcd(); s_printrcd * rcd = get_printrcd();
memcpy(rcd, (const char *) oldrcd, _print_rcd_size); memcpy(rcd, (const char *) oldrcd, _print_rcd_size);
set_win_formlen(); set_win_formlen();
main_app().enable_menu_item (M_FILE_PG_SETUP);
delete msk; delete msk;
return FALSE; return FALSE;
} }
@ -1874,7 +1891,7 @@ bool TPrinter::set()
if (k == K_INS) if (k == K_INS)
save_configuration(); save_configuration();
main_app().enable_menu_item (M_FILE_PG_SETUP); // main_app().enable_menu_item (M_FILE_PG_SETUP);
if (msk) if (msk)
delete msk; delete msk;