1
0

More UI stuff

This commit is contained in:
Scott E. Graves
2017-02-05 20:43:05 -06:00
parent fe5fa9ce8f
commit f01332fa86
3 changed files with 100 additions and 34 deletions

View File

@@ -138,6 +138,7 @@ SiaApiError CSiaApi::_CSiaWallet::GetConfirmedBalance(SiaCurrency& balance) cons
if (API_SUCCESS(SiaCurlError, cerror))
{
balance = HastingsStringToSiaCurrency(String(CA2W(result["confirmedsiacoinbalance"].get<std::string>().c_str())));
ret = SiaApiError::Success;
}
return ret;
@@ -153,6 +154,7 @@ SiaApiError CSiaApi::_CSiaWallet::GetUnonfirmedBalance(SiaCurrency& balance) con
if (API_SUCCESS(SiaCurlError, cerror))
{
balance = HastingsStringToSiaCurrency(String(CA2W(result["unconfirmedincomingsiacoins"].get<std::string>().c_str())));
ret = SiaApiError::Success;
}
return ret;

View File

@@ -6,6 +6,7 @@
#include "SiaDriveApp.h"
#include "SiaDriveDlg.h"
#include "afxdialogex.h"
#include <stdbool.h>
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -58,11 +59,6 @@ CSiaDriveDlg::CSiaDriveDlg(CWnd* pParent /*=NULL*/)
_siaApi({L"localhost", 9980, L"1.1.0"})
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
_serverVersion = L"x.x.x";
_clientVersion = L"1.0.0";
_walletBalanceConfirmed = L"0";
_walletBalanceUnconfirmed = L"0";
_walletBalanceTotal = L"0";
}
void CSiaDriveDlg::DoDataExchange(CDataExchange* pDX)
@@ -176,10 +172,43 @@ HRESULT CSiaDriveDlg::OnButtonCancel(IHTMLElement* /*pElement*/)
return S_OK;
}
BOOL CSiaDriveDlg::PreTranslateMessage(MSG* pMsg)
{
//TODO: Implement copy/paste context menu
if ((pMsg->message == WM_RBUTTONDOWN) || (pMsg->message == WM_RBUTTONDBLCLK))
{
return TRUE;
}
return CDHtmlDialog::PreTranslateMessage(pMsg);
}
bool IsRefreshKeyMessage(const MSG *message)
{
return message
&& (message->message == WM_KEYUP)
&& (message->wParam == VK_F5);
}
HRESULT CSiaDriveDlg::TranslateAccelerator(MSG *message, const GUID *, DWORD)
{
return IsRefreshKeyMessage(message) ? E_FAIL : S_OK;
}
void CSiaDriveDlg::OnDocumentComplete(LPDISPATCH, LPCTSTR)
{
UpdateUi();
KillTimer(IDT_UPDATE);
_serverVersion = L"x.x.x";
_clientVersion = L"1.0.0";
_walletBalanceConfirmed = L"";
_walletBalanceUnconfirmed = L"";
_walletBalanceTotal = L"";
UpdateData(FALSE);
if ((_connected = UpdateUi(false)))
{
switch (_siaConfig.GetUI_Main_TabIndex())
{
case WALLET_TAB:
@@ -188,8 +217,9 @@ void CSiaDriveDlg::OnDocumentComplete(LPDISPATCH, LPCTSTR)
}
break;
}
}
SetTimer(IDT_UPDATE, 1000, nullptr);
SetTimer(IDT_UPDATE, 2000, nullptr);
}
void CSiaDriveDlg::OnTimer(UINT_PTR nIDEvent)
@@ -204,27 +234,57 @@ void CSiaDriveDlg::OnTimer(UINT_PTR nIDEvent)
}
}
void CSiaDriveDlg::SetWalletInfo()
bool CSiaDriveDlg::DisplaySiaInfo()
{
_serverVersion = _siaApi.GetServerVersion().c_str();
if (_serverVersion)
{
SiaCurrency confirmed;
_siaApi.GetWallet()->GetConfirmedBalance(confirmed);
if (API_SUCCESS(SiaApiError, _siaApi.GetWallet()->GetConfirmedBalance(confirmed)))
{
SiaCurrency unconfirmed;
_siaApi.GetWallet()->GetUnonfirmedBalance(unconfirmed);
if (API_SUCCESS(SiaApiError, _siaApi.GetWallet()->GetUnonfirmedBalance(unconfirmed)))
{
SiaCurrency total = confirmed + unconfirmed;
_walletBalanceConfirmed = SiaCurrencyToString(confirmed).c_str();
_walletBalanceUnconfirmed = SiaCurrencyToString(unconfirmed).c_str();
_walletBalanceTotal = SiaCurrencyToString(total).c_str();
return true;
}
}
}
_serverVersion = L"x.x.x";
_walletBalanceConfirmed = _walletBalanceUnconfirmed = _walletBalanceTotal = L"";
return false;
}
void CSiaDriveDlg::UpdateUi()
bool CSiaDriveDlg::UpdateUi(const bool& refresh)
{
_serverVersion = _siaApi.GetServerVersion().c_str();
SetWalletInfo();
bool ret = DisplaySiaInfo();
if (ret)
{
if (_connected)
{
UpdateData(FALSE);
}
else
{
KillTimer(IDT_UPDATE);
this->Navigate(this->m_strCurrentUrl);
}
}
else if (refresh)
{
_connected = false;
KillTimer(IDT_UPDATE);
this->Navigate(this->m_strCurrentUrl);
}
return ret;
}
HRESULT CSiaDriveDlg::GetDomElementById(const CString& id, CComPtr<IHTMLDOMNode>& node)
@@ -278,6 +338,7 @@ void CSiaDriveDlg::DisplayWalletTab()
{
if (_siaApi.GetWallet()->GetCreated())
{
}
else
{

View File

@@ -32,7 +32,6 @@ protected:
// Generated message map functions
virtual BOOL OnInitDialog();
virtual void OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl);
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
@@ -40,11 +39,14 @@ protected:
DECLARE_MESSAGE_MAP()
DECLARE_DHTML_EVENT_MAP()
virtual HRESULT TranslateAccelerator(MSG *message, const GUID *, DWORD) override;
virtual BOOL PreTranslateMessage(MSG* pMsg) override;
private:
void DisplayCreateWallet();
void DisplayWalletTab();
void SetWalletInfo();
void UpdateUi();
bool DisplaySiaInfo();
bool UpdateUi(const bool& refresh = true);
HRESULT GetDomElementById(const CString& id, CComPtr<IHTMLDOMNode>& node);
HRESULT GetDomElementAndNodeById(const CString& id, CComPtr<IHTMLDOMNode>& node, CComPtr<IHTMLElement>& elem);
@@ -56,6 +58,7 @@ private:
CString _walletBalanceTotal;
CString _walletBalanceConfirmed;
CString _walletBalanceUnconfirmed;
bool _connected = false;
static const UINT IDT_UPDATE = 1;
static const std::uint8_t WALLET_TAB = 0;
};