More generic element swapping
This commit is contained in:
@@ -13,7 +13,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Home Test
|
/* 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
|
// CAboutDlg dialog used for App About
|
||||||
@@ -305,16 +305,16 @@ bool CSiaDriveDlg::UpdateUi(const bool& refresh)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CSiaDriveDlg::GetDomElementById(const CString& id, CComPtr<IHTMLDOMNode>& node)
|
HRESULT CSiaDriveDlg::GetDomNodeById(const String& id, CComPtr<IHTMLDOMNode>& node)
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLElement> elem;
|
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;
|
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));
|
hr = elem->QueryInterface(IID_IHTMLDOMNode, reinterpret_cast<void**>(&node));
|
||||||
}
|
}
|
||||||
@@ -324,38 +324,13 @@ HRESULT CSiaDriveDlg::GetDomElementAndNodeById(const CString& id, CComPtr<IHTMLD
|
|||||||
|
|
||||||
void CSiaDriveDlg::DisplayCreateWallet()
|
void CSiaDriveDlg::DisplayCreateWallet()
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> mainNode;
|
SetMainWindow(L"create_wallet");
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSiaDriveDlg::RemoveElementById(const String& id)
|
void CSiaDriveDlg::RemoveDomNodeById(const String& id)
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> element;
|
CComPtr<IHTMLDOMNode> element;
|
||||||
if (SUCCEEDED(GetDomElementById(id.c_str(), element)))
|
if (SUCCEEDED(GetDomNodeById(id.c_str(), element)))
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> parent;
|
CComPtr<IHTMLDOMNode> parent;
|
||||||
if (SUCCEEDED(element->get_parentNode(&parent)))
|
if (SUCCEEDED(element->get_parentNode(&parent)))
|
||||||
@@ -366,17 +341,17 @@ void CSiaDriveDlg::RemoveElementById(const String& id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSiaDriveDlg::ClearCreateElements()
|
void CSiaDriveDlg::RemoveCreateWalletItems()
|
||||||
{
|
{
|
||||||
RemoveElementById(L"create_wallet");
|
RemoveDomNodeById(L"create_wallet");
|
||||||
RemoveElementById(L"disp_wallet_seed");
|
RemoveDomNodeById(L"disp_wallet_seed");
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSiaDriveDlg::DisplayWalletTab()
|
void CSiaDriveDlg::DisplayWalletTab()
|
||||||
{
|
{
|
||||||
if (_siaApi.GetWallet()->GetCreated())
|
if (_siaApi.GetWallet()->GetCreated())
|
||||||
{
|
{
|
||||||
ClearCreateElements();
|
RemoveCreateWalletItems();
|
||||||
if (_siaApi.GetWallet()->GetLocked())
|
if (_siaApi.GetWallet()->GetLocked())
|
||||||
{
|
{
|
||||||
DisplayUnlockWallet();
|
DisplayUnlockWallet();
|
||||||
@@ -392,39 +367,53 @@ void CSiaDriveDlg::DisplayWalletTab()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSiaDriveDlg::DisplaySeedCreated(const String& seed)
|
void CSiaDriveDlg::SetMainWindow(const String& name)
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> mainNode;
|
CComPtr<IHTMLDOMNode> mainNode;
|
||||||
if (SUCCEEDED(GetDomElementById(L"main_window", mainNode)))
|
if (SUCCEEDED(GetDomNodeById(L"main_window", mainNode)))
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLElement> div;
|
CComPtr<IHTMLDOMNode> child;
|
||||||
CComPtr<IHTMLDOMNode> dispWalletSeedNode;
|
if (SUCCEEDED(mainNode->get_firstChild(&child)))
|
||||||
if (SUCCEEDED(GetDomElementAndNodeById(L"disp_wallet_seed", dispWalletSeedNode, div)))
|
{
|
||||||
|
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;
|
CComPtr<IHTMLDOMNode> parent;
|
||||||
if (SUCCEEDED(dispWalletSeedNode->get_parentNode(&parent)))
|
if (SUCCEEDED(divNode->get_parentNode(&parent)))
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> removedNode;
|
CComPtr<IHTMLDOMNode> removedNode;
|
||||||
if (SUCCEEDED(parent->removeChild(dispWalletSeedNode, &removedNode)))
|
if (SUCCEEDED(parent->removeChild(divNode, &removedNode)))
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> child;
|
CComPtr<IHTMLDOMNode> appendedNode;
|
||||||
if (SUCCEEDED(mainNode->get_firstChild(&child)))
|
if (SUCCEEDED(mainNode->appendChild(removedNode, &appendedNode)))
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> removed;
|
CComPtr<IHTMLStyle> style;
|
||||||
if (SUCCEEDED(mainNode->removeChild(child, &removed)))
|
if (SUCCEEDED(divElement->get_style(&style)))
|
||||||
{
|
{
|
||||||
CComPtr<IHTMLDOMNode> appendedNode;
|
style->put_display(L"block");
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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()
|
void CSiaDriveDlg::DisplayUnlockWallet()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@@ -32,29 +32,30 @@ protected:
|
|||||||
HICON m_hIcon;
|
HICON m_hIcon;
|
||||||
|
|
||||||
// Generated message map functions
|
// Generated message map functions
|
||||||
virtual BOOL OnInitDialog();
|
|
||||||
virtual void OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl);
|
virtual void OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl);
|
||||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
virtual BOOL OnInitDialog();
|
||||||
afx_msg void OnPaint();
|
afx_msg void OnPaint();
|
||||||
afx_msg HCURSOR OnQueryDragIcon();
|
afx_msg HCURSOR OnQueryDragIcon();
|
||||||
|
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||||
DECLARE_MESSAGE_MAP()
|
DECLARE_MESSAGE_MAP()
|
||||||
DECLARE_DHTML_EVENT_MAP()
|
DECLARE_DHTML_EVENT_MAP()
|
||||||
|
|
||||||
virtual HRESULT WINAPI TranslateAccelerator(MSG *message, const GUID *, DWORD) override;
|
|
||||||
virtual BOOL PreTranslateMessage(MSG* pMsg) override;
|
virtual BOOL PreTranslateMessage(MSG* pMsg) override;
|
||||||
|
virtual HRESULT WINAPI TranslateAccelerator(MSG *message, const GUID *, DWORD) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ClearCreateElements();
|
|
||||||
void DisplayCreateWallet();
|
void DisplayCreateWallet();
|
||||||
void DisplayWalletTab();
|
|
||||||
void DisplaySeedCreated(const String& seed);
|
void DisplaySeedCreated(const String& seed);
|
||||||
bool DisplaySiaInfo();
|
bool DisplaySiaInfo();
|
||||||
void DisplayUnlockWallet();
|
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);
|
bool UpdateUi(const bool& refresh = true);
|
||||||
HRESULT GetDomElementById(const CString& id, CComPtr<IHTMLDOMNode>& node);
|
HRESULT GetDomNodeAndElementById(const String& id, CComPtr<IHTMLDOMNode>& node, CComPtr<IHTMLElement>& elem);
|
||||||
HRESULT GetDomElementAndNodeById(const CString& id, CComPtr<IHTMLDOMNode>& node, CComPtr<IHTMLElement>& elem);
|
HRESULT GetDomNodeById(const String& id, CComPtr<IHTMLDOMNode>& node);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CSiaDriveConfig _siaConfig;
|
CSiaDriveConfig _siaConfig;
|
||||||
|
Reference in New Issue
Block a user