Patch level : 10.0 376

Files correlati     : xvaga.pdf
Ricompilazione Demo : [ ]
Commento            :
Uniformato spessore linee in sede di stampa report su carta e/o pdf


git-svn-id: svn://10.65.10.50/trunk@19114 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-07-15 15:09:42 +00:00
parent 749cdab39c
commit 68bae27fdb
6 changed files with 95 additions and 30 deletions

View File

@ -1068,10 +1068,29 @@ bool OsWin32_IsWindowsServer()
void OsWin32_NumberFormat(char* str, int size)
{
static char decsep = '\0', thosep = '\0';
char buf[80] = "";
if (!decsep)
{
::GetNumberFormat(LOCALE_USER_DEFAULT, 0, "1936.27", NULL, buf, sizeof(buf));
decsep = buf[strlen(buf)-3];
thosep = buf[1] == '9' ? '\0' : buf[1];
}
if (str && *str)
{
char buf[80] = "";
::GetNumberFormat(LOCALE_USER_DEFAULT, 0, str, NULL, buf, sizeof(buf));
int j = 0;
for (int i = 0; str[i]; i++)
{
switch (str[i])
{
case '.': buf[j++] = decsep; break;
case ',': break; // Ignore thousand separator
default : buf[j++] = str[i]; break;
}
}
buf[j] = '\0';
wxStrncpy(str, buf, size);
}
}

View File

@ -980,9 +980,14 @@ static FL_STATUS xvt_dm_post_file_ask(FILE_SPEC *fsp, const char *msg, int flags
wxString path = fsp->dir.path;
wxString name = MakeFileName(fsp->name, fsp->type);
wxString extension = fsp->type;
wxString mask = MakeFileName("*", fsp->type);
wxString wild;
if (!extension.IsEmpty() && extension != "*")
wild << "File " << extension << " (*." << extension << ")|*." << extension << "|";
if (flags & wxFD_OPEN)
wild << "Tutti i file (*.*)|*.*|";
wild << '|';
wxString selectedname = wxFileSelector(msg, path, name, extension , mask, flags);
wxString selectedname = wxFileSelector(msg, path, name, extension , wild, flags);
if (selectedname.IsEmpty())
return FL_CANCEL;
xvt_fsys_convert_str_to_fspec(selectedname, fsp);
@ -994,13 +999,13 @@ static FL_STATUS xvt_dm_post_file_ask(FILE_SPEC *fsp, const char *msg, int flags
FL_STATUS xvt_dm_post_file_open(FILE_SPEC *fsp, const char *msg)
{
const int flags = wxOPEN | wxFILE_MUST_EXIST;
const int flags = wxFD_OPEN | wxFD_FILE_MUST_EXIST;
return xvt_dm_post_file_ask(fsp, msg, flags);
}
FL_STATUS xvt_dm_post_file_save(FILE_SPEC *fsp, const char *msg)
{
const int flags = wxSAVE | wxOVERWRITE_PROMPT;
const int flags = wxFD_SAVE | wxFD_OVERWRITE_PROMPT;
return xvt_dm_post_file_ask(fsp, msg, flags);
}
@ -2175,15 +2180,18 @@ BOOLEAN xvt_fsys_convert_fspec_to_str(const FILE_SPEC *fs, char *path, int sz_pa
BOOLEAN xvt_fsys_convert_str_to_fspec(const char *mbs, FILE_SPEC *fs)
{
BOOLEAN ok = FALSE;
if (mbs && *mbs && fs != NULL)
if (fs != NULL)
{
memset(fs, 0, sizeof(FILE_SPEC));
char volume[_MAX_DRIVE], path[_MAX_PATH];
xvt_fsys_parse_pathname(mbs, volume, path, fs->name, fs->type, NULL);
wxStrcpy(fs->dir.path, volume);
wxStrcat(fs->dir.path, path);
wxStrcpy(fs->creator, "CAMPO");
ok = fs->name[0] != '\0';
if (mbs && *mbs)
{
char volume[_MAX_DRIVE], path[_MAX_PATH];
xvt_fsys_parse_pathname(mbs, volume, path, fs->name, fs->type, NULL);
wxStrcpy(fs->dir.path, volume);
wxStrcat(fs->dir.path, path);
ok = fs->name[0] != '\0';
}
}
return ok;
}
@ -2960,7 +2968,7 @@ BOOLEAN xvt_rect_intersect(RCT *drctp, const RCT *rctp1, const RCT *rctp2)
return yes;
}
BOOLEAN xvt_rect_is_empty(const RCT *rct)
BOOLEAN xvt_rect_is_empty(const RCT* rct)
{
return rct == NULL || (rct->left==rct->right && rct->top==rct->bottom);
}
@ -2990,6 +2998,12 @@ void xvt_rect_set_empty(RCT *rctp)
rctp->bottom = rctp->top;
}
void xvt_rect_set_null(RCT* rctp)
{
XVT_ASSERT(rctp != NULL);
memset(rctp, 0, sizeof(RCT));
}
BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos)
{
BOOLEAN ok = rctp != NULL;
@ -4315,9 +4329,20 @@ long xvt_vobj_get_data(WINDOW win)
RCT* xvt_vobj_get_outer_rect(WINDOW win, RCT *rctp)
{
CAST_WIN(win, w);
const wxRect rct = w.GetRect();
xvt_rect_set(rctp, rct.x, rct.y, rct.GetRight(), rct.GetBottom());
if (win != NULL_WIN)
{
if (win == SCREEN_WIN)
xvt_rect_set(rctp, 0, 0, wxSystemSettings::GetMetric(wxSYS_SCREEN_X), wxSystemSettings::GetMetric(wxSYS_SCREEN_Y));
else
{
CAST_WIN(win, w);
const wxRect rct = w.GetRect();
xvt_rect_set(rctp, rct.x, rct.y, rct.GetRight(), rct.GetBottom());
}
}
else
xvt_rect_set_null(rctp);
return rctp;
}

View File

@ -293,6 +293,7 @@ XVTDLL BOOLEAN xvt_rect_is_empty(const RCT *rctp);
XVTDLL void xvt_rect_offset(RCT *rctp, short dh, short dv);
XVTDLL void xvt_rect_set(RCT *rctp, short left, short top, short right, short bottom);
XVTDLL void xvt_rect_set_empty(RCT *rctp);
XVTDLL void xvt_rect_set_null(RCT* rctp);
XVTDLL BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos);
XVTDLL void xvt_rect_inflate(RCT *rctp, short ix, short iy);

