From bd157f52bfaf7d8a21382909a38b3c0f72d65154 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 11 Sep 1996 14:31:58 +0000 Subject: [PATCH] Correzioni per impostazione stampante git-svn-id: svn://10.65.10.50/trunk@3565 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/printer.cpp | 55 +++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/include/printer.cpp b/include/printer.cpp index a0022fff3..a2051898d 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -951,11 +951,15 @@ HIDDEN bool set_windows_print_device (TMask_field& f, KEY key) 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_win_formlen(); + WriteProfileString("windows", "device", szOldPrinter); const int MAX_FAMILIES = 128; char* family[MAX_FAMILIES]; @@ -1066,17 +1070,21 @@ TPrinter::TPrinter() char defPrinter[80]; char szDevice[50]; - // get default printer driver - GetProfileString ("windows", "device", ",,,", defPrinter, sizeof(defPrinter)); - TToken_string pdev (defPrinter, ','); - - GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice)); - pdev.add(szDevice); - const TString80 p1(pdev.get(0)); // current printer TToken_string& pn2 = getprinternames(); // get printer names - _curprn = pn2.get_pos(p1); - CHECKS(_curprn >= 0, "Can't find printer ", (const char*)p1); + if (_curprn >= pn2.items()) + { + // get default printer driver + GetProfileString ("windows", "device", ",,,", defPrinter, sizeof(defPrinter)); + TToken_string pdev (defPrinter, ','); + + GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice)); + pdev.add(szDevice); + const TString80 p1(pdev.get(0)); // current printer + _curprn = pn2.get_pos(p1); + } + CHECK(_curprn >= 0, "Can't find printer "); + set_fincatura("+++++++++-|"); #else @@ -1747,8 +1755,8 @@ bool TPrinter::set() #if XVT_OS == XVT_OS_WIN pn2 = getprinternames(); - char old_default[80]; - GetProfileString ("windows", "device", ",,,", old_default, sizeof(old_default)); +// char old_default[80]; +// GetProfileString ("windows", "device", ",,,", old_default, sizeof(old_default)); const int np = pn2.items(); for (i = 0; i < np; i++) @@ -1757,13 +1765,13 @@ bool TPrinter::set() TList_field& plst = (TList_field&)mask.field (MSK_PRINTERS); plst.replace_items(pn1, pn2); // Genera printer list + 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_PRINTERS, _curprn); // Genera font list mask.set(MSK_FONT, _fontname); // Genera size list + 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_SIZE, _ch_size); mask.set(MSK_LINES, _lines_per_inch); mask.set(MSK_ISGRAPHICS, _isgraphics ? "X" : ""); @@ -1777,8 +1785,13 @@ bool TPrinter::set() else mask.set (MSK_TYPE, "0"); - KEY k; - int oldprn = _curprn; + KEY k; + + int oldprn = _curprn; + s_printrcd * rcd = get_printrcd(); + TString oldrcd(_print_rcd_size); + + memcpy((char *) (const char *) oldrcd, rcd, _print_rcd_size); while ((k = mask.run ()) != K_ESC && k != K_ENTER && k != K_INS) { @@ -1804,19 +1817,23 @@ bool TPrinter::set() } } +/* if (k == K_ESC || k == K_ENTER) { // riaggiusta stampante default windows come prima // curprn e rcd sono quelle di prima main_app().enable_menu_item(M_FILE_PG_SETUP); WriteProfileString("windows", "device", old_default); - } + } +*/ if (k == K_ESC) { _curprn = oldprn; - set_printrcd(); +// set_printrcd(); + s_printrcd * rcd = get_printrcd(); + memcpy(rcd, (const char *) oldrcd, _print_rcd_size); set_win_formlen(); - + delete msk; msk = NULL; return FALSE; } @@ -1859,7 +1876,7 @@ bool TPrinter::set() { delete msk; msk = NULL; - } + } return TRUE; }