diff options
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h')
-rw-r--r-- | Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h b/Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h new file mode 100644 index 00000000..38fbb767 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h @@ -0,0 +1,77 @@ +/* + * TempoSwingDialog.h + * ------------------ + * Purpose: Implementation of the tempo swing 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" + +class CSoundFile; +#include "../soundlib/Snd_defs.h" + +OPENMPT_NAMESPACE_BEGIN + +class CTempoSwingDlg: public CDialog +{ +protected: + // Scrollable container for the sliders + class SliderContainer : public CStatic + { + public: + CTempoSwingDlg &m_parent; + + SliderContainer(CTempoSwingDlg &parent) : m_parent(parent) { } + + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar); + afx_msg BOOL OnToolTipNotify(UINT, NMHDR *pNMHDR, LRESULT *); + DECLARE_MESSAGE_MAP() + }; + + enum { SliderResolution = 1000, SliderUnity = SliderResolution / 2 }; + struct RowCtls + { + CStatic rowLabel, valueLabel; + CSliderCtrl valueSlider; + + void SetValue(TempoSwing::value_type v); + TempoSwing::value_type GetValue() const; + }; + std::vector<std::unique_ptr<RowCtls>> m_controls; + + CButton m_checkGroup; + CScrollBar m_scrollBar; + SliderContainer m_container; + + int m_scrollPos; + static int m_groupSize; + +public: + TempoSwing m_tempoSwing; + const TempoSwing m_origTempoSwing; + CSoundFile &m_sndFile; + PATTERNINDEX m_pattern; + +public: + CTempoSwingDlg(CWnd *parent, const TempoSwing ¤tTempoSwing, CSoundFile &sndFile, PATTERNINDEX pattern = PATTERNINDEX_INVALID); + +protected: + virtual void DoDataExchange(CDataExchange* pDX); + virtual BOOL OnInitDialog(); + virtual void OnOK(); + virtual void OnCancel(); + void OnClose(); + afx_msg void OnReset(); + afx_msg void OnUseGlobal(); + afx_msg void OnToggleGroup(); + afx_msg void OnGroupChanged(); + afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar); + DECLARE_MESSAGE_MAP() +}; + +OPENMPT_NAMESPACE_END |