aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/mptrack/CDecimalSupport.cpp
blob: 520a5b92261c01705d70bb8636bd467e91254657 (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
55
/*
 * CDecimalSupport.cpp
 * -------------------
 * Purpose: Various extensions of the CDecimalSupport implementation.
 * Notes  : (currently none)
 * Authors: OpenMPT Devs
 * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
 */


#include "stdafx.h"
#include "Snd_defs.h"
#include "CDecimalSupport.h"

OPENMPT_NAMESPACE_BEGIN

BEGIN_MESSAGE_MAP(CNumberEdit, CEdit)
	ON_WM_CHAR()
	ON_MESSAGE(WM_PASTE, &CNumberEdit::OnPaste)
END_MESSAGE_MAP()


void CNumberEdit::SetTempoValue(const TEMPO &t)
{
	SetFixedValue(t.ToDouble(), 4);
}


TEMPO CNumberEdit::GetTempoValue()
{
	double d;
	GetDecimalValue(d);
	return TEMPO(d);
}


void CNumberEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	BOOL bHandled = false;
	CDecimalSupport<CNumberEdit>::OnChar(0, nChar, 0, bHandled);
	if(!bHandled) CEdit::OnChar(nChar , nRepCnt,  nFlags);
}


LPARAM CNumberEdit::OnPaste(WPARAM wParam, LPARAM lParam)
{
	bool bHandled = false;
	CDecimalSupport<CNumberEdit>::OnPaste(0, wParam, lParam, bHandled);
	if(!bHandled)
		return CEdit::DefWindowProc(WM_PASTE, wParam, lParam);
	else
		return 0;
}

OPENMPT_NAMESPACE_END