From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- .../openmpt-trunk/mptrack/AdvancedConfigDlg.h | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Src/external_dependencies/openmpt-trunk/mptrack/AdvancedConfigDlg.h (limited to 'Src/external_dependencies/openmpt-trunk/mptrack/AdvancedConfigDlg.h') diff --git a/Src/external_dependencies/openmpt-trunk/mptrack/AdvancedConfigDlg.h b/Src/external_dependencies/openmpt-trunk/mptrack/AdvancedConfigDlg.h new file mode 100644 index 00000000..cd30f085 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/mptrack/AdvancedConfigDlg.h @@ -0,0 +1,86 @@ +/* + * AdvancedConfigDlg.h + * ------------------- + * Purpose: Implementation of the advanced settings dialog. + * Notes : (currently none) + * Authors: OpenMPT Devs + * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. + */ + + +#pragma once + +#include "openmpt/all/BuildSettings.hpp" + +#include "CListCtrl.h" +#if MPT_USTRING_MODE_WIDE +#include +#else +#include +#endif + +OPENMPT_NAMESPACE_BEGIN + + +#ifdef MPT_MFC_FULL + +class CAdvancedSettingsList : public CMFCListCtrlEx +{ +private: + std::vector & m_indexToPath; +public: + CAdvancedSettingsList(std::vector & indexToPath) : m_indexToPath(indexToPath) {} + COLORREF OnGetCellBkColor(int nRow, int nColumn) override; + COLORREF OnGetCellTextColor(int nRow, int nColumn) override; +}; + +#endif // MPT_MFC_FULL + + +class COptionsAdvanced: public CPropertyPage +{ +#ifdef MPT_MFC_FULL + using ListCtrl = CAdvancedSettingsList; +#else // MPT_MFC_FULL + using ListCtrl = CListCtrlEx; +#endif // !MPT_MFC_FULL + +protected: + ListCtrl m_List; +#if MPT_USTRING_MODE_WIDE + using GroupMap = std::unordered_map; +#else + using GroupMap = std::map; +#endif + std::vector m_indexToPath; + GroupMap m_groups; + bool m_listGrouped = false; + +public: +#ifdef MPT_MFC_FULL + COptionsAdvanced():CPropertyPage(IDD_OPTIONS_ADVANCED), m_List(m_indexToPath) {} +#else // !MPT_MFC_FULL + COptionsAdvanced():CPropertyPage(IDD_OPTIONS_ADVANCED) {} +#endif // MPT_MFC_FULL + +protected: + BOOL OnInitDialog() override; + void OnOK() override; + BOOL OnSetActive() override; + void DoDataExchange(CDataExchange* pDX) override; + BOOL PreTranslateMessage(MSG *msg) override; + + afx_msg void OnOptionDblClick(NMHDR *, LRESULT *); + afx_msg void OnSettingsChanged() { SetModified(TRUE); } + afx_msg void OnFindStringChanged() { ReInit(); } + afx_msg void OnSaveNow(); +#ifndef MPT_MFC_FULL + afx_msg void OnCustomDrawList(NMHDR* pNMHDR, LRESULT* pResult); +#endif // !MPT_MFC_FULL + + void ReInit(); + + DECLARE_MESSAGE_MAP(); +}; + +OPENMPT_NAMESPACE_END -- cgit