diff options
author | Kirill Volinsky <Mataes2007@gmail.com> | 2018-07-25 09:14:43 +0300 |
---|---|---|
committer | Kirill Volinsky <Mataes2007@gmail.com> | 2018-07-25 09:14:43 +0300 |
commit | 23729c4f6a62de7a71368ffdeeeb08470ff4731e (patch) | |
tree | 3b227636ac19cb7b1f200b52aec1121593713e4d /plugins/CurrencyRates/src/WinCtrlHelper.cpp | |
parent | e62d2a2a86b0477537403a2316e629e8fea4a9d0 (diff) |
Quotes renamed to CurrencyRates
Diffstat (limited to 'plugins/CurrencyRates/src/WinCtrlHelper.cpp')
-rw-r--r-- | plugins/CurrencyRates/src/WinCtrlHelper.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/CurrencyRates/src/WinCtrlHelper.cpp b/plugins/CurrencyRates/src/WinCtrlHelper.cpp new file mode 100644 index 0000000000..03da055dbe --- /dev/null +++ b/plugins/CurrencyRates/src/WinCtrlHelper.cpp @@ -0,0 +1,40 @@ +#include "stdafx.h" + +static INT_PTR CALLBACK VariableListDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + switch (msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hWnd); + { + const IQuotesProvider* pProvider = reinterpret_cast<const IQuotesProvider*>(lp); + CQuotesProviderVisitorFormatSpecificator visitor; + pProvider->Accept(visitor); + + tostringstream o; + const CQuotesProviderVisitorFormatSpecificator::TFormatSpecificators& raSpec = visitor.GetSpecificators(); + std::for_each(raSpec.begin(), raSpec.end(), + [&o](const CQuotesProviderVisitorFormatSpecificator::CFormatSpecificator& spec) + { + o << spec.m_sSymbol << '\t' << spec.m_sDesc << L"\r\n"; + }); + ::SetDlgItemText(hWnd, IDC_EDIT_VARIABLE, o.str().c_str()); + } + break; + + case WM_COMMAND: + if (BN_CLICKED == HIWORD(wp) && (IDOK == LOWORD(wp) || IDCANCEL == LOWORD(wp))) + ::EndDialog(hWnd, IDOK); + break; + } + + return FALSE; +} + +void show_variable_list(HWND hwndParent, const IQuotesProvider* pProvider) +{ + ::DialogBoxParam(g_plugin.getInst(), + MAKEINTRESOURCE(IDD_DIALOG_VARIABLE_LIST), + hwndParent, + VariableListDlgProc, + reinterpret_cast<LPARAM>(pProvider)); +} |