aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/mptrack/tuningRatioMapWnd.h
blob: c849a8576940aa67b490df1cde7bb50905867702 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 * tuningRatioMapWnd.h
 * -------------------
 * Purpose: Alternative sample tuning configuration dialog - ratio map edit control.
 * 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 "../soundlib/tuning.h"

OPENMPT_NAMESPACE_BEGIN

class CTuningDialog;

using NOTEINDEXTYPE = Tuning::NOTEINDEXTYPE;

//Copied from CNoteMapWnd.
class CTuningRatioMapWnd: public CStatic
{
	friend class CTuningDialog;
protected:
	const CTuning* m_pTuning = nullptr;
	CTuningDialog* m_pParent = nullptr;

	int m_cxFont = 0, m_cyFont = 0;
	NOTEINDEXTYPE m_nNote = NOTE_MIDDLEC;

	NOTEINDEXTYPE m_nNoteCentre = NOTE_MIDDLEC;


public:
	void Init(CTuningDialog* const pParent, CTuning* const tuning);

	NOTEINDEXTYPE GetShownCentre() const;

protected:

	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	afx_msg void OnLButtonDown(UINT, CPoint);
	afx_msg void OnLButtonUp(UINT, CPoint);
	afx_msg void OnSetFocus(CWnd *pOldWnd);
	afx_msg void OnKillFocus(CWnd *pNewWnd);
	afx_msg void OnPaint();

	DECLARE_MESSAGE_MAP()
};

OPENMPT_NAMESPACE_END