Patch level : 2.0 nopatch by now
Files correlati : xvaga.dll Ricompilazione Demo : [ ] Commento : Riveduta e corretta gestione moduli di stampa personalizzati git-svn-id: svn://10.65.10.50/trunk@11758 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b6f04fc6a3
commit
3821c153e9
@ -1,5 +1,6 @@
|
||||
#include "wxinc.h"
|
||||
#include "wx/filename.h"
|
||||
#include "wx/paper.h"
|
||||
|
||||
#include "oswin32.h"
|
||||
|
||||
@ -25,13 +26,24 @@ bool OsWin32_CheckPrinterInfo(const void* data, unsigned int size)
|
||||
return ok;
|
||||
}
|
||||
|
||||
static void TestPaper(PDEVMODE dm)
|
||||
{
|
||||
wxPrintPaperType* paper = wxThePrintPaperDatabase->FindPaperTypeByPlatformId(dm->dmPaperSize);
|
||||
if (paper == NULL)
|
||||
{
|
||||
dm->dmFields |= DM_PAPERSIZE;
|
||||
wxThePrintPaperDatabase->WXADDPAPER((wxPaperSize)dm->dmPaperSize /*wxPAPER_NONE*/, dm->dmPaperSize,
|
||||
dm->dmFormName, dm->dmPaperWidth, dm->dmPaperLength);
|
||||
}
|
||||
}
|
||||
|
||||
void* OsWin32_ConvertFromNativePrinterInfo(void* hGlobal, unsigned int& nDataSize)
|
||||
{
|
||||
void* ptr = ::GlobalLock(hGlobal);
|
||||
PDEVMODE dm = (PDEVMODE)ptr;
|
||||
PDEVMODE dm = (PDEVMODE)::GlobalLock(hGlobal);
|
||||
nDataSize = dm->dmSize+dm->dmDriverExtra;
|
||||
void* buff = new char[nDataSize];
|
||||
memcpy(buff, ptr, nDataSize);
|
||||
TestPaper(dm);
|
||||
memcpy(buff, dm, nDataSize);
|
||||
::GlobalUnlock(hGlobal);
|
||||
return buff;
|
||||
}
|
||||
@ -39,8 +51,9 @@ void* OsWin32_ConvertFromNativePrinterInfo(void* hGlobal, unsigned int& nDataSiz
|
||||
void* OsWin32_ConvertToNativePrinterInfo(void* data, unsigned int nDataSize)
|
||||
{
|
||||
HGLOBAL hGlobal = ::GlobalAlloc(GHND, nDataSize);
|
||||
void* ptr = ::GlobalLock(hGlobal);
|
||||
memcpy(ptr, data, nDataSize);
|
||||
PDEVMODE dm = (PDEVMODE)::GlobalLock(hGlobal);
|
||||
memcpy(dm, data, nDataSize);
|
||||
TestPaper(dm);
|
||||
::GlobalUnlock(hGlobal);
|
||||
return hGlobal;
|
||||
}
|
||||
|
@ -165,6 +165,7 @@ XVTDLL BOOLEAN xvt_fsys_rmdir(const char *pathname);
|
||||
XVTDLL BOOLEAN xvt_fsys_removefile(const char *pathname);
|
||||
XVTDLL BOOLEAN xvt_fsys_access(const char *pathname, int mode);
|
||||
XVTDLL BOOLEAN xvt_fsys_file_exists(const char *pathname);
|
||||
XVTDLL int xvt_fsys_get_campo_stp_value(const char* name, char* value, int valsize);
|
||||
XVTDLL const char* xvt_fsys_get_campo_ini();
|
||||
|
||||
XVTDLL void xvt_help_close_helpfile(XVT_HELP_INFO hi);
|
||||
|
@ -255,19 +255,20 @@ BOOLEAN xvt_dm_post_page_setup(PRINT_RCD* precp)
|
||||
wxPageSetupDialog dlg((wxWindow*)TASK_WIN);
|
||||
TPRINT_RCD* rcd = (TPRINT_RCD*)precp;
|
||||
|
||||
wxPageSetupData& pdd = dlg.GetPageSetupData();
|
||||
wxPrintData& data = pdd.GetPrintData();
|
||||
|
||||
wxPageSetupData& pdd = dlg.GetPageSetupData();
|
||||
wxPrintData& data = pdd.GetPrintData();
|
||||
#ifdef WIN32
|
||||
data.SetNativeData(OsWin32_ConvertToNativePrinterInfo(rcd->m_data, rcd->m_size));
|
||||
data.ConvertFromNative();
|
||||
void* pHandle = OsWin32_ConvertToNativePrinterInfo(rcd->m_data, rcd->m_size);
|
||||
data.SetNativeData(pHandle);
|
||||
data.ConvertFromNative();
|
||||
#endif
|
||||
pdd.EnableMargins(false);
|
||||
|
||||
if (dlg.ShowModal() == wxID_OK)
|
||||
const BOOLEAN ok = dlg.ShowModal() == wxID_OK;
|
||||
if (ok)
|
||||
{
|
||||
#ifdef WIN32
|
||||
data.ConvertToNative();
|
||||
void* pHandle = data.GetNativeData();
|
||||
pHandle = data.GetNativeData();
|
||||
unsigned int nSize = 0;
|
||||
void* ptr = OsWin32_ConvertFromNativePrinterInfo(pHandle, nSize);
|
||||
rcd->SetData(ptr, nSize);
|
||||
@ -276,9 +277,9 @@ BOOLEAN xvt_dm_post_page_setup(PRINT_RCD* precp)
|
||||
rcd->SetData((void *) &data, (unsigned int) sizeof(data));
|
||||
#endif
|
||||
m_PrintoutCache.Reset();
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
long xvt_fmap_get_family_sizes(PRINT_RCD *precp, char *family, long *size_array, BOOLEAN *scalable, long max_sizes)
|
||||
|
Loading…
x
Reference in New Issue
Block a user