Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@18035 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-01-19 10:27:20 +00:00
parent 6645f09573
commit 6e6b65b8bc
9 changed files with 230 additions and 92 deletions

View File

@ -46,27 +46,33 @@ void CampoFrame::OnErase(wxEraseEvent& e)
wxRect rect2 = rect; rect2.SetTop(rect.GetBottom() / 2);
dc.GradientFillLinear(rect2, c1, c2, wxDOWN);
const int nHeight = rect.GetHeight()/10;
wxFont* pFont = wxTheFontList->FindOrCreateFont(nHeight, wxFONTFAMILY_SWISS, wxFONTSTYLE_ITALIC,
wxFONTWEIGHT_BOLD);
int nHeight = rect.GetHeight()/14;
wxFont* pFont = wxTheFontList->FindOrCreateFont(nHeight, wxFONTFAMILY_SWISS, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD);
dc.SetFont(*pFont);
dc.SetBackgroundMode(wxTRANSPARENT);
int w, h;
dc.GetTextExtent(RESELLER, &w, &h);
while (w > rect.width)
{
nHeight = nHeight * rect.width / w;
pFont = wxTheFontList->FindOrCreateFont(nHeight, wxFONTFAMILY_SWISS, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD);
dc.SetFont(*pFont);
dc.GetTextExtent(RESELLER, &w, &h);
}
const int k = nHeight / 16 + 1;
dc.SetTextForeground(c2);
dc.DrawText(APPNAME, k, k);
dc.DrawText(RESELLER, rect.GetRight()-w-k/2, rect.GetHeight()-h-k/2);
dc.SetTextForeground(c1);
dc.DrawText(APPNAME, k/2, k/2);
int w, h;
const wxString strSetup = wxT("enterprise");
dc.GetTextExtent(strSetup, &w, &h);
dc.DrawText(RESELLER, rect.GetRight()-w-k, rect.GetHeight()-h-k);
dc.SetTextForeground(c2);
dc.DrawText(strSetup, rect.GetRight()-w-k/2, rect.GetHeight()-h-k/2);
dc.DrawText(PRODUCT, k, k);
dc.SetTextForeground(c1);
dc.DrawText(strSetup, rect.GetRight()-w-k, rect.GetHeight()-h-k);
dc.DrawText(PRODUCT, k/2, k/2);
}
CampoFrame::CampoFrame()
@ -251,19 +257,31 @@ bool CampoSetup::CreateIcon(unsigned int csidl, const wxFileName& strExeFile, co
//sceglie l'icona da quelle possibili legate al .exe in base al tipo di installazione
const InstallationType uInstallationType = m_pWizard->GetInstallationType();
if (uInstallationType == it_server || uInstallationType == it_client)
{
wxString strPath = m_pWizard->GetPrgLocPath();
strPath += "/res/";
switch (uInstallationType)
{
case it_server: strPath += "CampoSrv.ico"; break;
case it_client: strPath += "CampoCln.ico"; break;
default: strPath += "Campo.ico"; break;
}
psl->SetIconLocation(strPath, 0);
//anche l'icona deve essere scelta in base al reseller
wxString strIcon = Icon();
//path completo del file icona, in modo da legarlo al link sul desktop;comincia con il path di Campo
wxString strPath = m_pWizard->GetPrgLocPath();
if (!strIcon.IsEmpty())
{
strPath += "/setup/"; //se esiste l'icona del reseller sta in setup
}
else
{
strPath += "/res/"; //se non trova l'icona del reseller prende quella standard in res
}
const int nPos = strIcon.Len()-4;
switch (uInstallationType)
{
case it_server: strIcon.insert(nPos, "Srv"); break;
case it_client: strIcon.insert(nPos, "Cln"); break;
default: break;
}
strPath << strIcon;
psl->SetIconLocation(strPath, 0);
// Query IShellLink for the IPersistFile interface for saving the
// shortcut in persistent storage.

View File

@ -3,25 +3,34 @@ OEM =
[OEM_0]
Administrator = Œ<EFBFBD>
Icon = aga.ico
Licence = aga_licenza.htm
Logo = aga_logo.jpg
Name = 粕駐枅Mц姿ツN櫻ュu
Name = ””’“ž
Password = ²·s°¸´
Product = ””“žf··¦¿ÀÁ‰ØÓ
Reseller = š†c¸´¸œ³´¢”ÒÑÇ<EFBFBD>åÓ¢Õ
Web = www.aga.it/agarel100/
[OEM_1]
Administrator = Œ<EFBFBD>
Icon = sirio.ico
Licence = sirio_licenza.htm
Logo = sirio_logo.jpg
Name = 粕駐枅キ峭ヲソタチ華モ白津ロロワヤ@鮪ケリ葷ミ挽ムヌ訟砦ンワラニ歳@譌罎ニ<E7BD8E>
Web = www.aga.it/release100/
Name = ””’“ž
Password = ²·s°¸´
Product = ””“žf··¦¿ÀÁ‰ØÓ
Reseller = ¤¼·¬¾f»¹ØäÖДÒÑÇ<EFBFBD>×<EFBFBD>ÔÝÜׯ<EFBFBD>Î@æ—ã¢Æ›
Web = www.aga.it/release100/
[OEM_2]
Administrator = Œ<EFBFBD>
Icon = tetra.ico
Licence = tetra_licenza.htm
Logo = tetra_logo.jpg
Name = 箸決瀦<EFBFBD>po寢裡tcァeヌ€ウqタw
Name = ”¢Œˆ’•…
Password = ²·s°¸´
Product = ”¢Œˆ’•…
Reseller = ¥˜™•<EFBFBD>‰¦v§eÇ€³qÀw
Web = www.aga.it/release100/

BIN
setup/tetra.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

44
setup/tetra_licenza.htm Executable file
View File

@ -0,0 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ACCORDO DI LICENZA SUL SOFTWARE</title>
</head>
<body>
<h4><p align=center>ACCORDO DI LICENZA SUL SOFTWARE</p></h4>
<hr></hr>
<p>Ai termini ed alle condizioni che seguono, Tetractis s.r.l., in forza dei diritti di sfruttamento commerciale, si obbliga e concede in licenza d'uso al Cliente il prodotto di software corredato dalla documentazione d'uso. Pertanto Tetractis s.r.l. (di seguito indicata come Concedente), non vende alcun diritto per il proprio software, e mantiene ogni diritto su tutto il software distribuito.
Il Concedente da una parte ed il Cliente dall'altra, concordano quindi tra loro quanto segue:</p>
<p>L'installazione dei programmi contenuti in questo CD-ROM implica l'accettazione e l'osservanza dei termini specificati in questo accordo di licenza, tranne che per quanto concerne l'applicazione dell'art. 1341 C.C.</p>
<ol>
<li>CONCESSIONE DI LICENZA. A fronte del pagamento del corrispettivo della licenza, compreso nel prezzo di acquisto di questo prodotto, e dell'accordo di osservanza dei termini e delle condizioni di questa licenza, il Concedente, cede all'Acquirente, il Licenziatario, un diritto non esclusivo all'utilizzo ed alla dimostrazione di questa copia di programma software (di seguito chiamato Software) su di un unico computer (dotato cioè di una sola unità centrale) ed in un'unica locazione per tutto il periodo di osservanza dei termini di questo accordo di licenza. Se il computer sul quale viene utilizzato il Software è un sistema multiutente, la licenza è valida per tutti gli utenti di quell'unico computer, senza esborso per ulteriori licenze. Il Concedente si riserva tutti i diritti non espressamente ceduti al Licenziatario.</li>
<li>PROPRIETA' DEL SOFTWARE. Come Licenziatario, l'acquirente è proprietario del supporto magnetico o fisico sul quale il Software è stato originariamente registrato, ma, in base al presente accordo, il Concedente mantiene la proprietà del Software registrato sulla copia (o copie) del CD-ROM originale e di tutte le copie di Software successive, indipendentemente dalla forma o dal supporto in cui vengono fornite le copie originali e quelle successive. La presente licenza non implica la vendita del Software originale o di qualsiasi eventuale copia successiva.</li>
<li>COPIE DI BACKUP. E' espressamente proibito effettuare copie non autorizzate del Software, ivi compreso Software modificato, combinato con altri, o allegato ad altro Software, o della documentazione. Il licenziatario è responsabile a tutti i fini legali per qualunque infrazione causata o incoraggiata dalla non osservanza dei termini di questa licenza.
Sulla base di quanto sopra, e posto che il Software non sia protetto contro la copia, è consentito effettuare una (1) copia del Software a soli scopi di backup.</li>
<li>UTILIZZO DEL SOFTWARE. In qualità di Licenziatario l'acquirente è autorizzato a trasferire fisicamente il Software da un computer all'altro a condizione che il suo utilizzo sia limitato ad un computer per volta. Non è consentito il trasferimento elettronico del Software da un computer all'altro tramite rete di comunicazione dati. È altresì vietata la distribuzione a terzi di copie del Software e della relativa documentazione. Il licenziatario non e' inoltre autorizzato alla modifica, traduzione, adattazione, reingegnerizzazione, decompilazione, disassemblaggio o alla creazione di applicazioni derivate basate sul Software. È altresì' vietato modificare, tradurre, adattare e creare applicazioni derivate basate sulla documentazione senza previo consenso scritto da parte del Concedente.</li>
<li>CESSIONE DEL SOFTWARE. Il Software viene ceduto in licenza unicamente al Licenziatario e non può essere ceduto a terzi senza previo consenso scritto da parte del Concedente. L'utente autorizzato all'utilizzo del Software è tenuto all'osservanza dei termini e delle condizioni espressi in questa licenza e nella garanzia limitata. In nessun caso è consentito cedere, assegnare, offrire in leasing, vendere o disporre in altro modo del Software su base permanente o provvisoria se non nei termini qui espressamente specificati.</li>
<li>DURATA. Il presente contratto resterà in vigore per un periodo di cinque (5) anni dalla data di acquisto riportata sulla ricevuta di acquisto. Alla fine di tale periodo, tale accordo sarà risolto. Questo contratto può anche essere risolto dal Concedente sulla base dell'art. 11 (clausola risolutiva espressa). Alla fine del rapporto, quale che ne sia la causa, tutto il materiale deve essere riconsegnato al Concedente oppure distrutto da parte del Licenziatario.</li>
<li>AGGIORNAMENTI. Il Concedente può produrre, di volta in volta, versioni aggiornate del Software che, a discrezione del Concedente, verranno messe a disposizione del Licenziatario e degli utenti autorizzati.</li>
<li>LEGGE APPLICABILE. La presente licenza e' soggetta alla legge italiana e verrà messa in vigore a beneficio del Concedente, dei suoi assegnatari e successori.</li>
<li>ATTESTAZIONE. Il Licenziatario attesta di aver scelto il Software corrispondente alle proprie necessità, di aver preso visione della relativa documentazione e del presente accordo. Egli riconosce che il presente accordo costituisce la totalità delle intese intercorse.</li>
<li>GARANZIA LIMITATA, MANUTENZIONE, RESPONSABILITA' ED ASSISTENZA. Il Concedente garantisce al Licenziatario originario che il CD-ROM sul quale e' registrato il Software è esente da difetti di materiale e di lavorazione nell'uso e nelle prestazioni normali per un periodo di novanta (90) giorni dalla data di consegna documentata da una copia della ricevuta.
Il Concedente non garantisce che il pacchetto Software funzioni correttamente in tutte le possibili combinazioni hardware/software. E' possibile che il programma non funzioni correttamente con versioni modificate del sistema operativo, con taluni programmi di "spooling" delle stampe o di utilità, o con stampanti fornite da Costruttori indipendenti.
Sebbene il Concedente abbia collaudato il Software e controllato la documentazione, non garantisce espressamente o implicitamente, per quel che riguarda questo Software o la sua documentazione, la loro qualità, le caratteristiche, la commerciabilità e l'utilizzo in particolari applicazioni.
Quindi questo Software e documentazione sono dati in licenza "come tali", e il licenziatario si assume tutti i rischi circa la loro qualità ed esecuzione.
In nessun caso il Concedente sarà responsabile per danni diretti, indiretti, particolari, incidentali o susseguenti, scaturiti dall'uso o dalla non capacita' d'uso del Software o della documentazione, anche se avvertita della possibilità di tali danni. In particolare il Concedente non avrà responsabilità per programmi e dati memorizzati, o utilizzati con suo Software, compresi i costi per il recupero di tali programmi o dati.</li>
<li>CLAUSOLA RISOLUTIVA ESPRESSA. Nel caso di inadempimento da parte del Licenziatario degli obblighi di cui all'art. 3 (divieto di effettuare copie), art. 4 (modi di utilizzo del Software, distribuzione a terzi di copie, traduzione, modifica, reingegnerizzazione, adattazione, decompilazione, disassemblaggio, creazione di applicazioni basate sul Software o sulla documentazione), art. 5 (cessione a terzi, leasing o locazione a terzi, atti di disposizione), il Concedente potrà ritenere automaticamente risolto il presente contratto senza avviso al Licenziatario.</li>
</ol>
</body>
</html>

BIN
setup/tetra_logo.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -461,7 +461,8 @@ bool UnzipFile(const char* strSrcFile, const char* strDestDir)
if (bTemp)
{
wxBusyCursor wait;
wxDialog dlgWait(NULL, wxID_ANY, APPNAMEFULL, wxDefaultPosition, wxSize(480,80), wxCAPTION);
const wxString strFullAppName = PRODUCT + " " + RESELLER;
wxDialog dlgWait(NULL, wxID_ANY, strFullAppName, wxDefaultPosition, wxSize(480,80), wxCAPTION);
wxString str; str << "Copia di " << strSrcFile << "\nAttendere prego...";
wxStaticText* text = new wxStaticText(&dlgWait, wxID_ANY, wxEmptyString, wxPoint(4,4), wxSize(472,72),
@ -528,7 +529,7 @@ bool UnzipFile(const char* strSrcFile, const char* strDestDir)
}
// metodi per raccattare il producer del cd che si sta installando
// metodi per raccattare il reseller del cd che si sta installando
//---------------------------------------------------------------------------------------
static const char* const encryption_key = "QSECOFR-";
@ -543,7 +544,8 @@ static wxString CampoDecode(const wxString& data)
return tmp;
}
int FindProducer()
//trova il numero del reseller
int FindReseller()
{
wxString strWorkingDir = wxFileName::GetCwd();
strWorkingDir << "/oem.ini";
@ -552,27 +554,88 @@ int FindProducer()
return nOem;
}
//stringhe globali per avere sempre a disposizione Reseller, Product e Appname in ogni momento (vanno sulle finestre)
static wxString _strReseller, _strProduct, _strAppname, _strLicence, _strLogo, _strIcon;
int FindProducerInfos(wxString& strName, wxString& strLogo, wxString& strWeb, wxString& strLicence)
//lettore del oem.ini che contiene tutte le info necessarie del CD
static void ReadOemIni()
{
int oem = FindProducer();
if (oem < 0)
oem = 0;
//si basa sul reseller che è la guida di ogni parametro
if (_strReseller.IsEmpty())
{
int oem = FindReseller();
if (oem < 0)
oem = 0;
wxString strWorkingDir = wxFileName::GetCwd();
strWorkingDir << "/oem.ini";
wxString strParagraph;
strParagraph << "OEM_" << oem;
CampoIniFile iniOem(strWorkingDir, strParagraph);
//trovato il numero del reseller legge il paragrafo corrispondente in oem.ini
wxString strWorkingDir = wxFileName::GetCwd();
strWorkingDir << "/oem.ini";
wxString strParagraph;
strParagraph << "OEM_" << oem;
CampoIniFile iniOem(strWorkingDir, strParagraph);
//raccatta le informazioni dal paragrafo corretto del produttore
const wxString strCriptedProducer = iniOem.Get("Name");
//adesso viene il bello!deve decrittarlo....ci vuole ENIGMA!
strName = CampoDecode(strCriptedProducer);
//raccatta le informazioni dal paragrafo corretto del produttore
//prima quelle crittate
const wxString strCriptedAppname = iniOem.Get("Name");
const wxString strCriptedProduct = iniOem.Get("Product");
const wxString strCriptedReseller = iniOem.Get("Reseller");
strLogo = iniOem.Get("Logo");
strWeb = iniOem.Get("Web");
strLicence = iniOem.Get("Licence");
//adesso viene il bello!deve decrittarle....ci vuole ENIGMA!
//usiamo una stringa del cazzo di appoggio per debuggare in tranquillità
wxString strCaz = CampoDecode(strCriptedAppname);
_strAppname = strCaz;
strCaz = CampoDecode(strCriptedProduct);
_strProduct = strCaz;
strCaz = CampoDecode(strCriptedReseller);
_strReseller = strCaz;
return oem;
}
//dati non crittati (a disposizione di cani e porci insomma...)
_strIcon = iniOem.Get("Icon");
_strLicence = iniOem.Get("Licence");
_strLogo = iniOem.Get("Logo");
}
}
//metodi per ritornare la stringa di competenza;si basano tutti su ReadOemIni
wxString Reseller()
{
if (_strReseller.IsEmpty())
ReadOemIni();
return _strReseller;
}
wxString Product()
{
if (_strProduct.IsEmpty())
ReadOemIni();
return _strProduct;
}
wxString Appname()
{
if (_strAppname.IsEmpty())
ReadOemIni();
return _strAppname;
}
wxString Licence()
{
if (_strLicence.IsEmpty())
ReadOemIni();
return _strLicence;
}
wxString Logo()
{
if (_strLogo.IsEmpty())
ReadOemIni();
return _strLogo;
}
wxString Icon()
{
if (_strIcon.IsEmpty())
ReadOemIni();
return _strIcon;
}

View File

@ -55,9 +55,7 @@ size_t ListNetworkDisks(wxArrayString& asList);
size_t ListSharedDirectories(wxArrayString& asList);
bool IsSharedDirectory (const wxString& strDir);
//cerca le producer infos del cd
int FindProducer();
int FindProducerInfos(wxString& strName, wxString& strLogo, wxString& strWeb, wxString& strLicence);
//cerca il reseller del CD per proporre le finestre corrette
int FindReseller();
#endif

View File

@ -83,10 +83,10 @@ void CampoWizardPage::SetHTMLPage(const wxString strFile)
//parte html della finestra standard
void CampoWizardPage::SetHTMLText(wxString strTitle, wxString strBody)
{
wxString strAppNameFull = wxT("<i>"); strAppNameFull += Bold(APPNAMEFULL); strAppNameFull += wxT("</i>");
wxString strAppNameFull = wxT("<i>"); strAppNameFull += Bold(PRODUCT); strAppNameFull += wxT("</i>");
wxString strAppName = APPNAME;
strTitle.Replace(wxT("APPNAMEFULL"), strAppNameFull);
strBody.Replace(wxT("APPNAMEFULL"), strAppNameFull);
strTitle.Replace(wxT("PRODUCT"), strAppNameFull);
strBody.Replace(wxT("PRODUCT"), strAppNameFull);
strTitle.Replace(wxT("APPNAME"), strAppName);
strBody.Replace(wxT("APPNAME"), strAppName);
@ -248,7 +248,7 @@ public:
CampoWizardPage1::CampoWizardPage1(wxWizard* parent) : CampoWizardPage(parent)
{
//contenuto della prima schermata (pagina benvenuto)
wxString strTitle = wxT("Benvenuti in <b>APPNAMEFULL</b>");
wxString strTitle = wxT("Benvenuti in <b>PRODUCT</b>");
wxString strBody = wxT("<p>Questo programma vi guiderà passo a passo nell'installazione / aggiornamento del software.</p>");
strBody += wxT("<p><u><b>LEGGERE ATTENTAMENTE LE ISTRUZIONI</u> che saranno visualizzate nelle finestre di questo programma di installazione!</b></p>");
strBody += wxT("<p><b>Prima di proseguire con l'installazione / aggiornamento assicurarsi:</b></p>");
@ -256,8 +256,8 @@ CampoWizardPage1::CampoWizardPage1(wxWizard* parent) : CampoWizardPage(parent)
strBody += wxT("<p><b>2) </b>di avere terminato ogni altro programma in funzione</b></p>");
strBody += wxT("<p><b>In caso di aggiornamento assicurarsi inoltre:</b></p>");
strBody += wxT("<p><b>3) </b>di avere effettuato un backup di sicurezza dei dati.</p>");
strBody += wxT("<p><b>4) </b>che il programma APPNAMEFULL NON sia in funzione.</p>");
strBody += wxT("<p><b>5) </b>che l'eventuale gestore dei servizi di APPNAMEFULL, se presente, NON sia in funzione.</p>");
strBody += wxT("<p><b>4) </b>che il programma PRODUCT NON sia in funzione.</p>");
strBody += wxT("<p><b>5) </b>che l'eventuale gestore dei servizi di PRODUCT, se presente, NON sia in funzione.</p>");
SetHTMLText(strTitle, strBody);
}
@ -284,9 +284,8 @@ bool CampoWizardPage2::ForwardValidate()
CampoWizardPage2::CampoWizardPage2(wxWizard* parent) : CampoWizardPage(parent)
{
wxString strName, strLogo, strWeb, strLicence;
const int nOem = FindProducerInfos(strName, strLogo, strWeb, strLicence);
SetHTMLPage(strLicence);
//nome del file di licenza settato in html e recuperato con apposita mitica funzione
SetHTMLPage(Licence());
//radiobutton Accetta / Rifiuta
wxArrayString asAccRef;
@ -353,8 +352,8 @@ bool CampoWizardPage3::ForwardValidate()
CampoIniFile InstallIni(strPrgPath + "/install.ini", "Main");
wxString strDiskPath = InstallIni.Get("DiskPath");
wxString strMsg = "Per aggiornare questa stazione di lavoro e' necessario aggiornare prima il Server di ";
strMsg << APPNAMEFULL << " in " << strDiskPath << " !\n";
strMsg << "Questa stazione di lavoro si aggiornera' automaticamente alla prima esecuzione del programma " << APPNAMEFULL;
strMsg << PRODUCT << " in " << strDiskPath << " !\n";
strMsg << "Questa stazione di lavoro si aggiornera' automaticamente alla prima esecuzione del programma " << PRODUCT;
return ErrorBox(strMsg);
}
@ -523,7 +522,7 @@ CampoWizardPage3::CampoWizardPage3(wxWizard* parent) : CampoWizardPage(parent)
if (asCampi.IsEmpty())
{
strTitle += wxT("Scelta Installazione");
strBody += wxT("<p>E' possibile <b>INSTALLARE <i>APPNAMEFULL</i></b> in un nuovo direttorio.</p>");
strBody += wxT("<p>E' possibile <b>INSTALLARE <i>PRODUCT</i></b> in un nuovo direttorio.</p>");
asCampi.Add("Nuova installazione"); //voce di nuova installazione!
m_pRadioBox = new wxRadioBox(this, 301, "Installazione del software", wxDefaultPosition,
@ -533,11 +532,11 @@ CampoWizardPage3::CampoWizardPage3(wxWizard* parent) : CampoWizardPage(parent)
else
{
strTitle += wxT("Scelta Aggiornamento / Installazione");
strBody += wxT("<p>E' possibile <b>AGGIORNARE (scelta consigliata)</b> una installazione di <b><i>APPNAMEFULL</i></b> gia' presente oppure <b>INSTALLARE</b> in un nuovo direttorio.</p>");
strBody += wxT("<p>E' possibile <b>AGGIORNARE (scelta consigliata)</b> una installazione di <b><i>PRODUCT</i></b> gia' presente oppure <b>INSTALLARE</b> in un nuovo direttorio.</p>");
strBody += wxT("<p>Selezionare l'opzione desiderata nel riquadro sottostante. In caso di piu' di una installazione presente sul computer ");
strBody += wxT("sara' preselezionata la eventuale installazione di tipo <b>Server</b> o <b>Standard</b>, in quanto <u>deve essere aggiornata per prima</u>! ");
strBody += wxT("<p>In questo caso procedere all'aggiornamento di tale installazione Server e <u>aggiornare successivamente le postazioni client ");
strBody += wxT("lanciando il programma <b><i>APPNAMEFULL</i></b> su di esse</u></p>");
strBody += wxT("lanciando il programma <b><i>PRODUCT</i></b> su di esse</u></p>");
//radiobutton con le scelte aggiornamento
asCampi.Add("Nuova installazione");
@ -558,7 +557,7 @@ CampoWizardPage3::CampoWizardPage3(wxWizard* parent) : CampoWizardPage(parent)
GetSizer()->AddSpacer(16);
GetSizer()->Add(chDemoPrg);
strBody += wxT("<p>E' possibile anche installare la versione <b>DEMO di <i>APPNAMEFULL</i></b>. <u>Questa versione e' a scopo puramente ");
strBody += wxT("<p>E' possibile anche installare la versione <b>DEMO di <i>PRODUCT</i></b>. <u>Questa versione e' a scopo puramente ");
strBody += wxT("dimostrativo e <b>NON</b> va di norma installata! Non e' utilizzabile come la versione normale</u> in quanto limitata nel ");
strBody += wxT("numero e nella data delle registrazioni e nel tempo di uso giornaliero (max 2 ore). La cartella di installazione della ");
strBody += wxT("versione dimostrativa e' C:/campodemo e dispone di un'area dati parzialmente precompilata.</p>");
@ -657,17 +656,17 @@ bool CampoWizardPage4::TransferDataToWindow()
case 1:
strBody += wxT("<p>E' stata rilevata una chiave tipo <b>Hardlock</b>:</p>");
strBody += wxT("<p align=center><img src=\"../../campo/servers/hardlock.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>APPNAMEFULL</i></b>. Premere il pulsante \"Avanti\".</p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
break;
case 2:
strBody += wxT("<p>E' stata rilevata una chiave tipo <b>Eutron</b>:</p>");
strBody += wxT("<p align=center><img src=\"../../campo/servers/eutron.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>APPNAMEFULL</i></b>. Premere il pulsante \"Avanti\".</p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
break;
case 3:
strBody += wxT("<p>E' stato rilevata una chiave remota condivisa in rete con il servizio di gestione autorizzazioni:</p>");
strBody += wxT("<p align=center><img src=\"../../campo/servers/autho.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>APPNAMEFULL</i></b>. Premere il pulsante \"Avanti\".</p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
Set(404, GetWizard().GetSrvAuth());
break;
@ -832,7 +831,7 @@ CampoWizardPage5::CampoWizardPage5(wxWizard* parent) : CampoWizardPage(parent)
strBody = wxT("<p><b>Standard (scelta consigliata)</b>. Installazione su postazione singola, con programmi e dati sul disco locale del computer</p>");
strBody += wxT("<p><b>Installazioni di rete</b> (per utenti esperti)</p>");
strBody += wxT("<p><b>Server</b>: Computer in rete sul quale sono presenti una copia, utilizzata o meno, dei programmi (server programmi) e larea dati (server dati). ");
strBody += wxT("In una installazione in rete di <b><i>APPNAMEFULL</i></b> e' necessario sia presente un unica postazione di tipo server, ");
strBody += wxT("In una installazione in rete di <b><i>PRODUCT</i></b> e' necessario sia presente un unica postazione di tipo server, ");
strBody += wxT("e deve essere installata per prima!</p>");
strBody += wxT("<p><b>Client</b>: Computer in rete sul quale e' presente una copia dei programmi ma non l'area dati. ");
strBody += wxT("I client possono essere installati solo dopo l'installazione del server!</p>");
@ -1084,16 +1083,16 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME</i> </p>");
strBody += wxT("<p>Digitare nel campo <b>'Cartella dati'</b> il percorso completo della cartella dove si desidera installare l'area dati. ");
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME\\dati</i> </p>");
strBody += wxT("<p>Le cartelle del programma e dei dati <b><u>dovranno essere condivise in modalita' lettura/scrittura</u></b> agli utenti di sistema e di rete che utilizzeranno il software <b><i>APPNAMEFULL</i></b>. ");
strBody += wxT("<p>Le cartelle del programma e dei dati <b><u>dovranno essere condivise in modalita' lettura/scrittura</u></b> agli utenti di sistema e di rete che utilizzeranno il software <b><i>PRODUCT</i></b>. ");
strBody += wxT("In mancanza di tale condivisione nessun client potra' accedere al server!</p>");
strBody += wxT("<p><b>Gestore autorizzazioni:</b> e' il software che permette di gestire una chiave di protezione hardware multiutenza condivisa in rete. ");
strBody += wxT("Installando tale software e' necessario specificare il computer su cui e' montata la chiave di protezione multiutenza.");
strBody += wxT("Viene di default proposto il computer su cui si sta eseguendo l'installazione di APPNAMEFULL (localhost).</p>");
strBody += wxT("<p><b>Gestore dizionari:</b> e' il software che permette di utilizzare APPNAMEFULL in lingue diverse dall'italiano. ");
strBody += wxT("Per l'installazione di questo software viene di default proposto il computer su cui si sta eseguendo l'installazione di APPNAMEFULL (localhost).</p>");
strBody += wxT("Viene di default proposto il computer su cui si sta eseguendo l'installazione di PRODUCT (localhost).</p>");
strBody += wxT("<p><b>Gestore dizionari:</b> e' il software che permette di utilizzare PRODUCT in lingue diverse dall'italiano. ");
strBody += wxT("Per l'installazione di questo software viene di default proposto il computer su cui si sta eseguendo l'installazione di PRODUCT (localhost).</p>");
strBody += wxT("<p><b>Modalita' di esecuzione programmi di gestione</b><br>");
strBody += wxT("<u>Come servizi:</u> i programmi di gestione vengono eseguiti come servizi di Windows; questa e' la modalita' consigliata ed e' obbligatoria in caso di installazione con Windows 2003/2008<br>");
strBody += wxT("<u>Nel menu esecuzione automatica:</u> i programmi di gestione vengono eseguiti automaticamente al primo accesso di un utente al server di APPNAMEFULL; usare questa modalita' solo nell'impossibilita' di utilizzare la precedente</p>");
strBody += wxT("<u>Nel menu esecuzione automatica:</u> i programmi di gestione vengono eseguiti automaticamente al primo accesso di un utente al server di PRODUCT; usare questa modalita' solo nell'impossibilita' di utilizzare la precedente</p>");
}
else
{
@ -1102,11 +1101,11 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME</i> </p>");
strBody += wxT("<p>Digitare nel campo <b>'Cartella dati'</b> il percorso completo della cartella dove si desidera installare l'area dati. ");
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME\\dati</i> </p>");
strBody += wxT("<p>Le cartelle del programma e dei dati <b><u>dovranno essere accessibili in modalita' lettura/scrittura</u></b> agli utenti di sistema e di rete che utilizzeranno il software <b><i>APPNAMEFULL</i></b>. ");
strBody += wxT("In mancanza di tale modalita' nessun utente potra' utilizzare il software <b><i>APPNAMEFULL</i></b> !</p>");
strBody += wxT("<p>Le cartelle del programma e dei dati <b><u>dovranno essere accessibili in modalita' lettura/scrittura</u></b> agli utenti di sistema e di rete che utilizzeranno il software <b><i>PRODUCT</i></b>. ");
strBody += wxT("In mancanza di tale modalita' nessun utente potra' utilizzare il software <b><i>PRODUCT</i></b> !</p>");
strBody += wxT("<p><b>Gestore autorizzazioni:</b> e' il software che permette di gestire una chiave di protezione hardware multiutenza condivisa in rete. ");
strBody += wxT("E' <b>necessario</b> installare questo software specificando <i>localhost</i> come computer su cui e' montata la chiave di protezione multiutenza.</p>");
strBody += wxT("<p><b>Gestore dizionari:</b> e' il software che permette di utilizzare APPNAMEFULL in lingue diverse dall'italiano. ");
strBody += wxT("<p><b>Gestore dizionari:</b> e' il software che permette di utilizzare PRODUCT in lingue diverse dall'italiano. ");
strBody += wxT("E' <b>necessario</b> installare questo software specificando <i>localhost</i> come computer su cui installare il servizio.</p>");
strBody += wxT("<p><b>Modalita' di esecuzione programmi di gestione:</b> <i><u>obbligatorio come servizi</u></i>!<br>");
}
@ -1334,7 +1333,7 @@ CampoWizardPage8::CampoWizardPage8(wxWizard* parent) : CampoWizardPage(parent)
strBody += wxT("<p>Il campo <b>'Cartella remota dati da utilizzare'</b> contiene il percorso completo della cartella di rete dove sono i dati. ");
strBody += wxT("E' la cartella dei dati condivisa dal server precedentemente installato. Se condivisa e connessa correttamente viene rilevata automaticamente e proposta dal programma. ");
strBody += wxT("Se non viene proposta automaticamente, digitare il percorso completo (es. <i><b>Z:\\APPNAME\\Dati</b></i>)</p>");
strBody += wxT("<p><b>Gestore dizionari:</b> e' il computer gestore dei dizionari di APPNAMEFULL in lingue diverse dall'italiano. Generalmente e' il computer agente da server di APPNAMEFULL in rete. ");
strBody += wxT("<p><b>Gestore dizionari:</b> e' il computer gestore dei dizionari di PRODUCT in lingue diverse dall'italiano. Generalmente e' il computer agente da server di PRODUCT in rete. ");
strBody += wxT("Premere il bottone <u>Cerca</u> per attivare la ricerca automatica di tale computer. Qualora tale ricerca fallisse digitare il nome del computer gestore dei dizionari</p>");
SetHTMLText(strTitle, strBody);
@ -1410,7 +1409,7 @@ bool CampoWizardPage9::TransferDataToWindow()
//controlla se il programma di teleassistenza e' gia' installato sul computer e decide se spuntare o meno..
//..il checkbox
bool bChkTeleass = false;
if (FindProducer() <= 0)
if (FindReseller() <= 0)
{
bChkTeleass = true;
const wxString strWinProgDir = GetWindowsProgramDirectory();
@ -1453,11 +1452,11 @@ CampoWizardPage9::CampoWizardPage9(wxWizard* parent) : CampoWizardPage(parent)
//..che c'è appena sopra di lui in program
wxString strTitle = wxT("Collegamenti e Teleassistenza");
wxString strBody;
strBody += wxT("<p>E' possibile creare l'icona di APPNAMEFULL sul desktop.</p>");
if (FindProducer() <= 0)
strBody += wxT("<p>E' possibile creare l'icona di PRODUCT sul desktop.</p>");
if (FindReseller() <= 0)
{
strBody += wxT("<p>E' possibile installare il programma di teleassistenza. E' il software che consente");
strBody += wxT(" ai tecnici dell'assistenza di controllare il computer su cui si installa APPNAMEFULL in caso di problemi gravi.");
strBody += wxT(" ai tecnici dell'assistenza di controllare il computer su cui si installa PRODUCT in caso di problemi gravi.");
strBody += wxT(" Se la casella risulta NON spuntata in automatico il programma di teleassistenza e' gia' presente");
strBody += wxT(" sul computer e non deve essere reinstallato.</p>");
}
@ -1472,7 +1471,7 @@ CampoWizardPage9::CampoWizardPage9(wxWizard* parent) : CampoWizardPage(parent)
wxCheckBox* pTeleass = new wxCheckBox(this, 902, wxT("Installare il programma di teleassistenza"));
GetSizer()->Add(pTeleass, 0, wxALL, 0);
if (FindProducer() > 0)
if (FindReseller() > 0)
pTeleass->Hide();
//wxCheckBox* pLink = new wxCheckBox(this, 1002, wxT("Associare i file .caz al programma"));
@ -1897,15 +1896,13 @@ CampoWizard::CampoWizard(wxWindow* pParent)
_iSrvAutostartMode = lm_none;//autostart dei servers
_bDesktopShortcut = false; //creazione link sul desktop
wxString strName, strLogo, strWeb, strLicence;
const int nOem = FindProducerInfos(strName, strLogo, strWeb, strLicence);
//nome del file di logo recuperato con apposito metodo e caricata immagine
wxImage iLogo;
iLogo.LoadFile(strLogo, wxBITMAP_TYPE_ANY);
iLogo.LoadFile(Logo(), wxBITMAP_TYPE_ANY);
int nWidth = iLogo.GetWidth();
int nHeight = iLogo.GetHeight();
//se l'immagine è orizzontale frega troppo spazio allora la ruotiamo di soppiatto
if (nWidth > nHeight)
if (nWidth > (2 * nHeight))
{
iLogo = iLogo.Rotate90(false);
nWidth = iLogo.GetWidth();
@ -1920,7 +1917,7 @@ CampoWizard::CampoWizard(wxWindow* pParent)
iLogo.Rescale(nWidth, nHeight, wxIMAGE_QUALITY_HIGH);
}
const wxBitmap bitmap(iLogo);
Create(pParent, wxID_ANY, APPNAMEFULL, bitmap);
Create(pParent, wxID_ANY, PRODUCT, bitmap);
m_pPage[0] = new CampoWizardPage1(this); //benvenuto con logo
m_pPage[1] = new CampoWizardPage2(this); //licenza

View File

@ -34,6 +34,15 @@
#include <wx/wizard.h>
#include <wx/zipstrm.h>
#define APPNAME wxT("Campo")
#define APPNAMEFULL wxT("CAMPO ENTERPRISE")
//roba per reperire i dati dal file oem.ini di configurazione del CD
wxString Product();
wxString Reseller();
wxString Appname();
wxString Licence();
wxString Logo();
wxString Icon();
#define PRODUCT Product()
#define RESELLER Reseller()
#define APPNAME Appname()
#define APPVERSION wxT("10.0")