View File

@ -1381,6 +1381,9 @@ bool TEsigner::Init(bool bLoad)
return ok = false;
xvt_sys_get_profile_string(strConfig, "fd", "Cert_"+m_strUser, "", str, sizeof(str));
if (*str == '\0') // Se non trova l'utente corrente di riprova con Guest
xvt_sys_get_profile_string(strConfig, "fd", "Cert_Guest", "", str, sizeof(str));
wxStringTokenizer strDllCert(str, ",");
m_strDllFile = strDllCert.GetNextToken(); m_strDllFile.MakeLower();
m_strCertificate = strDllCert.GetNextToken();
@ -1394,7 +1397,11 @@ bool TEsigner::Init(bool bLoad)
m_strTSApwd = strDllCert.GetNextToken();
m_strPolicy = strDllCert.GetNextToken();
m_strTSAcoding = strDllCert.GetNextToken();
if (m_strTSAcoding.IsEmpty())
m_strTSAcoding = wxT("binary");
if (m_strTSAuri.IsEmpty())
{
wxString msg;
msg << "Mancano i parametri per la marcatura temporale"
@ -1442,18 +1449,18 @@ bool TEsigner::Sign(const wxString& strInput, wxString& strOutput)
if ((m_strPin.IsEmpty() || m_strDllFile.IsEmpty()) && !Init(true))
return false;
const char* ext = strInput.EndsWith(".pdf") ? ".pdf" : "";
const char* ext = strInput.Lower().EndsWith(".pdf") ? ".pdf.p7m" : "";
if (strOutput.IsEmpty())
strOutput = strInput.BeforeFirst('.') + ".p7m.pdf";
strOutput = strInput + ".p7m";
::wxRemoveFile(strOutput); // Altrimenti la fantastica dll s'incazza come una biscia
wxString strFile = strOutput;
strFile = strFile.BeforeLast('.');
const wxString strFile = strOutput.BeforeFirst('.');
int res = 0;
if (m_strDllFile.EndsWith(".dll"))
if (m_strDllFile.Lower().EndsWith(".dll"))
{
if (m_bMark && !m_strTSAcoding.IsEmpty()) // Firma con marcatura temporale
if (m_bMark && !m_strTSAuri.IsEmpty()) // Firma con marcatura temporale
{
res = _SignPDF("S", "T", // "S"ignature with "T"oken or smartcard
(char*)(const char*)strInput, (char*)(const char*)strFile,
@ -1474,11 +1481,24 @@ bool TEsigner::Sign(const wxString& strInput, wxString& strOutput)
}
else
{
res = _SignPDF("S", "P", // "S"ignature with "P"fx file
(char*)(const char*)strInput, (char*)(const char*)strFile,
NULL, (char*)ext, NULL, NULL, (char*)(const char*)m_strDllFile, NULL,
(char*)(const char*)m_strPin, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL);
if (m_bMark && !m_strTSAuri.IsEmpty()) // Firma con marcatura temporale
{
res = _SignPDF("S", "P", // "S"ignature with "P"fx file
(char*)(const char*)strInput, (char*)(const char*)strFile,
NULL, (char*)ext, NULL, NULL, (char*)(const char*)m_strDllFile, NULL,
(char*)(const char*)m_strPin, NULL, NULL,
(char*)(const char*)m_strTSAuri, (char*)(const char*)m_strTSAuser,
(char*)(const char*)m_strTSApwd, (char*)(const char*)m_strPolicy,
(char*)(const char*)m_strTSAcoding, NULL);
}
else
{
res = _SignPDF("S", "P", // "S"ignature with "P"fx file
(char*)(const char*)strInput, (char*)(const char*)strFile,
NULL, (char*)ext, NULL, NULL, (char*)(const char*)m_strDllFile, NULL,
(char*)(const char*)m_strPin, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL);
}
}
if (res == 0)

View File

@ -919,8 +919,8 @@ void TwxPDFDC::SetPen( const wxPen& pen )
wxString strScope = m_PDFlib->PDF_get_parameter(m_p, "scope", 0);
if (strScope != "document")
{
double dWidth = m_pen.GetWidth();
if (dWidth <= 0) dWidth = 1;
const int nWidth = m_pen.GetWidth();
const double dWidth = nWidth <= 0 ? 1 : nWidth;
m_PDFlib->PDF_setlinewidth(m_p, dWidth);
if (solid)
m_PDFlib->PDF_setdash(m_p, 0, 0);

View File

@ -580,7 +580,7 @@ void TwxWindow::OnChar(wxKeyEvent& evt)
case WXK_NUMPAD9:
evt.Skip();
return;
case WXK_NUMPAD_DECIMAL: // Arriva solo dalla 3.6.3 in poi
case WXK_NUMPAD_DECIMAL: // Arriva solo dalla 2.6.3 in poi
case WXK_DECIMAL: // ??? Arriva sia '.' sia WXK_DECIMAL=340
if (nSkipNextDotKey == 0)
{