More generic element swapping
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
#endif
|
||||
|
||||
/* Home Test
|
||||
whipped wizard hefty avatar gnome knuckle uptight jury ruling evenings urchins visited dating pioneer offend trying oyster setup maximum library mayor yearbook keep voyage excess bifocals kettle gutter aces
|
||||
wept saxophone dialect depth update jaunt loincloth asleep lush gnome laptop upper olive itches essential neither feel fewest siblings brunt tasked upwards coal niece faked dating hedgehog magically abort
|
||||
*/
|
||||
|
||||
// CAboutDlg dialog used for App About
|
||||
@@ -305,16 +305,16 @@ bool CSiaDriveDlg::UpdateUi(const bool& refresh)
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT CSiaDriveDlg::GetDomElementById(const CString& id, CComPtr<IHTMLDOMNode>& node)
|
||||
HRESULT CSiaDriveDlg::GetDomNodeById(const String& id, CComPtr<IHTMLDOMNode>& node)
|
||||
{
|
||||
CComPtr<IHTMLElement> elem;
|
||||
return GetDomElementAndNodeById(id, node, elem);
|
||||
return GetDomNodeAndElementById(id, node, elem);
|
||||
}
|
||||
|
||||
HRESULT CSiaDriveDlg::GetDomElementAndNodeById(const CString& id, CComPtr<IHTMLDOMNode>& node, CComPtr<IHTMLElement>& elem)
|
||||
HRESULT CSiaDriveDlg::GetDomNodeAndElementById(const String& id, CComPtr<IHTMLDOMNode>& node, CComPtr<IHTMLElement>& elem)
|
||||
{
|
||||
HRESULT hr;
|
||||
if (SUCCEEDED((hr = GetElement(id, &elem))))
|
||||
if (SUCCEEDED((hr = GetElement(id.c_str(), &elem))))
|
||||
{
|
||||
hr = elem->QueryInterface(IID_IHTMLDOMNode, reinterpret_cast<void**>(&node));
|
||||
}
|
||||
@@ -324,38 +324,13 @@ HRESULT CSiaDriveDlg::GetDomElementAndNodeById(const CString& id, CComPtr<IHTMLD
|
||||
|
||||
void CSiaDriveDlg::DisplayCreateWallet()
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> mainNode;
|
||||
if (SUCCEEDED(GetDomElementById(L"main_window", mainNode)))
|
||||
{
|
||||
CComPtr<IHTMLElement> div;
|
||||
CComPtr<IHTMLDOMNode> walletCreateNode;
|
||||
if (SUCCEEDED(GetDomElementAndNodeById(L"create_wallet", walletCreateNode, div)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> parent;
|
||||
if (SUCCEEDED(walletCreateNode->get_parentNode(&parent)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> removedNode;
|
||||
if (SUCCEEDED(parent->removeChild(walletCreateNode, &removedNode)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> appendedNode;
|
||||
if (SUCCEEDED(mainNode->appendChild(removedNode, &appendedNode)))
|
||||
{
|
||||
CComPtr<IHTMLStyle> style;
|
||||
if (SUCCEEDED(div->get_style(&style)))
|
||||
{
|
||||
style->put_display(L"block");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SetMainWindow(L"create_wallet");
|
||||
}
|
||||
|
||||
void CSiaDriveDlg::RemoveElementById(const String& id)
|
||||
void CSiaDriveDlg::RemoveDomNodeById(const String& id)
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> element;
|
||||
if (SUCCEEDED(GetDomElementById(id.c_str(), element)))
|
||||
if (SUCCEEDED(GetDomNodeById(id.c_str(), element)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> parent;
|
||||
if (SUCCEEDED(element->get_parentNode(&parent)))
|
||||
@@ -366,24 +341,24 @@ void CSiaDriveDlg::RemoveElementById(const String& id)
|
||||
}
|
||||
}
|
||||
|
||||
void CSiaDriveDlg::ClearCreateElements()
|
||||
void CSiaDriveDlg::RemoveCreateWalletItems()
|
||||
{
|
||||
RemoveElementById(L"create_wallet");
|
||||
RemoveElementById(L"disp_wallet_seed");
|
||||
RemoveDomNodeById(L"create_wallet");
|
||||
RemoveDomNodeById(L"disp_wallet_seed");
|
||||
}
|
||||
|
||||
void CSiaDriveDlg::DisplayWalletTab()
|
||||
{
|
||||
if (_siaApi.GetWallet()->GetCreated())
|
||||
{
|
||||
ClearCreateElements();
|
||||
RemoveCreateWalletItems();
|
||||
if (_siaApi.GetWallet()->GetLocked())
|
||||
{
|
||||
DisplayUnlockWallet();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -392,39 +367,53 @@ void CSiaDriveDlg::DisplayWalletTab()
|
||||
}
|
||||
}
|
||||
|
||||
void CSiaDriveDlg::DisplaySeedCreated(const String& seed)
|
||||
void CSiaDriveDlg::SetMainWindow(const String& name)
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> mainNode;
|
||||
if (SUCCEEDED(GetDomElementById(L"main_window", mainNode)))
|
||||
if (SUCCEEDED(GetDomNodeById(L"main_window", mainNode)))
|
||||
{
|
||||
CComPtr<IHTMLElement> div;
|
||||
CComPtr<IHTMLDOMNode> dispWalletSeedNode;
|
||||
if (SUCCEEDED(GetDomElementAndNodeById(L"disp_wallet_seed", dispWalletSeedNode, div)))
|
||||
CComPtr<IHTMLDOMNode> child;
|
||||
if (SUCCEEDED(mainNode->get_firstChild(&child)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> removed;
|
||||
if (SUCCEEDED(mainNode->removeChild(child, &removed)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> body;
|
||||
if (SUCCEEDED(GetDomNodeById(L"CSiaDriveDlg", body)))
|
||||
{
|
||||
CComPtr<IHTMLElement> element;
|
||||
if (SUCCEEDED(removed->QueryInterface(IID_IHTMLElement, reinterpret_cast<void**>(&element))))
|
||||
{
|
||||
CComPtr<IHTMLStyle> style;
|
||||
if (SUCCEEDED(element->get_style(&style)))
|
||||
{
|
||||
style->put_display(L"none");
|
||||
}
|
||||
|
||||
CComPtr<IHTMLDOMNode> added;
|
||||
body->appendChild(removed, &added);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CComPtr<IHTMLDOMNode> divNode;
|
||||
CComPtr<IHTMLElement> divElement;
|
||||
if (SUCCEEDED(GetDomNodeAndElementById(name, divNode, divElement)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> parent;
|
||||
if (SUCCEEDED(dispWalletSeedNode->get_parentNode(&parent)))
|
||||
if (SUCCEEDED(divNode->get_parentNode(&parent)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> removedNode;
|
||||
if (SUCCEEDED(parent->removeChild(dispWalletSeedNode, &removedNode)))
|
||||
if (SUCCEEDED(parent->removeChild(divNode, &removedNode)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> child;
|
||||
if (SUCCEEDED(mainNode->get_firstChild(&child)))
|
||||
CComPtr<IHTMLDOMNode> appendedNode;
|
||||
if (SUCCEEDED(mainNode->appendChild(removedNode, &appendedNode)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> removed;
|
||||
if (SUCCEEDED(mainNode->removeChild(child, &removed)))
|
||||
CComPtr<IHTMLStyle> style;
|
||||
if (SUCCEEDED(divElement->get_style(&style)))
|
||||
{
|
||||
CComPtr<IHTMLDOMNode> appendedNode;
|
||||
if (SUCCEEDED(mainNode->appendChild(removedNode, &appendedNode)))
|
||||
{
|
||||
_walletCreatedSeed = seed.c_str();
|
||||
UpdateData(FALSE);
|
||||
|
||||
CComPtr<IHTMLStyle> style;
|
||||
if (SUCCEEDED(div->get_style(&style)))
|
||||
{
|
||||
style->put_display(L"block");
|
||||
}
|
||||
}
|
||||
style->put_display(L"block");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -433,6 +422,13 @@ void CSiaDriveDlg::DisplaySeedCreated(const String& seed)
|
||||
}
|
||||
}
|
||||
|
||||
void CSiaDriveDlg::DisplaySeedCreated(const String& seed)
|
||||
{
|
||||
SetMainWindow(L"disp_wallet_seed");
|
||||
_walletCreatedSeed = seed.c_str();
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CSiaDriveDlg::DisplayUnlockWallet()
|
||||
{
|
||||
|
||||
|
@@ -32,29 +32,30 @@ protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// Generated message map functions
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual void OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl);
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||
DECLARE_MESSAGE_MAP()
|
||||
DECLARE_DHTML_EVENT_MAP()
|
||||
|
||||
virtual HRESULT WINAPI TranslateAccelerator(MSG *message, const GUID *, DWORD) override;
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg) override;
|
||||
virtual HRESULT WINAPI TranslateAccelerator(MSG *message, const GUID *, DWORD) override;
|
||||
|
||||
private:
|
||||
void ClearCreateElements();
|
||||
void DisplayCreateWallet();
|
||||
void DisplayWalletTab();
|
||||
void DisplaySeedCreated(const String& seed);
|
||||
bool DisplaySiaInfo();
|
||||
void DisplayUnlockWallet();
|
||||
void RemoveElementById(const String& id);
|
||||
void DisplayWalletTab();
|
||||
void RemoveCreateWalletItems();
|
||||
void RemoveDomNodeById(const String& id);
|
||||
void SetMainWindow(const String& name);
|
||||
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);
|
||||
HRESULT GetDomNodeAndElementById(const String& id, CComPtr<IHTMLDOMNode>& node, CComPtr<IHTMLElement>& elem);
|
||||
HRESULT GetDomNodeById(const String& id, CComPtr<IHTMLDOMNode>& node);
|
||||
|
||||
private:
|
||||
CSiaDriveConfig _siaConfig;
|
||||
|
Reference in New Issue
Block a user