"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,7,104,300,12\r
LTEXT "&Plugin Pipeline:",IDC_STATIC,7,118,83,10\r
CONTROL "",IDC_PLUGIN_PIPELINE,"ComboBoxEx32",CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP,92,116,220,95\r
+ PUSHBUTTON "P&lugin Settings...",IDC_PLUGIN_SETTINGS,7,134,95,14\r
PUSHBUTTON "&Add pipe",IDC_PLUGIN_ADDPIPE,136,134,70,14\r
DEFPUSHBUTTON "OK",IDOK,210,134,50,14\r
PUSHBUTTON "Cancel",IDCANCEL,264,134,50,14\r
0, 100, 100, 0,\r
0, 100, 0, 0,\r
0, 100, 100, 0,\r
+ 0, 100, 0, 0,\r
100, 100, 0, 0,\r
100, 100, 0, 0,\r
100, 100, 0, 0\r
ON_CBN_SELENDOK(IDC_PLUGIN_NAME, OnSelchangeUnpackerName)
ON_BN_CLICKED(IDC_PLUGIN_ADDPIPE, OnClickedAddPipe)
ON_EN_CHANGE(IDC_PLUGIN_PIPELINE, OnChangePipeline)
+ ON_BN_CLICKED(IDC_PLUGIN_SETTINGS, OnClickedSettings)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
bool match = plugin->TestAgainstRegList(m_filteredFilenames);
if (m_bNoExtensionCheck || match || lastPluginName == name)
{
- COMBOBOXEXITEM item{CBEIF_TEXT|CBEIF_INDENT};
+ COMBOBOXEXITEM item{CBEIF_TEXT|CBEIF_INDENT|CBEIF_LPARAM};
item.iItem = nameCount++;
item.iIndent = 1;
item.pszText = const_cast<tchar_t*>(name.c_str());
+ item.lParam = reinterpret_cast<LPARAM>(plugin);
m_cboPluginName.InsertItem(&item);
if (lastPluginName.empty() && match)
{
UpdateData (FALSE);
}
+
+void CSelectPluginDlg::OnClickedSettings()
+{
+ COMBOBOXEXITEM item{CBEIF_LPARAM};
+ item.iItem = m_cboPluginName.GetCurSel();
+ m_cboPluginName.GetItem(&item);
+ auto* plugin = reinterpret_cast<PluginInfo*>(item.lParam);
+ if (plugin)
+ plugin::InvokeShowSettingsDialog(plugin->m_lpDispatch);
+}
afx_msg void OnSelchangeUnpackerName();
afx_msg void OnClickedAddPipe();
afx_msg void OnChangePipeline();
+ afx_msg void OnClickedSettings();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};