Patch level : 500

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

AO20063
Su Win98 se scelgo una stampante Generica / solo testo come dimensione
carattere mi riporta solo 0.


git-svn-id: svn://10.65.10.50/trunk@11238 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-06-18 08:05:42 +00:00
parent 7a2dca9d28
commit 18ef8c0a4d
6 changed files with 311 additions and 261 deletions

View File

@ -7,35 +7,17 @@ BEGIN
PROMPT 2 1 "Stampa su..."
HELP "Selezionare il tipo dove direzionare la stampa"
ITEM "0|Stampante"
MESSAGE HIDE,MSK_FILENAME
MESSAGE SHOW,MSK_PRINTERS|ENABLE,MSK_PRINTERS
MESSAGE ENABLE,MSK_SIZE
MESSAGE ENABLE,MSK_LINES
MESSAGE ENABLE,MSK_FONT
MESSAGE ENABLE,DLG_SETPRINT
MESSAGE SHOW,MSK_PRINTERS|HIDE,MSK_FILENAME
ITEM "2|Visualizzazione"
MESSAGE HIDE,MSK_FILENAME
MESSAGE SHOW,MSK_PRINTERS|DISABLE,MSK_PRINTERS
MESSAGE DISABLE,MSK_SIZE
MESSAGE DISABLE,MSK_LINES
MESSAGE DISABLE,MSK_FONT
MESSAGE DISABLE,DLG_SETPRINT
MESSAGE SHOW,MSK_PRINTERS|HIDE,MSK_FILENAME
ITEM "1|File su disco"
MESSAGE SHOW,MSK_FILENAME
MESSAGE HIDE,MSK_PRINTERS
MESSAGE DISABLE,MSK_SIZE
MESSAGE DISABLE,MSK_LINES
MESSAGE DISABLE,MSK_FONT
MESSAGE DISABLE,DLG_SETPRINT
MESSAGE HIDE,MSK_PRINTERS|SHOW,MSK_FILENAME
FLAGS "Z"
END
LIST MSK_PRINTERS 50
BEGIN
/* viene riempito a run-time con nomi letti da config */
PROMPT 4 5 "Stampante "
HELP "Selezionare il tipo di stampante desiderata"
FLAGS "G"
END
STRING MSK_FILENAME 52
@ -44,14 +26,12 @@ BEGIN
CHECKTYPE REQUIRED
VALIDATE FILENAME_FUNC
FLAGS "A"
HELP "Nome del file in cui memorizzare la stampa"
WARNING "E' necessario specificare un nome di file"
END
LIST MSK_FONT 32
BEGIN
PROMPT 4 6 "Font "
HELP "Font di stampa su video o stampante"
ITEM "Courier|Courier"
END
@ -59,7 +39,6 @@ LIST MSK_SIZE 3
BEGIN
PROMPT 53 6 "Carattere "
ITEM "10|10"
HELP "Dimensioni del carattere di stampa"
END
LIST MSK_LINES 3
@ -72,20 +51,16 @@ BEGIN
ITEM "8|8"
ITEM "9|9"
ITEM "10|10"
HELP "Numero di linee per pollice"
END
BOOLEAN MSK_ISGRAPHICS
BEGIN
PROMPT 4 8 "Stampa elementi grafici"
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
END
BUTTON DLG_SETPRINT 10 2
BEGIN
PROMPT -14 -1 "~Imposta"
HELP "Chiama l'Impostazione Stampante di Windows"
MESSAGE EXIT,DLG_SETPRINT
PICTURE 165
END

View File

