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:
parent
749cdab39c
commit
68bae27fdb
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user