From fe5fa9ce8fedd02c62534f9bf1bc39d68247d504 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sun, 5 Feb 2017 00:32:48 -0600 Subject: [PATCH] More UI changes --- SiaDrive/SiaDrive.htm | 32 ++++++++++++------- SiaDrive/SiaDriveDlg.cpp | 67 ++++++++++++++++++++++++++++++++++------ SiaDrive/SiaDriveDlg.h | 3 ++ 3 files changed, 80 insertions(+), 22 deletions(-) diff --git a/SiaDrive/SiaDrive.htm b/SiaDrive/SiaDrive.htm index 3050721..02e8883 100644 --- a/SiaDrive/SiaDrive.htm +++ b/SiaDrive/SiaDrive.htm @@ -31,18 +31,7 @@
- - - - - -
- -
- - - -
+
@@ -57,6 +46,25 @@ + + + +
+ + + + +
+ +
+ + + +
+
diff --git a/SiaDrive/SiaDriveDlg.cpp b/SiaDrive/SiaDriveDlg.cpp index 34c4df2..c5510bf 100644 --- a/SiaDrive/SiaDriveDlg.cpp +++ b/SiaDrive/SiaDriveDlg.cpp @@ -178,9 +178,18 @@ HRESULT CSiaDriveDlg::OnButtonCancel(IHTMLElement* /*pElement*/) void CSiaDriveDlg::OnDocumentComplete(LPDISPATCH, LPCTSTR) { + UpdateUi(); + + switch (_siaConfig.GetUI_Main_TabIndex()) + { + case WALLET_TAB: + { + DisplayWalletTab(); + } + break; + } + SetTimer(IDT_UPDATE, 1000, nullptr); - - UpdateData(FALSE); } void CSiaDriveDlg::OnTimer(UINT_PTR nIDEvent) @@ -215,16 +224,54 @@ void CSiaDriveDlg::UpdateUi() _serverVersion = _siaApi.GetServerVersion().c_str(); SetWalletInfo(); - switch (_siaConfig.GetUI_Main_TabIndex()) + UpdateData(FALSE); +} + +HRESULT CSiaDriveDlg::GetDomElementById(const CString& id, CComPtr& node) +{ + CComPtr elem; + return GetDomElementAndNodeById(id, node, elem); +} + +HRESULT CSiaDriveDlg::GetDomElementAndNodeById(const CString& id, CComPtr& node, CComPtr& elem) +{ + HRESULT hr; + if (SUCCEEDED((hr = GetElement(id, &elem)))) { - case WALLET_TAB: - { - DisplayWalletTab(); - } - break; + hr = elem->QueryInterface(IID_IHTMLDOMNode, reinterpret_cast(&node)); } - UpdateData(FALSE); + return hr; +} + +void CSiaDriveDlg::DisplayCreateWallet() +{ + CComPtr mainNode; + if (SUCCEEDED(GetDomElementById(L"main_window", mainNode))) + { + CComPtr div; + CComPtr walletCreateNode; + if (SUCCEEDED(GetDomElementAndNodeById(L"create_wallet", walletCreateNode, div))) + { + CComPtr parent; + if (SUCCEEDED(walletCreateNode->get_parentNode(&parent))) + { + CComPtr removedNode; + if (SUCCEEDED(parent->removeChild(walletCreateNode, &removedNode))) + { + CComPtr appendedNode; + if (SUCCEEDED(parent->appendChild(removedNode, &appendedNode))) + { + CComPtr style; + if (SUCCEEDED(div->get_style(&style))) + { + style->put_display(L"block"); + } + } + } + } + } + } } void CSiaDriveDlg::DisplayWalletTab() @@ -234,6 +281,6 @@ void CSiaDriveDlg::DisplayWalletTab() } else { - + DisplayCreateWallet(); } } diff --git a/SiaDrive/SiaDriveDlg.h b/SiaDrive/SiaDriveDlg.h index 071867c..4f2194e 100644 --- a/SiaDrive/SiaDriveDlg.h +++ b/SiaDrive/SiaDriveDlg.h @@ -41,9 +41,12 @@ protected: DECLARE_DHTML_EVENT_MAP() private: + void DisplayCreateWallet(); void DisplayWalletTab(); void SetWalletInfo(); void UpdateUi(); + HRESULT GetDomElementById(const CString& id, CComPtr& node); + HRESULT GetDomElementAndNodeById(const CString& id, CComPtr& node, CComPtr& elem); private: CSiaDriveConfig _siaConfig;