1 /////////////////////////////////////////////////////////////////////////////
2 // WinMerge: an interactive diff/merge utility
3 // Copyright (C) 1997-2000 Thingamahoochie Software
5 // SPDX-License-Identifier: GPL-2.0-or-later
6 /////////////////////////////////////////////////////////////////////////////
8 * @file SelectPluginDlg.h :
10 * @brief Declaration file for the dialog SelectUnpacker
16 #include "TrDialogs.h"
17 #include "SuperComboBox.h"
18 #include "UnicodeString.h"
20 /////////////////////////////////////////////////////////////////////////////
21 // CSelectPluginDlgDlg dialog
25 class CSelectPluginDlg : public CTrDialog
29 void Initialize(bool unpacker);
33 CSelectPluginDlg(const String& pluginPipeline, const String& filename, bool unpacker = true, bool argumentRequired = false, CWnd* pParent = nullptr);
36 const String& CSelectPluginDlg::GetPluginPipeline() const { return m_strPluginPipeline; }
39 //{{AFX_DATA(CSelectPluginDlg)
40 enum { IDD = IDD_PLUGINS_SELECTPLUGIN };
41 CComboBox m_cboPluginName;
42 bool m_bNoExtensionCheck;
43 String m_strDescription;
44 String m_strExtensions;
45 String m_strArguments;
46 String m_strPluginPipeline;
47 CSuperComboBox m_ctlPluginPipeline;
53 // ClassWizard generated virtual function overrides
54 //{{AFX_VIRTUAL(CSelectPluginDlg)
56 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
61 /// arrays for string describing the available plugins
62 std::map<String, std::vector<std::tuple<String, String, unsigned, PluginInfo *>>> m_Plugins;
64 // const data "no plugin"
65 std::unique_ptr<PluginInfo> noPlugin;
66 // const data "automatic plugin"
67 std::unique_ptr<PluginInfo> automaticPlugin;
69 bool m_bArgumentRequired;
72 String m_filteredFilenames;
74 void prepareListbox();
76 // Generated message map functions
77 //{{AFX_MSG(CSelectPluginDlg)
79 virtual BOOL OnInitDialog() override;
80 afx_msg void OnUnpackerAllowAll();
81 afx_msg void OnSelchangeUnpackerName();
82 afx_msg void OnClickedAddPipe();
83 afx_msg void OnChangePipeline();