Patch level : 10.0
Files correlati : lurch authoriz Ricompilazione Demo : [ ] Commento : Corretta visualizzazione versione e patch git-svn-id: svn://10.65.10.50/trunk@20140 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0b70cb0150
commit
f0f8949357
@ -15,7 +15,7 @@
|
||||
// --------------------------------------------------------------------------
|
||||
// headers
|
||||
// --------------------------------------------------------------------------
|
||||
#include <wx/wxprec.h>
|
||||
#include <wx/wx.h>
|
||||
#include "baseserv.h"
|
||||
|
||||
#include <wx/config.h>
|
||||
@ -128,7 +128,7 @@ void TTaskBarIcon::Init()
|
||||
{
|
||||
wxInitAllImageHandlers();
|
||||
wxImage img(strIcon);
|
||||
img.Rescale(32,32);
|
||||
img.Rescale(32,32/*,wxIMAGE_QUALITY_HIGH*/);
|
||||
const wxBitmap bmp(img);
|
||||
icon.CopyFromBitmap(bmp);
|
||||
}
|
||||
@ -587,23 +587,60 @@ const wxString& TBaseServerApp::GetConfigName() const
|
||||
return m_strIni;
|
||||
}
|
||||
|
||||
void TBaseServerApp::SetConfigString(const wxChar* key, const wxChar* val, const wxChar* app) const
|
||||
wxString TBaseServerApp::GetConfigFileString(const wxChar* file, const wxChar* paragraph, const wxChar* key, const wxChar* def) const
|
||||
{
|
||||
wxString str;
|
||||
|
||||
if (file == NULL || *file <= ' ')
|
||||
file = GetConfigName();
|
||||
if (paragraph == NULL || *paragraph <= ' ')
|
||||
paragraph = GetAppName();
|
||||
|
||||
#ifdef __WXMSW__
|
||||
if (app == NULL || *app == '\0')
|
||||
app = GetAppName();
|
||||
::WritePrivateProfileString(app, key, val, GetConfigName());
|
||||
wxChar value[512]; memset(value, 0, sizeof(value));
|
||||
const int len = ::GetPrivateProfileString(paragraph, key, def, value, sizeof(value)-1, file);
|
||||
str = len <= 0 ? def : value;
|
||||
#else
|
||||
wxFileConfig ini("", "", GetConfigName(), "", wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_RELATIVE_PATH);
|
||||
wxFileConfig ini("", "", file, "", wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_RELATIVE_PATH);
|
||||
str << '/' << paragraph;
|
||||
ini.SetPath(str);
|
||||
ini.Read(key, &str, def);
|
||||
#endif
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
long TBaseServerApp::GetConfigFileInt(const wxChar* file, const wxChar* paragraph, const wxChar* key, long val) const
|
||||
{
|
||||
const wxString str = GetConfigFileString(file, paragraph, key, "*");
|
||||
if (str != "*")
|
||||
str.ToLong(&val);
|
||||
return val;
|
||||
}
|
||||
|
||||
void TBaseServerApp::SetConfigFileString(const wxChar* file, const wxChar* paragraph, const wxChar* key, const wxChar* val) const
|
||||
{
|
||||
if (file == NULL || *file <= ' ')
|
||||
file = GetConfigName();
|
||||
if (paragraph == NULL || *paragraph <= ' ')
|
||||
paragraph = GetAppName();
|
||||
|
||||
#ifdef __WXMSW__
|
||||
::WritePrivateProfileString(paragraph, key, val, file);
|
||||
#else
|
||||
wxFileConfig ini("", "", file, "", wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_RELATIVE_PATH);
|
||||
wxString str;
|
||||
if (app == NULL || *app == '\0')
|
||||
app = GetAppName();
|
||||
str << '/' << app;
|
||||
str << '/' << paragraph;
|
||||
ini.SetPath(str);
|
||||
ini.Write(key, val);
|
||||
#endif
|
||||
}
|
||||
|
||||
void TBaseServerApp::SetConfigString(const wxChar* key, const wxChar* val, const wxChar* app) const
|
||||
{
|
||||
return SetConfigFileString(NULL, app, key, val);
|
||||
}
|
||||
|
||||
void TBaseServerApp::SetConfigInt(const wxChar* key, int val, const wxChar* app) const
|
||||
{
|
||||
wxString str; str.Printf("%d", val);
|
||||
@ -612,26 +649,12 @@ void TBaseServerApp::SetConfigInt(const wxChar* key, int val, const wxChar* app)
|
||||
|
||||
wxString TBaseServerApp::GetConfigString(const wxChar* key, const wxChar* def, const wxChar* app) const
|
||||
{
|
||||
wxString str;
|
||||
if (app == NULL || *app == '\0')
|
||||
app = GetAppName();
|
||||
#ifdef __WXMSW__
|
||||
wxChar value[512]; memset(value, 0, sizeof(value));
|
||||
const int len = ::GetPrivateProfileString(app, key, def, value, sizeof(value)-1, GetConfigName());
|
||||
str = len <= 0 ? def : value;
|
||||
#else
|
||||
wxFileConfig ini("", "", GetConfigName(), "", wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_RELATIVE_PATH);
|
||||
str << '/' << app;
|
||||
ini.SetPath(str);
|
||||
ini.Read(key, &str, def);
|
||||
#endif
|
||||
return str;
|
||||
return GetConfigFileString(NULL, app, key, def);
|
||||
}
|
||||
|
||||
int TBaseServerApp::GetConfigInt(const wxChar* key, int def, const wxChar* app) const
|
||||
{
|
||||
const wxString str = GetConfigString(key, "*", app);
|
||||
return str != "*" ? atoi(str) : def;
|
||||
return GetConfigFileInt(NULL, app, key, def);
|
||||
}
|
||||
|
||||
bool TBaseServerApp::GetConfigBool(const wxChar* key, bool def, const wxChar* app) const
|
||||
@ -650,22 +673,17 @@ int TBaseServerApp::GetDefaultPort() const
|
||||
|
||||
int TBaseServerApp::GetOemInt(const wxChar* key, int def) const
|
||||
{
|
||||
static int _oem = -883;
|
||||
|
||||
#ifdef __WXMSW__
|
||||
if (_oem == -883)
|
||||
_oem = ::GetPrivateProfileInt("MAIN", "OEM", -1, OEM_INI);
|
||||
static int _oem = GetConfigFileInt(OEM_INI, "MAIN", "OEM", -1);
|
||||
if (_oem >= 0)
|
||||
{
|
||||
if (wxStrcmp(key, wxT("OEM")) != 0)
|
||||
{
|
||||
wxString str; str.Printf(wxT("OEM_%d"), _oem);
|
||||
def = ::GetPrivateProfileInt(str, key, def, OEM_INI);
|
||||
def = GetConfigFileInt(OEM_INI, str, key, def);
|
||||
}
|
||||
else
|
||||
def = _oem;
|
||||
}
|
||||
#endif
|
||||
|
||||
return def;
|
||||
}
|
||||
@ -678,12 +696,8 @@ wxString TBaseServerApp::GetOemString(const wxChar* key, const wxChar* def) cons
|
||||
{
|
||||
if (wxStrcmp(key, "OEM") != 0)
|
||||
{
|
||||
#ifdef __WXMSW__
|
||||
wxChar value[512]; memset(value, 0, sizeof(value));
|
||||
str.Printf("OEM_%d", oem);
|
||||
::GetPrivateProfileString(str, key, def, value, sizeof(value)-1, OEM_INI);
|
||||
str = value;
|
||||
#endif
|
||||
str = GetConfigFileString(OEM_INI, str, key, def);
|
||||
}
|
||||
else
|
||||
str.Printf("%d", oem);
|
||||
@ -691,10 +705,18 @@ wxString TBaseServerApp::GetOemString(const wxChar* key, const wxChar* def) cons
|
||||
return str;
|
||||
}
|
||||
|
||||
wxString TBaseServerApp::GetInstallString(const wxChar* key, const wxChar* module) const
|
||||
{
|
||||
if (module == NULL || *module <= ' ')
|
||||
module = wxT("sr");
|
||||
return GetConfigFileString(wxT("../install.ini"), module, key, wxEmptyString);
|
||||
}
|
||||
|
||||
bool TBaseServerApp::IsAdvanced() const
|
||||
{
|
||||
const int nOEM = GetOemInt(wxT("OEM"), -1);
|
||||
return nOEM==0 || nOEM>2; }
|
||||
return nOEM==0 || nOEM>2;
|
||||
}
|
||||
|
||||
wxString TBaseServerApp::GetLogFileName() const
|
||||
{ return GetConfigString("LogFile"); }
|
||||
|
@ -92,7 +92,11 @@ private:
|
||||
#ifdef wxHAS_TASK_BAR_ICON
|
||||
TTaskBarIcon* m_Tray;
|
||||
#endif
|
||||
|
||||
|
||||
wxString GetConfigFileString(const wxChar* file, const wxChar* paragraph, const wxChar* key, const wxChar* def) const;
|
||||
void SetConfigFileString(const wxChar* file, const wxChar* paragraph, const wxChar* key, const wxChar* value) const;
|
||||
long GetConfigFileInt(const wxChar* file, const wxChar* paragraph, const wxChar* key, long val) const;
|
||||
|
||||
protected:
|
||||
wxSingleInstanceChecker* m_SingleInstance;
|
||||
|
||||
@ -115,6 +119,8 @@ protected:
|
||||
|
||||
wxString GetOemString(const wxChar* key, const wxChar* def = wxEmptyString) const;
|
||||
int GetOemInt(const wxChar* key, int def = 0) const;
|
||||
wxString GetInstallString(const wxChar* key, const wxChar* module = wxEmptyString) const;
|
||||
|
||||
bool IsAdvanced() const;
|
||||
|
||||
public:
|
||||
|
@ -31,14 +31,16 @@ protected:
|
||||
TXmlItem& AddMiniForm(TXmlItem& tr, const wxChar* action, const wxChar* app, const wxChar* prompt) const;
|
||||
void EnumerateVariables(const wxString& strApp, wxArrayString& arr) const;
|
||||
|
||||
const wxArrayString& GetServersList();
|
||||
const wxArrayString& GetAutoRunList();
|
||||
const wxArrayString& GetServersList() const ;
|
||||
const wxArrayString& GetAutoRunList() const;
|
||||
const TProcessHashMap& GetRunningServers() const { return m_hmProcMap; }
|
||||
|
||||
bool PingProcess(const wxString& strApp);
|
||||
void StopProcess(const wxString& strApp);
|
||||
wxString StartProcess(const wxString& strApp);
|
||||
|
||||
|
||||
TXmlItem& AddTableRow(TXmlItem& table, const wxChar* prompt, const wxString& value) const;
|
||||
|
||||
public:
|
||||
void GenerateFile(wxString& strFilename);
|
||||
bool IsMagicName(wxString& strFilename) const;
|
||||
@ -163,7 +165,7 @@ void TLurchServer::OnEndProcess(wxProcessEvent& evt)
|
||||
const wxChar* TLurchServer::GetAppName() const
|
||||
{ return wxT("Lurch"); }
|
||||
|
||||
const wxArrayString& TLurchServer::GetServersList()
|
||||
const wxArrayString& TLurchServer::GetServersList() const
|
||||
{
|
||||
if (m_aServers.IsEmpty())
|
||||
{
|
||||
@ -171,7 +173,7 @@ const wxArrayString& TLurchServer::GetServersList()
|
||||
const size_t size = ini.GetSize();
|
||||
wxChar* buff = new wxChar[size];
|
||||
ini.Read(buff, size);
|
||||
|
||||
|
||||
const char* aperta = strchr(buff, '[');
|
||||
while (aperta != NULL)
|
||||
{
|
||||
@ -180,7 +182,7 @@ const wxArrayString& TLurchServer::GetServersList()
|
||||
{
|
||||
*chiusa = '\0';
|
||||
wxString str = aperta+1;
|
||||
m_aServers.Add(str);
|
||||
((wxArrayString&)m_aServers).Add(str);
|
||||
aperta = strchr(chiusa+1, '[');
|
||||
}
|
||||
else
|
||||
@ -190,7 +192,7 @@ const wxArrayString& TLurchServer::GetServersList()
|
||||
return m_aServers;
|
||||
}
|
||||
|
||||
const wxArrayString& TLurchServer::GetAutoRunList()
|
||||
const wxArrayString& TLurchServer::GetAutoRunList() const
|
||||
{
|
||||
if (m_aAutoRun.IsEmpty())
|
||||
{
|
||||
@ -199,13 +201,12 @@ const wxArrayString& TLurchServer::GetAutoRunList()
|
||||
{
|
||||
const bool bAutorun = GetConfigBool("Autorun", false, as[i]);
|
||||
if (bAutorun)
|
||||
m_aAutoRun.Add(as[i]);
|
||||
((wxArrayString&)m_aAutoRun).Add(as[i]);
|
||||
}
|
||||
}
|
||||
return m_aAutoRun;
|
||||
}
|
||||
|
||||
|
||||
TXmlItem& TLurchServer::AddMiniForm(TXmlItem& tr, const wxChar* action, const wxChar* app, const wxChar* prompt) const
|
||||
{
|
||||
TXmlItem& td = tr.AddChild("td").SetAttr("width", "10%");
|
||||
@ -225,6 +226,14 @@ TXmlItem& TLurchServer::AddMiniForm(TXmlItem& tr, const wxChar* action, const wx
|
||||
return submit;
|
||||
}
|
||||
|
||||
TXmlItem& TLurchServer::AddTableRow(TXmlItem& table, const wxChar* prompt, const wxString& value) const
|
||||
{
|
||||
TXmlItem& tr = table.AddChild("tr");
|
||||
tr.AddChild("td").AddEnclosedText(prompt);
|
||||
tr.AddChild("td").AddEnclosedText(value);
|
||||
return tr;
|
||||
}
|
||||
|
||||
void TLurchServer::GenerateFile(wxString& strFilename)
|
||||
{
|
||||
TXmlItem html;
|
||||
@ -288,21 +297,21 @@ void TLurchServer::GenerateFile(wxString& strFilename)
|
||||
panel.SetAttr("border", "1"); panel.SetAttr("width", "100%");
|
||||
panel.AddChild("caption").AddEnclosedText("Options");
|
||||
|
||||
TXmlItem& tr0 = panel.AddChild("tr");
|
||||
tr0.AddChild("td").AddEnclosedText("Working directory");
|
||||
tr0.AddChild("td").AddEnclosedText(wxGetCwd());
|
||||
AddTableRow(panel, wxT("Working directory"), wxGetCwd());
|
||||
|
||||
TXmlItem& tr1 = panel.AddChild("tr");
|
||||
tr1.AddChild("td").AddEnclosedText("Host Name");
|
||||
wxString strHost; strHost << wxGetHostName() << wxT(":") << GetDefaultPort();
|
||||
tr1.AddChild("td").AddEnclosedText(strHost);
|
||||
AddTableRow(panel, wxT("Host Name"), strHost);
|
||||
|
||||
const wxString strVersion = GetInstallString(wxT("Versione"));
|
||||
wxString str; str.Printf(wxT("%04d / %5.2lf"), wxAtoi(strVersion.Left(4)), wxAtoi(strVersion.Mid(4))/100.0);
|
||||
AddTableRow(panel, wxT("Version"), str);
|
||||
AddTableRow(panel, wxT("Patch"), GetInstallString(wxT("Patch")));
|
||||
AddTableRow(panel, wxT("Date"), GetInstallString(wxT("Data")));
|
||||
|
||||
if (IsAdvanced())
|
||||
{
|
||||
TXmlItem& tr2 = panel.AddChild("tr");
|
||||
tr2.AddChild("td").AddEnclosedText("Ping Frequency");
|
||||
wxString strFreq; strFreq << m_PingTimer.GetInterval()/1000;
|
||||
tr2.AddChild("td").AddEnclosedText(strFreq);
|
||||
AddTableRow(panel, wxT("Ping Frequency"), strFreq);
|
||||
}
|
||||
|
||||
html.Save(strFilename);
|
||||
|
Loading…
x
Reference in New Issue
Block a user