winamp/Src/external_dependencies/openmpt-trunk/mptrack/MIDIMacroDialog.h
2024-09-24 14:54:57 +02:00

67 lines
1.8 KiB
C++

/*
* MIDIMacroDialog.h
* -----------------
* Purpose: MIDI Macro Configuration 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 "ColourEdit.h"
#include "../common/misc_util.h"
#include "../soundlib/MIDIMacros.h"
#include "mpt/base/alloc.hpp"
OPENMPT_NAMESPACE_BEGIN
class CMidiMacroSetup: public CDialog
{
protected:
CComboBox m_CbnSFx, m_CbnSFxPreset, m_CbnZxx, m_CbnZxxPreset, m_CbnMacroPlug, m_CbnMacroParam, m_CbnMacroCC;
CEdit m_EditSFx, m_EditZxx;
CColourEdit m_EditMacroValue[kSFxMacros], m_EditMacroType[kSFxMacros];
CButton m_EditMacro[kSFxMacros], m_BtnMacroShowAll[kSFxMacros];
CSoundFile &m_SndFile;
public:
CMidiMacroSetup(CSoundFile &sndFile, CWnd *parent = nullptr) : CDialog(IDD_MIDIMACRO, parent), m_SndFile(sndFile), m_vMidiCfg(sndFile.m_MidiCfg), m_MidiCfg(*m_vMidiCfg) { }
private:
mpt::heap_value<MIDIMacroConfig> m_vMidiCfg;
public:
MIDIMacroConfig & m_MidiCfg;
protected:
BOOL OnInitDialog() override;
void DoDataExchange(CDataExchange* pDX) override;
bool ValidateMacroString(CEdit &wnd, const MIDIMacroConfig::Macro &prevMacro, bool isParametric);
void UpdateMacroList(int macro=-1);
void ToggleBoxes(UINT preset, UINT sfx);
afx_msg void UpdateDialog();
afx_msg void OnSetAsDefault();
afx_msg void OnResetCfg();
afx_msg void OnMacroHelp();
afx_msg void OnSFxChanged();
afx_msg void OnSFxPresetChanged();
afx_msg void OnZxxPresetChanged();
afx_msg void OnSFxEditChanged();
afx_msg void OnZxxEditChanged();
afx_msg void UpdateZxxSelection();
afx_msg void OnPlugChanged();
afx_msg void OnPlugParamChanged();
afx_msg void OnCCChanged();
afx_msg void OnViewAllParams(UINT id);
afx_msg void OnSetSFx(UINT id);
DECLARE_MESSAGE_MAP()
};
OPENMPT_NAMESPACE_END