From: <sv...@op...> - 2024-11-17 20:49:43
|
Author: sagamusix Date: Sun Nov 17 21:49:30 2024 New Revision: 22210 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22210 Log: [Imp] Main toolbar: Allow changing the base octave by entering digits 0 to 8 or + and - into the (read-only) octave edit field. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 16 23:03:25 2024 (r22209) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sun Nov 17 21:49:30 2024 (r22210) @@ -27,6 +27,20 @@ OPENMPT_NAMESPACE_BEGIN +BEGIN_MESSAGE_MAP(COctaveEdit, CEdit) + ON_WM_CHAR() +END_MESSAGE_MAP() + +void COctaveEdit::OnChar(UINT nChar, UINT /*nRepCnt*/, UINT /*nFlags*/) +{ + if(nChar >= '0' + MIN_BASEOCTAVE && nChar <= '0' + MAX_BASEOCTAVE) + m_owner.SetBaseOctave(nChar - '0'); + else if(nChar == '+' && m_owner.GetBaseOctave() < MAX_BASEOCTAVE) + m_owner.SetBaseOctave(m_owner.GetBaseOctave() + 1); + else if(nChar == '-' && m_owner.GetBaseOctave() > MIN_BASEOCTAVE) + m_owner.SetBaseOctave(m_owner.GetBaseOctave() - 1); +} + ///////////////////////////////////////////////////////////////////// // CToolBarEx: custom toolbar base class Modified: trunk/OpenMPT/mptrack/Mainbar.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.h Sat Nov 16 23:03:25 2024 (r22209) +++ trunk/OpenMPT/mptrack/Mainbar.h Sun Nov 17 21:49:30 2024 (r22210) @@ -20,6 +20,7 @@ OPENMPT_NAMESPACE_BEGIN enum class MainToolBarItem : uint8; +class CMainToolBar; class CStereoVU: public CStatic { @@ -47,6 +48,19 @@ DECLARE_MESSAGE_MAP(); }; +class COctaveEdit : public CEdit +{ +public: + COctaveEdit(CMainToolBar &owner) : m_owner{owner} { } + +protected: + afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); + + DECLARE_MESSAGE_MAP() + + CMainToolBar &m_owner; +}; + #define MIN_BASEOCTAVE 0 #define MAX_BASEOCTAVE 8 @@ -85,8 +99,9 @@ UpdateToolTip m_tooltip; CImageListEx m_ImageList, m_ImageListDisabled; CFont m_font; + COctaveEdit m_EditOctave; CNumberEdit m_EditTempo; - CEdit m_EditSpeed, m_EditOctave, m_EditRowsPerBeat, m_EditGlobalVolume; + CEdit m_EditSpeed, m_EditRowsPerBeat, m_EditGlobalVolume; CStatic m_StaticTempo, m_StaticSpeed, m_StaticRowsPerBeat, m_StaticGlobalVolume; CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinOctave, m_SpinRowsPerBeat, m_SpinGlobalVolume; int m_currentSpeed = 0, m_currentOctave = -1, m_currentRowsPerBeat = 0, m_currentGlobalVolume = 0; @@ -96,7 +111,7 @@ CStereoVU m_VuMeter; public: - CMainToolBar() = default; + CMainToolBar() : m_EditOctave{*this} { } protected: void SetRowsPerBeat(ROWINDEX nNewRPB); |