2 * @file DirAdditionalPropertiesDlg.h
4 * @brief Declaration file for CDirAdditionalPropertiesDlg
10 #include "UnicodeString.h"
12 /////////////////////////////////////////////////////////////////////////////
13 // CDirAdditionalPropertiesDlg dialog
22 std::list<Node> childNodes;
26 * @brief A Dialog for choosing visible folder compare columns.
27 * This class implements a dialog for choosing visible columns in folder
28 * compare. Columns can be also re-ordered. There is one listview component
29 * which lists all available columns. Every column name has a checkbox with
30 * it. If the checkbox is checked, the column is visible.
32 * @note: Due to how columns handling code is implemented, hidden columns
33 * must be always be last in the list with order number -1.
34 * @todo: Allow hidden columns between visible columns.
36 class CDirAdditionalPropertiesDlg : public CTrDialog
43 explicit CDirAdditionalPropertiesDlg(const std::vector<String>& canonicalNames, CWnd* pParent = nullptr); // standard constructor
44 const std::vector<String>& GetSelectedCanonicalNames() const { return m_canonicalNames; }
47 //{{AFX_DATA(CDirAdditionalPropertiesDlg)
48 enum { IDD = IDD_DIRADDITIONALPROPS };
49 CTreeCtrl m_treeProps;
50 CListCtrl m_listProps;
55 // ClassWizard generated virtual function overrides
56 //{{AFX_VIRTUAL(CDirAdditionalPropertiesDlg)
58 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
61 // Implementation methods
63 Node& MakeNode(Node& parentNode, const std::vector<StringView>& path, std::vector<StringView>::iterator it);
66 // Implementation data
68 std::vector<String> m_canonicalNames;
70 // Generated message map functions
71 //{{AFX_MSG(CDirAdditionalPropertiesDlg)
72 virtual BOOL OnInitDialog() override;
73 virtual void OnOK() override;
75 afx_msg void OnDelete(UINT nId);
76 afx_msg void OnDblClkTreeView(NMHDR* pNMHDR, LRESULT* pResult);
77 afx_msg void OnKeyDownTreeView(NMHDR* pNMHDR, LRESULT* pResult);
78 afx_msg void OnKeyDownListView(NMHDR* pNMHDR, LRESULT* pResult);