Patch level : aga 2.0 .385
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione P@rtners 2.0 patch 385 git-svn-id: svn://10.65.10.50/trunk@10801 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1ed89cabb0
commit
33f1088e04
@ -341,9 +341,9 @@ void TMenu::import(const char* filename, TString& first)
|
||||
const int bracket = line.rfind('<');
|
||||
if (bracket > 0)
|
||||
{
|
||||
TString16 name = line.mid(bracket+1);
|
||||
name.strip("< >");
|
||||
if (fexist(name))
|
||||
const int endbracket = line.find('>', bracket);
|
||||
TFilename name = line.sub(bracket+1, endbracket);
|
||||
if (name.exist())
|
||||
{
|
||||
import(name, name);
|
||||
TMenu_item& child = sub->add_child(line);
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "cg1700.h"
|
||||
|
||||
PAGE "Stampa causali" -1 -1 70 9
|
||||
PAGE "Stampa causali" -1 -1 70 10
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
|
@ -329,4 +329,4 @@ TSelect_color_mask::TSelect_color_mask(const char * mask_name, const char * para
|
||||
TSelect_color_mask::~TSelect_color_mask()
|
||||
{
|
||||
delete _sheet_mask;
|
||||
}
|
||||
}
|
@ -124,7 +124,7 @@ int TDate::last_day(int month, int year)
|
||||
// per default ce n'ha trentuno");
|
||||
{
|
||||
int d = _days_in_month[month-1];
|
||||
if (month == 2 && is_leap(year) == 0)
|
||||
if (month == 2 && is_leap(year))
|
||||
d++;
|
||||
return d;
|
||||
}
|
||||
|
@ -2464,6 +2464,7 @@ int TSystemisamfile::load(
|
||||
s1.rtrim(1);
|
||||
s1.ltrim(1);
|
||||
|
||||
|
||||
}
|
||||
if (curr().type((const TString&) fld[j]) == _memofld)
|
||||
{
|
||||
@ -2473,6 +2474,7 @@ int TSystemisamfile::load(
|
||||
}
|
||||
|
||||
|
||||
|
||||
put((const TString&) fld[j], s1);
|
||||
}
|
||||
}
|
||||
@ -2874,7 +2876,7 @@ int TRectype::compare_key(
|
||||
|
||||
// @xref <mf TRectype::build_key>
|
||||
{
|
||||
TString256 key1= build_key(key);
|
||||
TString256 key1 = build_key(key);
|
||||
TString256 key2 = rec.build_key(key);
|
||||
if (skip_last > 0)
|
||||
{
|
||||
|
@ -1613,7 +1613,6 @@ public:
|
||||
void set_header(const char* head);
|
||||
void set_row_height(int rh);
|
||||
|
||||
|
||||
TTree_field(TMask* m) : TWindowed_field(m) { }
|
||||
virtual ~TTree_field() { }
|
||||
};
|
||||
@ -1639,4 +1638,3 @@ public:
|
||||
};
|
||||
|
||||
#endif // __MASKFLD_H
|
||||
|
||||
|
@ -1007,6 +1007,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
static char tmp[16];
|
||||
static clock_t digit_timer = 0;
|
||||
|
||||
|
||||
BOOLEAN& refused = xiev->refused;
|
||||
|
||||
|
||||
@ -1111,6 +1112,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
xiev->v.cell_request.back_color = REQUIRED_BACK_COLOR;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -855,9 +855,10 @@ void TPrinter::init_formlen(
|
||||
// @comm Nel caso <p prwin> sia NULL_WIN vengono solamente aggiornati i valori
|
||||
{
|
||||
long pw, ph, phr, pvr; // Printer width, height, horizontal and vertical resolution
|
||||
|
||||
xvt_app_escape (XVT_ESC_GET_PRINTER_INFO, get_printrcd(), &ph, &pw, &pvr, &phr);
|
||||
|
||||
if (pvr != 0)
|
||||
if (pvr > 0)
|
||||
{
|
||||
_formlen = int(ph * _lines_per_inch / pvr); // Total number of lines per page
|
||||
_dots_per_line = int(pvr / _lines_per_inch); // Number of point per line
|
||||
@ -891,9 +892,6 @@ void TPrinter::init_formlen(
|
||||
_horz_offset = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
warning_box ("Il driver della stampante non e' valido.\n"
|
||||
"Non stampare prima di averlo reinstallato");
|
||||
}
|
||||
|
||||
// Handler della maschera di setup
|
||||
@ -1081,15 +1079,17 @@ void TPrinter::read_configuration(
|
||||
}
|
||||
}
|
||||
|
||||
if (!xvt_print_is_valid(get_printrcd()))
|
||||
if (xvt_print_is_valid(_print_rcd))
|
||||
{
|
||||
init_formlen();
|
||||
_prname = (const char*)_print_rcd + 4; // Deep hacking
|
||||
}
|
||||
else
|
||||
{
|
||||
error_box("Attenzione: la stampante corrente non e' valida.\n"
|
||||
"Si prega di selezionare e registrare una nuova stampante.");
|
||||
set_printrcd();
|
||||
}
|
||||
|
||||
init_formlen();
|
||||
_prname = (const char*)get_printrcd() + 4; // Deep hacking
|
||||
}
|
||||
|
||||
delete iniptr; iniptr = NULL;
|
||||
|
@ -354,7 +354,7 @@ bool TPrintwin::do_print()
|
||||
ok = rct != NULL;
|
||||
if (ok)
|
||||
{
|
||||
// set_font(XVT_FFN_SYSTEM, XVT_FS_NONE, _char_size);
|
||||
set_font(XVT_FFN_SYSTEM, XVT_FS_NONE, _char_size); // ???
|
||||
set_font(printer().fontname(), XVT_FS_NONE, _char_size);
|
||||
LEN_SPACES(win(), -1); // Resetta bene le dimensioni font
|
||||
ok = print_band(page, *rct);
|
||||
|
@ -833,6 +833,7 @@ public:
|
||||
void set_header(const char* head);
|
||||
void set_row_height(int rh);
|
||||
|
||||
|
||||
TTree_window(int x, int y, int dx, int dy,
|
||||
WINDOW parent, TTree_field* owner);
|
||||
virtual ~TTree_window() { }
|
||||
@ -1415,7 +1416,6 @@ void TTree_field::set_row_height(int rh)
|
||||
}
|
||||
|
||||
|
||||
|
||||
TField_window* TTree_field::create_window(int x, int y, int dx, int dy, WINDOW parent)
|
||||
{
|
||||
return new TTree_window(x, y, dx, dy, parent, this);
|
||||
|
@ -3738,24 +3738,11 @@ void TPlanning_app ::openfiles()
|
||||
}
|
||||
bool TPlanning_app ::create()
|
||||
{
|
||||
if (TSkeleton_application::create())
|
||||
{
|
||||
openfiles();
|
||||
_m = new TPlanning_mask();
|
||||
_m->field(F_MSCHEDULEPLAN).set(" ");
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
openfiles();
|
||||
_m = new TPlanning_mask();
|
||||
_m->field(F_MSCHEDULEPLAN).set(" ");
|
||||
return TSkeleton_application::create();
|
||||
|
||||
bool TPlanning_app::menu(MENU_TAG mt)
|
||||
{
|
||||
bool ok = TRUE;
|
||||
if (mt == MENU_ITEM(1))
|
||||
mask().sel().run();
|
||||
else
|
||||
ok = TSkeleton_application::menu(mt);
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TPlanning_app::main_loop()
|
||||
@ -3779,4 +3766,3 @@ int mr2200(int argc, char* argv[])
|
||||
a.run(argc, argv, "Pianificazione ordini");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -24,24 +24,11 @@ protected:
|
||||
|
||||
bool TOrdAcq_app::create()
|
||||
{
|
||||
if (TSkeleton_application::create())
|
||||
{
|
||||
openfiles();
|
||||
_m = new TOrdAcq_mask();
|
||||
_m->field(F_MSCHEDULEPLAN).set(" ");
|
||||
_m->disable_page(4);
|
||||
// Li facciamo gestire
|
||||
// _m->sfield(F_ARTICOLI).delete_column(F_CODIMP-FIRST_FIELD);
|
||||
// _m->sfield(F_ARTICOLI).delete_column(F_CODLIN-FIRST_FIELD);
|
||||
// _m->set(F_NOIMP_IN,"X");
|
||||
// _m->hide(F_NOIMP_IN);
|
||||
// _m->set(F_NOLIN_IN,"X");
|
||||
// _m->hide(F_NOLIN_IN);
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
openfiles();
|
||||
_m = new TOrdAcq_mask();
|
||||
_m->field(F_MSCHEDULEPLAN).set(" ");
|
||||
_m->disable_page(4);
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
int mr2400(int argc, char* argv[])
|
||||
|
@ -1897,7 +1897,6 @@ error_type TContabilizzazione::compile_rows_mov(TDocumento& doc)
|
||||
else
|
||||
_righe_iva->add(r, conto, ALL_DECIMALS, perc);
|
||||
|
||||
|
||||
}
|
||||
r.put(RDOC_CODIVA, codiva2); //Restore
|
||||
}
|
||||
|
@ -2360,7 +2360,6 @@ bool TDocumento_mask::controeuro_handler( TMask_field& f, KEY key )
|
||||
|
||||
bool TDocumento_mask::codval_handler( TMask_field& f, KEY key )
|
||||
|
||||
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
@ -2388,4 +2387,4 @@ bool TDocumento_mask::codval_handler( TMask_field& f, KEY key )
|
||||
righe.force_update();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
@ -133,15 +133,20 @@ void* OsWin32_GetPrinterInfo(int& size, const char* printer)
|
||||
else
|
||||
strcpy(name, printer);
|
||||
|
||||
LPDEVMODE pdm = (LPDEVMODE) new char[16*1024];
|
||||
LPDEVMODE pdm = NULL;
|
||||
HANDLE hPrinter;
|
||||
if (::OpenPrinter(name, &hPrinter, NULL) == 0)
|
||||
return NULL;
|
||||
|
||||
::DocumentProperties(0, hPrinter, name, pdm, NULL, DM_OUT_BUFFER);
|
||||
::ClosePrinter(hPrinter);
|
||||
|
||||
size = pdm->dmSize + pdm->dmDriverExtra;
|
||||
if (::OpenPrinter(name, &hPrinter, NULL) != 0)
|
||||
{
|
||||
size = ::DocumentProperties(0, hPrinter, name, NULL, NULL, 0); // Determina dimensione DEVMODE
|
||||
if (size > 0)
|
||||
{
|
||||
pdm = (LPDEVMODE) new char[size]; // Alloca un DEVMODE sufficientemente capiente
|
||||
::DocumentProperties(0, hPrinter, name, pdm, NULL, DM_OUT_BUFFER); // Legge DEVMODE
|
||||
}
|
||||
else
|
||||
size = 0;
|
||||
::ClosePrinter(hPrinter);
|
||||
}
|
||||
return pdm;
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ void* OsWin32_ConvertFromNativePrinterInfo(void* hGlobal, unsigned int& nSize);
|
||||
void* OsWin32_ConvertToNativePrinterInfo(void* data, unsigned int nSize);
|
||||
void OsWin32_DrawBitmap(unsigned int hBitmap, unsigned int hDC,
|
||||
int xd, int yd, int wd, int hd, int xs, int ys, int ws, int hs);
|
||||
void OsWin32_DrawSmallIcon(unsigned int hIcon, unsigned int hDC, int x, int y);
|
||||
int OsWin32_EnumerateFamilies(unsigned int hDC, char** families, int max_count);
|
||||
int OsWin32_EnumerateSizes(unsigned int hDC, const char* name, long* sizes, short* scalable, int max_count);
|
||||
void OsWin32_SetCaptionStyle(unsigned int handle, bool set);
|
||||
|
@ -34,15 +34,17 @@ static EVENT_HANDLER _task_win_handler = NULL;
|
||||
|
||||
static XVT_ERRMSG_HANDLER _error_handler = NULL;
|
||||
|
||||
void XVT_ASSERT(bool test, XVT_ERRSEV sev = SEV_FATAL)
|
||||
#define XVT_ASSERT(test) assert_box((test), __LINE__)
|
||||
|
||||
void assert_box(bool test, int line)
|
||||
{
|
||||
if (!test)
|
||||
{
|
||||
bool display = (_error_handler == NULL) || (_error_handler(sev, NULL) == FALSE);
|
||||
bool display = (_error_handler == NULL) || (_error_handler(SEV_FATAL, NULL) == FALSE);
|
||||
if (display)
|
||||
{
|
||||
const wxString strMessage = "We're very sorry, but you passed some invalid parameters...";
|
||||
const wxString strCaption = "Emulated XVT Error";
|
||||
const wxString strMessage = wxString::Format("Sorry, the application passed some invalid parameters on line %d.", line);
|
||||
const wxString strCaption = "Emulated XVT Error ";
|
||||
::wxMessageBox(strMessage, strCaption, wxOK|wxICON_ERROR);
|
||||
}
|
||||
}
|
||||
@ -309,6 +311,12 @@ TDC::~TDC()
|
||||
KillDC();
|
||||
}
|
||||
|
||||
void TDC::SetDirty(int d)
|
||||
{
|
||||
if (_dirty >= 0)
|
||||
_dirty = d;
|
||||
}
|
||||
|
||||
static int PatternToStyle(PAT_STYLE pat)
|
||||
{
|
||||
int style;
|
||||
@ -440,12 +448,12 @@ wxDC& TDC::GetDC(bool bPaint)
|
||||
|
||||
if (_dirty < 0 || FontChanged())
|
||||
{
|
||||
_dc->SetFont(_font.Font());
|
||||
_dc->SetFont(_font.Font(_dc));
|
||||
_real_font = _font;
|
||||
}
|
||||
|
||||
_dirty = false;
|
||||
}
|
||||
}
|
||||
return *_dc;
|
||||
}
|
||||
|
||||
@ -468,7 +476,6 @@ void TDC::SetClippingBox(const RCT* pRct)
|
||||
_dc->DestroyClippingRegion();
|
||||
#endif
|
||||
wxRect rct = NormalizeRCT(pRct);
|
||||
// rct.width++; rct.height++;
|
||||
GetDC().SetClippingRegion(rct);
|
||||
_clip = *pRct;
|
||||
}
|
||||
@ -476,9 +483,9 @@ void TDC::SetClippingBox(const RCT* pRct)
|
||||
{
|
||||
if (_dc != NULL) // Inutile resettare il nulla!
|
||||
_dc->DestroyClippingRegion();
|
||||
// xvt_rect_set_empty(&_clip);
|
||||
_clip.left = _clip.top = 0;
|
||||
_clip.right = _clip.bottom = 32000;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1374,7 +1381,7 @@ BOOLEAN xvt_dm_post_font_sel(WINDOW win, XVT_FNTID font_id, PRINT_RCD *precp, un
|
||||
{
|
||||
TFontId& font = *(TFontId*)font_id;
|
||||
wxFontData data;
|
||||
data.SetInitialFont(font.Font());
|
||||
data.SetInitialFont(font.Font(NULL));
|
||||
data.EnableEffects(FALSE);
|
||||
wxFontDialog dlg(_task_win, &data);
|
||||
BOOLEAN ok = dlg.ShowModal() == wxID_OK;
|
||||
@ -1595,7 +1602,6 @@ int TFontId::Family() const
|
||||
return wxMODERN;
|
||||
if (m_strFace == XVT_FFN_SYSTEM)
|
||||
return wxDEFAULT;
|
||||
|
||||
return wxROMAN;
|
||||
}
|
||||
|
||||
@ -1609,18 +1615,50 @@ bool TFontId::Underline() const
|
||||
return (m_wMask & XVT_FS_UNDERLINE) != 0;
|
||||
}
|
||||
|
||||
wxFont& TFontId::Font() const
|
||||
|
||||
wxFont& TFontId::Font(wxDC* dc) const
|
||||
{
|
||||
int nSize = PointSize();
|
||||
if (m_win == _print_win)
|
||||
{
|
||||
long ph, pw, pvr, phr;
|
||||
xvt_app_escape(XVT_ESC_GET_PRINTER_INFO, NULL, &ph, &pw, &pvr, &phr);
|
||||
nSize = pvr*nSize/120;
|
||||
static wxDC* lastDC = NULL;
|
||||
static double dPrintScale = 1.0;
|
||||
|
||||
if (dc != lastDC)
|
||||
{
|
||||
const wxSize ppi = dc->GetPPI();
|
||||
dPrintScale = ppi.x / 96.0; // First guess for scaling factor
|
||||
int nBestSize = 0;
|
||||
|
||||
double nMin = dPrintScale-0.1;
|
||||
double nMax = dPrintScale+0.1;
|
||||
while (true)
|
||||
{
|
||||
const double nScale = (nMin+nMax)/2.0;
|
||||
const int nFontSize = int(12.0 * nScale); // First guess for PointSize
|
||||
if (nFontSize == nBestSize)
|
||||
break;
|
||||
wxFont courier(nFontSize, wxMODERN, wxNORMAL, wxNORMAL);
|
||||
dc->SetFont(courier);
|
||||
int tw; dc->GetTextExtent("0123456789", &tw, NULL);
|
||||
|
||||
if (tw > ppi.x)
|
||||
nMax = nScale;
|
||||
else
|
||||
{
|
||||
nMin = nScale;
|
||||
nBestSize = nFontSize;
|
||||
}
|
||||
}
|
||||
dPrintScale = nBestSize / 12.0;
|
||||
lastDC = dc;
|
||||
}
|
||||
nSize = int(nSize * dPrintScale);
|
||||
}
|
||||
const int nWeight = (m_wMask & XVT_FS_BOLD) ? wxBOLD : wxNORMAL;
|
||||
|
||||
const int nWeight = (m_wMask & XVT_FS_BOLD) ? wxBOLD : wxNORMAL;
|
||||
wxFont* font = wxTheFontList->FindOrCreateFont(
|
||||
nSize, Family(), Style(), nWeight, Underline(), FaceName());
|
||||
nSize, Family(), Style(), nWeight, Underline(), FaceName());
|
||||
return *font;
|
||||
}
|
||||
|
||||
@ -1658,7 +1696,6 @@ void xvt_dwin_draw_arc(WINDOW Win, RCT* r, int sx, int sy, int ex, int ey)
|
||||
void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid)
|
||||
{
|
||||
wxIcon* ico = ::GetIconResource(rid);
|
||||
XVT_ASSERT(ico != NULL);
|
||||
if (ico)
|
||||
{
|
||||
CAST_DC(win, dc);
|
||||
@ -1848,14 +1885,14 @@ void xvt_dwin_set_back_color(WINDOW win, COLOR color)
|
||||
{
|
||||
CAST_TDC(win, dc);
|
||||
dc._dct.back_color = color;
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
|
||||
void xvt_dwin_set_cbrush(WINDOW win, CBRUSH* cbrush)
|
||||
{
|
||||
CAST_TDC(win, dc);
|
||||
memcpy(&dc._dct.brush, cbrush, sizeof(CBRUSH));
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
|
||||
void xvt_dwin_set_clip(WINDOW win, RCT* rctp)
|
||||
@ -1868,21 +1905,21 @@ void xvt_dwin_set_cpen(WINDOW win, CPEN* cpen)
|
||||
{
|
||||
CAST_TDC(win, dc);
|
||||
memcpy(&dc._dct.pen, cpen, sizeof(CPEN));
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
|
||||
void xvt_dwin_set_draw_ctools(WINDOW win, DRAW_CTOOLS* xct)
|
||||
{
|
||||
CAST_TDC(win, dc);
|
||||
memcpy(&dc._dct, xct, sizeof(DRAW_CTOOLS));
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
|
||||
void xvt_dwin_set_draw_mode(WINDOW win, DRAW_MODE mode)
|
||||
{
|
||||
CAST_TDC(win, dc);
|
||||
dc._dct.mode = mode;
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
|
||||
void xvt_dwin_set_font(WINDOW win, XVT_FNTID font_id)
|
||||
@ -1893,7 +1930,7 @@ void xvt_dwin_set_font(WINDOW win, XVT_FNTID font_id)
|
||||
if (dc._font != font)
|
||||
{
|
||||
dc._font = font;
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1901,7 +1938,7 @@ void xvt_dwin_set_fore_color(WINDOW win, COLOR color)
|
||||
{
|
||||
CAST_TDC(win, dc);
|
||||
dc._dct.fore_color = color;
|
||||
dc._dirty = true;
|
||||
dc.SetDirty();
|
||||
}
|
||||
|
||||
void xvt_dwin_set_std_cpen(WINDOW win, long flag)
|
||||
@ -2037,7 +2074,7 @@ void xvt_font_get_metrics(XVT_FNTID font_id, int *leadingp, int *ascentp, int *d
|
||||
CAST_DC(win, dc);
|
||||
const wxString str = "Mq";
|
||||
int height, desc, lead;
|
||||
dc.GetTextExtent(str, NULL, &height, &desc, &lead, &font.Font());
|
||||
dc.GetTextExtent(str, NULL, &height, &desc, &lead, &font.Font(&dc));
|
||||
if (leadingp)
|
||||
*leadingp = lead;
|
||||
if (ascentp)
|
||||
@ -2048,8 +2085,8 @@ void xvt_font_get_metrics(XVT_FNTID font_id, int *leadingp, int *ascentp, int *d
|
||||
|
||||
BOOLEAN xvt_font_get_native_desc(XVT_FNTID font_id, char *buf, long max_buf)
|
||||
{
|
||||
*buf = '\0'; // Ignored
|
||||
return TRUE;
|
||||
long len = xvt_font_serialize(font_id, buf, max_buf);
|
||||
return len > 0;
|
||||
}
|
||||
|
||||
long xvt_font_get_size(XVT_FNTID font_id)
|
||||
|
@ -31,7 +31,7 @@ public:
|
||||
int Family() const;
|
||||
|
||||
void Copy(const wxFont& rFont);
|
||||
wxFont& Font() const;
|
||||
wxFont& Font(wxDC* dc) const;
|
||||
|
||||
TFontId& operator=(const TFontId& f) { Copy(f); return *this; }
|
||||
bool operator==(const TFontId& f) const { return IsEqual(f); }
|
||||
@ -48,6 +48,7 @@ class TDC : public wxObject
|
||||
protected:
|
||||
wxDC* _dc;
|
||||
RCT _clip;
|
||||
int _dirty; // false = 0, true = 1, very_dirty = -1;
|
||||
|
||||
DRAW_CTOOLS _real_dct;
|
||||
TFontId _real_font;
|
||||
@ -59,13 +60,11 @@ protected:
|
||||
public:
|
||||
DRAW_CTOOLS _dct;
|
||||
TFontId _font;
|
||||
int _dirty; // false = 0, true = 1, very_dirty = -1;
|
||||
|
||||
|
||||
wxPoint _pnt;
|
||||
|
||||
void SetClippingBox(const RCT* pRct);
|
||||
bool GetClippingBox(RCT* pRct) const;
|
||||
void SetDirty(int d = 1);
|
||||
|
||||
virtual wxDC& GetDC(bool bPaint = false);
|
||||
void KillDC();
|
||||
|
@ -123,6 +123,8 @@ TwxPrintOut::~TwxPrintOut()
|
||||
wxDC& TPrintDC::GetDC(bool)
|
||||
{
|
||||
_dc = m_po->GetDC(); // Forza display context corrente
|
||||
if (_dirty)
|
||||
_dirty = -1;
|
||||
return TDC::GetDC(false);
|
||||
}
|
||||
|
||||
@ -140,9 +142,11 @@ TPrintDC::~TPrintDC()
|
||||
|
||||
BOOLEAN xvt_app_escape(int esc_code, PRINT_RCD* rcd, long* ph, long* pw, long* pvr, long* phr)
|
||||
{
|
||||
*ph = *pw = *pvr = *phr = 0;
|
||||
switch (esc_code)
|
||||
{
|
||||
case XVT_ESC_GET_PRINTER_INFO:
|
||||
if (rcd == NULL || xvt_print_is_valid(rcd))
|
||||
{
|
||||
const bool temp = m_po == NULL;
|
||||
if (temp)
|
||||
@ -157,8 +161,9 @@ BOOLEAN xvt_app_escape(int esc_code, PRINT_RCD* rcd, long* ph, long* pw, long* p
|
||||
delete m_po;
|
||||
m_po = NULL;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -247,30 +252,40 @@ BOOLEAN xvt_print_close_page(PRINT_RCD* /*precp*/)
|
||||
|
||||
PRINT_RCD* xvt_print_create(int *sizep)
|
||||
{
|
||||
TPRINT_RCD* pr = new TPRINT_RCD;
|
||||
TPRINT_RCD* pr = NULL;
|
||||
*sizep = 0;
|
||||
|
||||
#ifdef WIN32
|
||||
void* data = OsWin32_GetPrinterInfo(*sizep, NULL);
|
||||
pr->SetData(data, *sizep);
|
||||
delete data;
|
||||
*sizep += 4; // Spazio per puntatore iniziale
|
||||
#else
|
||||
*sizep = 0;
|
||||
if (data != NULL)
|
||||
{
|
||||
pr = new TPRINT_RCD;
|
||||
pr->SetData(data, *sizep);
|
||||
*sizep += 4; // Spazio per puntatore iniziale
|
||||
delete data;
|
||||
}
|
||||
#endif
|
||||
|
||||
return pr;
|
||||
}
|
||||
|
||||
// Nuova funzione inventata da Aga
|
||||
PRINT_RCD* xvt_print_create_by_name(int* sizep, const char* name)
|
||||
{
|
||||
TPRINT_RCD* pr = new TPRINT_RCD;
|
||||
TPRINT_RCD* pr = NULL;
|
||||
*sizep = 0;
|
||||
|
||||
#ifdef WIN32
|
||||
void* data = OsWin32_GetPrinterInfo(*sizep, name);
|
||||
pr->SetData(data, *sizep);
|
||||
delete data;
|
||||
*sizep += 4; // Spazio per puntatore iniziale
|
||||
#else
|
||||
*sizep = 0;
|
||||
if (data != NULL)
|
||||
{
|
||||
pr = new TPRINT_RCD;
|
||||
pr->SetData(data, *sizep);
|
||||
*sizep += 4; // Spazio per puntatore iniziale
|
||||
delete data;
|
||||
}
|
||||
#endif
|
||||
|
||||
return pr;
|
||||
}
|
||||
|
||||
@ -343,11 +358,15 @@ BOOLEAN xvt_print_start_thread(BOOLEAN(*print_fcn)(long), long data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN xvt_print_open_page(PRINT_RCD* /* precp */)
|
||||
BOOLEAN xvt_print_open_page(PRINT_RCD* precp)
|
||||
{
|
||||
BOOLEAN ok = m_po != NULL;
|
||||
if (ok)
|
||||
{
|
||||
// TPRINT_RCD* rcd = (TPRINT_RCD*)precp;
|
||||
// m_po->InitDC(rcd);
|
||||
m_po->GetDC()->StartPage();
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user