summaryrefslogtreecommitdiff
path: root/win/Pieceprv.cpp
blob: ccfd4d9bac0236a5cf920dd77127f45227f4eb1d (plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// PiecePrv.cpp : implementation file
//

#include "stdafx.h"
#include "leocad.h"
#include "PiecePrv.h"
#include "Tools.h"
#include "pieceinf.h"
#include "globals.h"
#include "project.h"
#include "preview.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPiecePreview

CPiecePreview::CPiecePreview()
{
	m_Preview = NULL;
}

CPiecePreview::~CPiecePreview()
{
	delete m_Preview;
}


BEGIN_MESSAGE_MAP(CPiecePreview, CWnd)
	//{{AFX_MSG_MAP(CPiecePreview)
	ON_WM_CREATE()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CPiecePreview message handlers

int CPiecePreview::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	m_Preview = new PiecePreview(NULL);
	m_Preview->Create(m_hWnd);
	m_Preview->MakeCurrent();

	return 0;
}

void CPiecePreview::OnDestroy() 
{
	if (m_Preview)
	{
		m_Preview->DestroyContext();
		delete m_Preview;
		m_Preview = NULL;
	}

	CWnd::OnDestroy();
}

void CPiecePreview::SetPieceInfo(PieceInfo* pInfo)
{
	m_Preview->SetCurrentPiece(pInfo);
}

PieceInfo* CPiecePreview::GetPieceInfo() const
{
	return m_Preview->GetCurrentPiece();
}

BOOL GLWindowPreTranslateMessage (GLWindow *wnd, MSG *pMsg);
LRESULT CPiecePreview::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
	if (m_Preview)
	{
		MSG msg;
		msg.message = message;
		msg.wParam = wParam;
		msg.lParam = lParam;

		if (GLWindowPreTranslateMessage(m_Preview, &msg))
			return TRUE;
	}

	return CWnd::WindowProc(message, wParam, lParam);
}