@ -1979,18 +1979,19 @@ void TDropDownList::close()
if (_open)
{
_open = FALSE;
if (_xi_lst)
{
if (_xi_lst != NULL)
xvt_vobj_set_visible((WINDOW)xi_get_window(_xi_lst->itf), FALSE);
xvt_dwin_update((WINDOW)xi_get_window(_obj->itf));
}
}
}
void TDropDownList::destroy()
{
_xi_lst = NULL;
_open = FALSE;
close();
if (_xi_lst != NULL)
{
xvt_vobj_destroy((WINDOW)xi_get_window(_xi_lst->itf));
_xi_lst = NULL;
}
}
bool TDropDownList::select(int i, bool force)
@ -2071,8 +2072,14 @@ bool TDropDownList::select_by_ofs(int i)
void TDropDownList::set_values(const char* c, const char* v)
{
const int old_items = _codes.items();
_codes = c;
_values = v;
const int new_items = _codes.items();
if (new_items != old_items && _xi_lst != NULL)
destroy();
}
int TDropDownList::calc_min_width()
@ -2089,7 +2096,8 @@ int TDropDownList::calc_min_width()
void TDropDownList::create()
{
if (_xi_lst) return;
if (_xi_lst != NULL)
return;
XI_OBJ_DEF* itfdef = xi_create_itf_def(ITF_CID+1, (XI_EVENT_HANDLER)ddl_str_eh, NULL, "",
(long)this);
@ -2183,13 +2191,13 @@ void TDropDownList::create()
void TDropDownList::open()
{
if (_xi_lst)
if (_open)
return;
if (_xi_lst != NULL)
xvt_vobj_set_visible((WINDOW)xi_get_window(_xi_lst->itf), TRUE);
else
create();
if (_open)
return;
_open = TRUE;
xi_cell_request(_xi_lst);

View File

@ -323,7 +323,6 @@ public:
virtual ~TDropDownList();
};
class TListbox_control : public TField_control
{
TDropDownList* _ddl;

View File

@ -1,3 +1,5 @@
#include <limits.h>
#define XI_INTERNAL
#include <xinclude.h>
@ -6,7 +8,6 @@ extern "C"
#include <xiutils.h>
}
#include <limits.h>
#include <colors.h>
#include <config.h>
#include <controls.h>
@ -1068,7 +1069,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
case CLASS_LIST_FIELD:
break; // Leave code as is
case CLASS_BOOLEAN_FIELD:
if (*src == ' ')
if (*src <= ' ')
xiev->v.cell_request.icon_rid = ICO_CHECK_OFF;
else
xiev->v.cell_request.icon_rid = ICO_CHECK_ON;

View File

@ -1,7 +1,7 @@
#include <applicat.h>
#include <automask.h>
#include <config.h>
#include <golem.h>
#include <mask.h>
#include <printer.h>
#include <printwin.h>
#include <urldefid.h>
@ -15,6 +15,202 @@
HIDDEN TPrinter* _printer = NULL;
///////////////////////////////////////////////////////////
// Maschera impostazione stampante (fatta come si deve dopo 10 anni!)
///////////////////////////////////////////////////////////
class TPrinter_setup_mask : public TAutomask
{
private:
bool _skip_events;
TString _pdev, _font;
PRINT_RCD* _pcd;
int _pcd_size;
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
void fill_font_list();
void fill_size_list();
public:
void set_print_rcd(PRINT_RCD* pcd, int size);
PRINT_RCD* get_print_rcd(int& size) const;
TPrinter_setup_mask();
virtual ~TPrinter_setup_mask();
};
void TPrinter_setup_mask::set_print_rcd(PRINT_RCD* pcd, int size)
{
_pcd = pcd;
_pcd_size = size;
_pdev = ((const char*)pcd)+4;
}
PRINT_RCD* TPrinter_setup_mask::get_print_rcd(int& size) const
{
size = _pcd_size;
return _pcd;
}
void TPrinter_setup_mask::fill_font_list()
{
const int MAX_FAMILIES = 128;
char* family[MAX_FAMILIES];
const int num_families = (int)xvt_fmap_get_families(_pcd, family, MAX_FAMILIES);
TToken_string fn(256);
for (int i = 0; i < num_families; i++)
{
fn.add(family[i]);
xvt_mem_free(family[i]);
}
TList_field& lst = (TList_field&)field(MSK_FONT);
lst.replace_items(fn, fn);
set(MSK_FONT, _font, 0x1);
}
void TPrinter_setup_mask::fill_size_list()
{
const int MAXSIZES = 16;
long sizes[MAXSIZES];
BOOLEAN scalable;
const int num_sizes = (int)xvt_fmap_get_family_sizes(_pcd, _font.get_buffer(), sizes, &scalable, MAXSIZES);
TToken_string pn1;
if (scalable)
{
for (int i = 4; i <= 32; i++)
pn1.add(i);
}
else
{
if (num_sizes > 0)
{
for (int i = 0; i < num_sizes; i++)
pn1.add(sizes[i]);
}
else
pn1.add(printer().get_char_size()); // semper better than nothing
}
TList_field& lst = (TList_field&)field(MSK_SIZE);
const TString8 old_size = lst.get();
lst.replace_items(pn1, pn1);
lst.set(old_size);
}
bool TPrinter_setup_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
if (_skip_events)
return TRUE;
switch (o.dlg())
{
case MSK_PRINTERS:
if (fe_modify)
{
const TString& pdev = o.get(); // Nome stampante corrente
if (pdev != _pdev)
{
TWait_cursor hourglass;
if (_pcd != NULL)
xvt_print_destroy(_pcd);
_pcd = xvt_print_create_by_name(&_pcd_size, pdev);
_pdev = pdev;
fill_font_list();
}
}
break;
case MSK_FONT:
if (e == fe_modify)
{
TWait_cursor hourglass;
const TString& family = o.get();
if (_font != family)
{
_font = family;
fill_size_list();
}
}
break;
case DLG_SETPRINT:
if (e == fe_button)
{
if (xvt_dm_post_page_setup(_pcd))
{
// see if user has changed printer
// determine index of currently selected printer
// ACTHUNG! Deep hacking of XVT internals! NON PORTABLE!
const char* name = (const char *)(_pcd) + 4;
set(MSK_PRINTERS, name, 0x1);
}
}
break;
default:
break;
}
return TRUE;
}
TPrinter_setup_mask::TPrinter_setup_mask()
: TAutomask("bagn001a")
{
TPrinter& pr = printer();
set(MSK_FILENAME, pr.get_printerfile());
const bool can_save = pr._config == "Printer";
enable(DLG_OK, can_save);
set_print_rcd(pr._print_rcd, pr._print_rcd_size);
// Crea la lista delle stampanti
TToken_string pn2;
SLIST plist = xvt_print_list_devices();
for (SLIST_ELT pitem = xvt_slist_get_first(plist);
pitem != NULL; pitem = xvt_slist_get_next(plist, pitem))
{
const char* pname = xvt_slist_get(plist, pitem, NULL);
pn2.add(pname);
}
xvt_slist_destroy(plist);
_skip_events = TRUE;
TList_field& plst = (TList_field&)field (MSK_PRINTERS);
plst.replace_items(pn2, pn2); // Genera printer list
set(MSK_PRINTERS, pr._prname); // Genera font e size list
set(MSK_FONT, _font = pr._fontname);
set(MSK_SIZE, pr._ch_size);
set(MSK_LINES, pr._lines_per_inch);
set(MSK_ISGRAPHICS, pr._isgraphics ? "X" : "");
if (pr._printertype == fileprinter)
set (MSK_TYPE, "1");
else if (pr._printertype == screenvis)
set(MSK_TYPE, "2");
else
set(MSK_TYPE, "0");
fill_font_list();
fill_size_list();
_skip_events = FALSE;
}
TPrinter_setup_mask::~TPrinter_setup_mask()
{
}
///////////////////////////////////////////////////////////
// TPrinter
///////////////////////////////////////////////////////////
TPrinter& printer()
{
if (_printer == NULL)
@ -869,11 +1065,29 @@ TPrintrow& TPrintrow::put(const char *str, int position, int len)
void TPrinter::set_printrcd()
{
if (_print_rcd != NULL)
{
xvt_print_destroy(_print_rcd);
_print_rcd = xvt_print_create(&_print_rcd_size);
if (!xvt_print_is_valid(_print_rcd))
error_box("Errore di inizializzazione della stampante");
_print_rcd = NULL;
_print_rcd_size = 0;
}
bool ok = false;
if (_prname.not_empty())
{
_print_rcd = xvt_print_create_by_name(&_print_rcd_size, _prname);
ok = xvt_print_is_valid(_print_rcd) != 0;
if (!ok)
error_box(FR("Errore di inizializzazione della stampante %s"), (const char*)_prname);
}
if (!ok)
{
_print_rcd = xvt_print_create(&_print_rcd_size);
ok = xvt_print_is_valid(_print_rcd) != 0;
if (ok)
_prname = ((const char*)_print_rcd)+4;
else
error_box(TR("Errore di inizializzazione della stampante corrente"));
}
}
PRINT_RCD* TPrinter::get_printrcd(int *size)
@ -933,82 +1147,6 @@ void TPrinter::init_formlen(
}
}
// Handler della maschera di setup
HIDDEN bool set_windows_print_device (TMask_field& f, KEY key)
{
TMask& m = f.mask();
if (key == K_TAB && (f.focusdirty() || !m.is_running()))
{
TWait_cursor hourglass;
TPrinter& pr = printer();
const TString& pdev = f.get(); // Nome stampante corrente
xvt_print_set_default_device(pdev);
if (m.is_running())
{
pr.set_printrcd();
pr.init_formlen();
}
const int MAX_FAMILIES = 128;
char* family[MAX_FAMILIES];
const int num_families = (int)xvt_fmap_get_families(pr.get_printrcd(), family, MAX_FAMILIES);
TToken_string fn(256);
for (int i = 0; i < num_families; i++)
{
fn.add(family[i]);
xvt_mem_free(family[i]);
}
TList_field& lst = (TList_field&)m.field(MSK_FONT);
lst.replace_items(fn, fn);
m.set(MSK_FONT, printer().fontname(), TRUE);
}
return TRUE;
}
HIDDEN bool font_handler(TMask_field& f, KEY key)
{
TMask& m = f.mask();
if (key == K_TAB && (f.focusdirty() || !m.is_running()))
{
TWait_cursor hourglass;
const char* family = f.get();
const int MAXSIZES = 16;
long sizes[MAXSIZES];
BOOLEAN scalable;
const int num_sizes = (int)xvt_fmap_get_family_sizes(printer().get_printrcd(),
(char*)family, sizes, &scalable, MAXSIZES);
TToken_string pn1(80);
if (scalable)
{
for (int i = 4; i <= 32; i++)
pn1.add(i);
}
else
{
if (num_sizes > 0)
{
for (int i = 0; i < num_sizes; i++)
pn1.add(sizes[i]);
}
else pn1.add(printer().get_char_size());
}
TList_field& lst = (TList_field&)f.mask().field(MSK_SIZE);
lst.replace_items(pn1, pn1);
lst.set(format("%d", printer().get_char_size()));
}
return TRUE;
}
TPrinter::TPrinter()
: _date (TODAY), _multiple_link (FALSE), _frozen (FALSE), _isgraphics (TRUE),
_lines_per_inch (6), _ch_size (12), _export_header(FALSE),
@ -1032,7 +1170,7 @@ TPrinter::TPrinter()
_footersize = 0;
_isopen = FALSE;
xvt_print_get_default_device(_defPrinter.get_buffer(), _defPrinter.size());
// xvt_print_get_default_device(_defPrinter.get_buffer(), _defPrinter.size());
// read configuration file
read_configuration ();
@ -1076,7 +1214,7 @@ void TPrinter::read_configuration(
_prname = iniptr->get("Name", NULL, -1, _defPrinter); // Nome stampante corrente
_printerfile = iniptr->get("File", NULL, -1, ""); // File di stampa
_fontname = iniptr->get("Font", NULL, -1, XVT_FFN_FIXED); // Nome del font
_ch_size = iniptr->get_int("Size", NULL, -1, 12); // Dimensione del font
_ch_size = iniptr->get_int("Size", NULL, -1, 10); // Dimensione del font
_lines_per_inch = iniptr->get_int("Lines", NULL, -1, 6); // Linee per pollice
_isgraphics = iniptr->get_bool("Graphic", NULL, -1, TRUE); // Grafica attiva
@ -1089,8 +1227,16 @@ void TPrinter::read_configuration(
xvt_sys_get_host_name(hostname, sizeof(hostname));
read_rcd = (host == hostname); // Safe to read
if (!read_rcd)
read_rcd = yesno_box("Le impostazioni della stampante sono relative alla stazione di lavoro %s:\n"
"si desidera applicarle ugualmente alla stazione %s?", (const char*)host, hostname);
{
read_rcd = yesno_box(FR("Attenzione: le impostazioni della stampante sono relative alla stazione di lavoro %s.\n"
"Si desidera utilizzarle ugualmente sulla stazione %s?"), (const char*)host, hostname);
if (!read_rcd)
{
// Forza la lettura parametri della stampante di default
_prname.cut(0);
set_printrcd();
}
}
}
if (read_rcd)
@ -1099,7 +1245,7 @@ void TPrinter::read_configuration(
xvt_print_destroy(_print_rcd);
_print_rcd = xvt_print_create_by_name(&_print_rcd_size, _prname);
if (_print_rcd != NULL && iniptr->exist("rcd", 0))
if (xvt_print_is_valid(_print_rcd) && iniptr->exist("rcd", 0))
{
TToken_string s(256);
int i = 0;
@ -1139,24 +1285,15 @@ void TPrinter::read_configuration(
}
if (_config == "Printer" || _printertype == winprinter)
{
switch (what)
{
case 0:
case 5:
_printertype = winprinter;
break;
case 1: // file
_printertype = fileprinter;
break;
case 4: // video
_printertype = screenvis;
break;
case 6: // export
_printertype = export;
break;
default:
break;
case 1: _printertype = fileprinter; break;
case 2: _printertype = screenvis; break;
case 3: _printertype = export; break;
default: _printertype = winprinter; break;
}
}
}
@ -1175,12 +1312,10 @@ void TPrinter::save_configuration()
prini.set("Lines", _lines_per_inch); // Linee per pollice
prini.set("Graphic", _isgraphics ? "X" : ""); // Grafica attiva
#ifdef XVAGA
char hostname[80];
xvt_sys_get_host_name(hostname, sizeof(hostname));
prini.set("Host", hostname);
prini.set("User", user());
#endif
int n = 0, index = 0;
TToken_string val(256);
@ -1211,7 +1346,7 @@ TPrinter::~TPrinter ()
xvt_print_destroy(_print_rcd);
_print_rcd = NULL;
}
xvt_print_set_default_device(_defPrinter);
// xvt_print_set_default_device(_defPrinter);
}
const char* TPrinter::class_name() const
@ -1532,7 +1667,7 @@ void TPrinter::reset()
bool TPrinter::open()
{
xvt_print_set_default_device(_prname);
// xvt_print_set_default_device(_prname);
if (_printertype == screenvis)
{
@ -1557,122 +1692,56 @@ bool TPrinter::open()
return _isopen = TRUE;
}
bool TPrinter::set()
{
main_app().disable_menu_item (M_FILE_PG_SETUP);
TMask mask("bagn001a");
mask.set(MSK_FILENAME, _printerfile);
const bool can_save = _config == "Printer";
mask.enable(DLG_OK, can_save);
// Crea la lista delle stampanti
TToken_string pn2;
SLIST plist = xvt_print_list_devices();
for (SLIST_ELT pitem = xvt_slist_get_first(plist);
pitem != NULL; pitem = xvt_slist_get_next(plist, pitem))
{
const char* pname = xvt_slist_get(plist, pitem, NULL);
pn2.add(pname);
}
xvt_slist_destroy(plist);
TList_field& plst = (TList_field&)mask.field (MSK_PRINTERS);
plst.replace_items(pn2, pn2); // Genera printer list
mask.set(MSK_PRINTERS, _prname); // Genera font list
set_windows_print_device(mask.field(MSK_PRINTERS), 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(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 (_printertype == fileprinter)
mask.set (MSK_TYPE, "1");
else if (_printertype == screenvis)
mask.set (MSK_TYPE, "2");
else
mask.set (MSK_TYPE, "0");
main_app().disable_menu_item(M_FILE_PG_SETUP);
const TString oldprn = _prname;
PRINT_RCD* rcd = get_printrcd();
const int old_rcd_size = _print_rcd_size;
int old_rcd_size;
PRINT_RCD* rcd = get_printrcd(&old_rcd_size);
TString oldrcd(old_rcd_size);
memcpy(oldrcd.get_buffer(), rcd, old_rcd_size);
KEY k;
while ((k = mask.run()) != K_ESC && k != K_ENTER && k != K_INS)
{
if (k == DLG_SETPRINT)
{
// l'handler setta default di windows a quella nel listbox e ribecca l'rcd
if (xvt_dm_post_page_setup(get_printrcd()))
{
// see if user has changed printer
// determine index of currently selected printer
// ACTHUNG! Deep hacking of XVT internals! NON PORTABLE!
_prname = (const char *)(get_printrcd()) + 4;
if (_prname.blank())
_prname = oldprn;
mask.set(MSK_PRINTERS, _prname);
}
}
}
TPrinter_setup_mask mask;
const KEY k = mask.run();
_print_rcd = mask.get_print_rcd(_print_rcd_size);
if (k == K_ESC)
{
// riaggiusta stampante default windows come prima
// curprn e rcd sono quelle di prima
main_app().enable_menu_item(M_FILE_PG_SETUP);
xvt_print_set_default_device(oldprn);
_prname = oldprn;
PRINT_RCD* rcd = get_printrcd();
memcpy(rcd, (const char *)oldrcd, old_rcd_size);
init_formlen();
return FALSE;
xvt_print_destroy(_print_rcd);
_print_rcd = xvt_print_create_by_name(&_print_rcd_size, oldprn);
memcpy(_print_rcd, oldrcd, _print_rcd_size);
}
_prname = mask.get(MSK_PRINTERS);
switch (atoi (mask.get (MSK_TYPE)))
else
{
case 0: // stampante
_printertype = winprinter;
break;
case 1: // file
_printertype = fileprinter;
_printerfile = mask.get (MSK_FILENAME);
break;
case 2: // video
_printertype = screenvis;
break;
}
_prname = mask.get(MSK_PRINTERS);
_fontname = mask.get(MSK_FONT);
switch (atoi (mask.get (MSK_TYPE)))
{
case 1: // file
_printertype = fileprinter;
_printerfile = mask.get (MSK_FILENAME);
break;
case 2: // video
_printertype = screenvis; break;
default: // stampante
_printertype = winprinter; break;
}
_fontname = mask.get(MSK_FONT);
const int cs = mask.get_int(MSK_SIZE);
if (cs > 4) _ch_size = cs;
const int cs = mask.get_int(MSK_SIZE);
if (cs > 4) _ch_size = cs;
_lines_per_inch = mask.get_int (MSK_LINES);
_isgraphics = mask.get_bool (MSK_ISGRAPHICS);
init_formlen ();
_lines_per_inch = mask.get_int (MSK_LINES);
_isgraphics = mask.get_bool (MSK_ISGRAPHICS);
init_formlen ();
if (k == K_INS)
save_configuration();
if (k == K_INS)
save_configuration();
}
main_app().enable_menu_item (M_FILE_PG_SETUP);
return TRUE;
}
@ -1780,7 +1849,7 @@ void TPrinter::close ()
{
if (_exportfile.not_empty() && _txt.lines() > 0L)
{
ofstream txt((const char*)_exportfile);
ofstream txt(_exportfile);
for (long i = 0; i < _txt.lines(); i++)
txt << _txt.line_formatted(i) << '\n';
txt.close();
@ -1789,20 +1858,20 @@ void TPrinter::close ()
else if (_printertype == winprinter && _txt.lines() > 0L)
{
print_txt(_txt);
xvt_print_set_default_device(_defPrinter);
// xvt_print_set_default_device(_defPrinter);
}
else if (_printertype == fileprinter)
{
FILE* fp = fopen(_printerfile, _appendfile ? "a" : "w");
if (fp == NULL)
{
error_box("Impossibile aprire il file %s", (const char*)_printerfile);
error_box(FR("Impossibile aprire il file %s"), (const char*)_printerfile);
return;
}
for (long i = 0; i < _txt.lines(); i++)
fprintf(fp,"%s\n", _txt.line(i));
fclose(fp);
message_box("Stampa su file terminata. Nome archivio: %s",(const char *)_printerfile);
message_box(FR("Stampa su file terminata. Nome archivio: %s"),(const char *)_printerfile);
}
if (_finker)
@ -1957,11 +2026,9 @@ HIDDEN BOOLEAN calc_font_callback(long data)
return win != NULL_WIN;
}
HIDDEN
BOOLEAN calc_cols_callback(long data)
HIDDEN BOOLEAN calc_cols_callback(long data)
{
int &numcols=*(int *)data;
// Create print window
WINDOW win = xvt_print_create_win(printer().get_printrcd(), "Calcolo numero colonne");

View File

@ -34,14 +34,11 @@ enum TPrintstyle
// @enum TPrtype | Indica il tipo di stampante da utilizzare per la stampa
enum TPrtype
{
normprinter = 0, // @emem Stampa su stampante normale
winprinter = 0, // @emem Stampa su stampante normale
fileprinter = 1, // @emem Stampa su file
spoolprinter = 2, // @emem Stampa utilizzando lo spool
localprinter = 3, // @emem Stampa su la stampante locale
screenvis = 4, // @emem Anteprima a video
winprinter = 5, // @emem Stampa su stampante definita da Windows<tm>
export = 6 // @emem Esporatzione di stampa
};
screenvis = 2, // @emem Anteprima a video
export = 3 // @emem Esporatzione di stampa
};
// @doc EXTERNAL
@ -190,6 +187,8 @@ class TPrinter : public TObject
// @access:(INTERNAL) Private Member
{
friend class TPrinter_setup_mask;
// @cmember:(INTERNAL) Puntatore al file di configurazione
FILE* _cnfptr;
// @cmember:(INTERNAL) Puntatore al file della stampante
@ -530,8 +529,9 @@ public:
void set_printtype(TPrtype dest)
{ _printertype=dest; }
// @cmember Setta il nome del file per la stampa su disco
void set_printerfile(const char * ffile)
void set_printerfile(const char* ffile)
{ _printerfile=ffile; }
const TFilename& get_printerfile() const { return _printerfile; }
// @cmember Setta il flag per la stampa in coda al file su disco
void set_append(const bool append = TRUE)
{ _appendfile = append; }