From 23729c4f6a62de7a71368ffdeeeb08470ff4731e Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Wed, 25 Jul 2018 09:14:43 +0300 Subject: Quotes renamed to CurrencyRates --- plugins/CurrencyRates/src/WinCtrlHelper.cpp | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 plugins/CurrencyRates/src/WinCtrlHelper.cpp (limited to 'plugins/CurrencyRates/src/WinCtrlHelper.cpp') 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(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(pProvider)); +} -- cgit v1.2.3