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/TempoSwingDialog.h | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h (limited to 'Src/external_dependencies/openmpt-trunk/mptrack/TempoSwingDialog.h') 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> 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 -- cgit