summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2DlgItemAllPurpose.cpp
blob: 371be6e0358ac8cb3d95e079aa20807975a1f381 (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
94
95
#include "T2DlgItemAllPurpose.h"

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

T2DlgItemAllPurpose::T2DlgItemAllPurpose(T2TowerDoc* inDoc, T2ImageObj* inImageObj, CPalette* inPalette)
    : T2DlgItem(inDoc, inImageObj, inPalette)
{
#line 16
    mDownPoint = new CPoint(-1, -1);
    mUpPoint = new CPoint(-1, -1);
    mButton = -1;
}

/*virtual*/ T2DlgItemAllPurpose::~T2DlgItemAllPurpose() {
    delete mDownPoint;
    delete mUpPoint;
}

/*virtual*/ BOOL T2DlgItemAllPurpose::OnT2DlgItemEraseBkgnd(CDC* pDC) {
    CRect rect;
    GetClientRect(rect);

    int save = pDC->SaveDC();
    pDC->SelectPalette(mPalette, false);
    pDC->RealizePalette();

    CPen whitePen;
    whitePen.CreatePen(PS_SOLID, 0, PALETTERGB(255, 255, 255));
    CPen greyPen;
    greyPen.CreatePen(PS_SOLID, 0, PALETTERGB(133, 133, 133));

    pDC->SelectObject(greyPen);
    pDC->MoveTo(rect.right - 1, rect.top);
    pDC->LineTo(rect.left, rect.top);
    pDC->LineTo(rect.left, rect.bottom);

    pDC->SelectObject(whitePen);
    pDC->MoveTo(rect.right - 1, rect.top + 1);
    pDC->LineTo(rect.right - 1, rect.bottom - 1);
    pDC->LineTo(rect.left, rect.bottom - 1);

    pDC->RestoreDC(save);

    return true;
}

/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemLButtonDown(UINT, CPoint inPt) {
    *mDownPoint = inPt;
    mButton = 0;
}

/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemLButtonUp(UINT, CPoint inPt) {
    *mUpPoint = inPt;

    if (mButton == 0) {
        mButton = 0;

        CSize delta = *mDownPoint - *mUpPoint;
        if (abs(delta.cx) < 2 && abs(delta.cy) < 2)
            Notify(GetDlgCtrlID(), 0, &mButton);
    } else {
        mButton = 0;
    }
}

/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemRButtonDown(UINT, CPoint inPt) {
    *mDownPoint = inPt;
    mButton = 1;
}

/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemRButtonUp(UINT, CPoint inPt) {
    *mUpPoint = inPt;

    if (mButton == 1) {
        mButton = 1;

        CSize delta = *mDownPoint - *mUpPoint;
        if (abs(delta.cx) < 2 && abs(delta.cy) < 2)
            Notify(GetDlgCtrlID(), 0, &mButton);
    } else {
        mButton = 1;
    }
}

CPoint T2DlgItemAllPurpose::GetUpPoint() {
    return *mUpPoint;
}

CPoint T2DlgItemAllPurpose::GetDownPoint() {
    return *mDownPoint;
}