本文整理汇总了C++中COptions::GetOption方法的典型用法代码示例。如果您正苦于以下问题:C++ COptions::GetOption方法的具体用法?C++ COptions::GetOption怎么用?C++ COptions::GetOption使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COptions
的用法示例。
在下文中一共展示了COptions::GetOption方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DisplayUpdateAvailability
void CUpdateWizard::DisplayUpdateAvailability(bool showDialog)
{
COptions* pOptions = COptions::Get();
if (CBuildInfo::GetVersion() == _T("custom build"))
return;
const wxString& newVersion = pOptions->GetOption(OPTION_UPDATECHECK_NEWVERSION);
if (newVersion == _T(""))
return;
wxLongLong v = CBuildInfo::ConvertToVersionNumber(newVersion);
if (v <= CBuildInfo::ConvertToVersionNumber(CBuildInfo::GetVersion()))
{
pOptions->SetOption(OPTION_UPDATECHECK_NEWVERSION, _T(""));
return;
}
if (!m_menuUpdated)
{
m_menuUpdated = true;
#ifdef __WXMSW__
// All open menus need to be closed or app will become unresponsive.
::EndMenu();
#endif
CMainFrame* pFrame = (CMainFrame*)m_parent;
wxMenu* pMenu = new wxMenu();
const wxString& name = wxString::Format(_("&Version %s"), pOptions->GetOption(OPTION_UPDATECHECK_NEWVERSION).c_str());
pMenu->Append(XRCID("ID_CHECKFORUPDATES"), name);
wxMenuBar* pMenuBar = pFrame->GetMenuBar();
if (pMenuBar)
pMenuBar->Append(pMenu, _("&New version available!"));
}
if (showDialog && !m_updateShown)
{
if (wxDialogEx::ShownDialogs())
{
m_busy_timer.Start(1000, true);
return;
}
m_updateShown = true;
#ifdef __WXMSW__
// All open menus need to be closed or app will become unresponsive.
::EndMenu();
#endif
CUpdateWizard dlg(m_parent);
if (dlg.Load())
dlg.Run();
}
}
示例2: LoadPage
bool COptionsPageEdit::LoadPage()
{
bool failure = false;
COptions* pOptions = COptions::Get();
wxString editor = pOptions->GetOption(OPTION_EDIT_DEFAULTEDITOR);
if (editor.empty() || editor[0] == '0')
SetRCheck(XRCID("ID_DEFAULT_NONE"), true, failure);
else if (editor[0] == '1')
SetRCheck(XRCID("ID_DEFAULT_TEXT"), true, failure);
else
{
if (editor[0] == '2')
editor = editor.Mid(1);
SetRCheck(XRCID("ID_DEFAULT_CUSTOM"), true, failure);
SetText(XRCID("ID_EDITOR"), editor, failure);
}
if (pOptions->GetOptionVal(OPTION_EDIT_ALWAYSDEFAULT))
SetRCheck(XRCID("ID_USEDEFAULT"), true, failure);
else
SetRCheck(XRCID("ID_USEASSOCIATIONS"), true, failure);
SetCheckFromOption(XRCID("ID_EDIT_TRACK_LOCAL"), OPTION_EDIT_TRACK_LOCAL, failure);
if (!failure)
SetCtrlState();
return !failure;
}
示例3: Init
BOOL CAdminSocket::Init()
{
char *buffer = new char[100];
char *p = buffer;
strcpy(buffer, "FZS");
p += 3;
*p++ = 0;
*p++ = 4;
memcpy(p, &SERVER_VERSION, 4);
p += 4;
*p++ = 0;
*p++ = 4;
memcpy(p, &PROTOCOL_VERSION, 4);
p += 4;
COptions options;
CStdString pass = options.GetOption(OPTION_ADMINPASS);
CStdString peerAddress;
UINT port = 0;
if (GetPeerName(peerAddress, port) && IsLocalhost(peerAddress) && pass == _T("")) {
BOOL res = Send(buffer, p-buffer) == p - buffer;
delete [] buffer;
if (!res) {
Close();
return FALSE;
}
return FinishLogon();
}
else {
*p++ = 0;
DWORD len = 20;
memcpy(p, &len, 4);
p += 4;
*p++ = 0;
*p++ = 8;
int i;
for (i = 0; i < 8; ++i) {
m_Nonce1[i] = std::uniform_int_distribution<unsigned int>(0, 255)(std::random_device());
*p++ = m_Nonce1[i];
}
*p++ = 0;
*p++ = 8;
for (i = 0; i < 8; ++i) {
m_Nonce2[i] = std::uniform_int_distribution<unsigned int>(0, 255)(std::random_device());
*p++ = m_Nonce2[i];
}
}
int res = Send(buffer, p-buffer) == p-buffer;
delete [] buffer;
return res;
}
示例4: Run
bool CUpdateWizard::Run()
{
COptions* pOptions = COptions::Get();
if (CBuildInfo::GetVersion() == _T("custom build"))
return false;
const wxString& newVersion = pOptions->GetOption(OPTION_UPDATECHECK_NEWVERSION);
if (newVersion == _T(""))
return RunWizard(m_pages.front());
if (CBuildInfo::ConvertToVersionNumber(newVersion) <= CBuildInfo::ConvertToVersionNumber(CBuildInfo::GetVersion()))
{
pOptions->SetOption(OPTION_UPDATECHECK_NEWVERSION, _T(""));
return RunWizard(m_pages.front());
}
// Force another check
PrepareUpdateCheckPage();
m_start_check = true;
m_currentPage = 0;
return RunWizard(m_pages[0]);
}
示例5: ParseData
//.........这里部分代码省略.........
// Extract version/date
pos = line.Find(' ');
if (pos < 1)
continue;
wxString versionOrDate = line.Left(pos);
line = line.Mid(pos + 1);
// Extract URL
wxString url = line;
if (url == _T("none"))
url = _T("");
pos = url.Find(' ');
if (pos < 1)
newChecksum.clear();
else
{
newChecksum = url.Mid(pos + 1);
url = url.Left(pos);
}
if (type == _T("nightly"))
{
if (!m_loaded)
continue;
if (!XRCCTRL(*this, "ID_CHECKNIGHTLY", wxCheckBox)->GetValue())
continue;
wxDateTime nightlyDate;
if (!nightlyDate.ParseDate(versionOrDate))
continue;
wxDateTime buildDate = CBuildInfo::GetBuildDate();
if (!buildDate.IsValid() || !nightlyDate.IsValid() || nightlyDate <= buildDate)
continue;
if (url == _T(""))
continue;
newVersion = versionOrDate + _T(" Nightly");
newUrl = url;
break;
}
else
{
wxLongLong v = CBuildInfo::ConvertToVersionNumber(versionOrDate);
if (v <= ownVersionNumber)
continue;
}
newVersion = versionOrDate;
newVersionNumber = CBuildInfo::ConvertToVersionNumber(versionOrDate);
newUrl = url;
}
if (!m_loaded)
{
if (newVersion == _T(""))
return;
COptions* pOptions = COptions::Get();
pOptions->SetOption(OPTION_UPDATECHECK_NEWVERSION, newVersion);
DisplayUpdateAvailability(true);
return;
}
else
{
// Since the auto check and the manual check, a newer version might have been published
COptions* pOptions = COptions::Get();
if (!pOptions->GetOption(OPTION_UPDATECHECK_NEWVERSION).empty())
pOptions->SetOption(OPTION_UPDATECHECK_NEWVERSION, newVersion);
}
if (newVersion == _T(""))
{
m_skipPageChanging = true;
ShowPage(m_pages[4]);
m_currentPage = 4;
m_skipPageChanging = false;
}
else
{
PrepareUpdateAvailablePage(newVersion, newUrl, newChecksum);
m_skipPageChanging = true;
ShowPage(m_pages[1]);
m_currentPage = 1;
m_skipPageChanging = false;
}
wxButton* pNext = wxDynamicCast(FindWindow(wxID_FORWARD), wxButton);
pNext->Enable();
wxButton* pPrev = wxDynamicCast(FindWindow(wxID_BACKWARD), wxButton);
pPrev->Disable();
}
示例6: ParseRecvBuffer
BOOL CAdminSocket::ParseRecvBuffer()
{
if (m_nRecvBufferPos<5)
return FALSE;
if ((m_pRecvBuffer[0]&0x03) != 0)
{
SendCommand(_T("Protocol error: Unknown command type, closing connection."), 1);
Close();
m_pAdminInterface->Remove(this);
return FALSE;
}
else
{
DWORD len;
memcpy(&len, m_pRecvBuffer+1, 4);
if (len > 0xFFFFFF)
{
SendCommand(_T("Protocol error: Invalid data length, closing connection."), 1);
Close();
m_pAdminInterface->Remove(this);
return FALSE;
}
if (m_nRecvBufferPos < len+5)
return FALSE;
else
{
int nID = (m_pRecvBuffer[0]&0x7C)>>2;
if (m_bStillNeedAuth)
{
if (nID)
{
SendCommand(_T("Protocol error: Not authenticated, closing connection."), 1);
Close();
m_pAdminInterface->Remove(this);
return FALSE;
}
if (len != 16)
{
SendCommand(_T("Protocol error: Auth data len invalid, closing connection."), 1);
Close();
m_pAdminInterface->Remove(this);
return FALSE;
}
MD5 md5;
md5.update(m_Nonce1, 8);
COptions options;
CStdString pass = options.GetOption(OPTION_ADMINPASS);
if (pass.GetLength() < 6)
{
SendCommand(_T("Protocol error: Server misconfigured, admin password not set correctly"), 1);
Close();
m_pAdminInterface->Remove(this);
return FALSE;
}
md5.update((unsigned char *)pass.c_str(), pass.GetLength());
md5.update(m_Nonce2, 8);
md5.finalize();
unsigned char *digest = md5.raw_digest();
if (memcmp(m_pRecvBuffer + 5, digest, 16))
{
SendCommand(_T("Protocol error: Auth failed, closing connection."), 1);
Close();
m_pAdminInterface->Remove(this);
return FALSE;
}
delete [] digest;
FinishLogon();
}
else
m_pAdminInterface->ProcessCommand(this, nID, m_pRecvBuffer+5, len);
memmove(m_pRecvBuffer, m_pRecvBuffer+len+5, m_nRecvBufferPos-len-5);
m_nRecvBufferPos-=len+5;
}
}
return TRUE;
}