ReactOS
0.4.15-dev-4863-gba0d16f
toolsmodel.h
Go to the documentation of this file.
1
/*
2
* PROJECT: PAINT for ReactOS
3
* LICENSE: LGPL
4
* FILE: base/applications/mspaint/toolsmodel.h
5
* PURPOSE: Keep track of tool parameters, notify listeners
6
* PROGRAMMERS: Benedikt Freisen
7
*/
8
9
#pragma once
10
11
enum
TOOLTYPE
12
{
13
TOOL_FREESEL
= 1,
14
TOOL_RECTSEL
= 2,
15
TOOL_RUBBER
= 3,
16
TOOL_FILL
= 4,
17
TOOL_COLOR
= 5,
18
TOOL_ZOOM
= 6,
19
TOOL_PEN
= 7,
20
TOOL_BRUSH
= 8,
21
TOOL_AIRBRUSH
= 9,
22
TOOL_TEXT
= 10,
23
TOOL_LINE
= 11,
24
TOOL_BEZIER
= 12,
25
TOOL_RECT
= 13,
26
TOOL_SHAPE
= 14,
27
TOOL_ELLIPSE
= 15,
28
TOOL_RRECT
= 16,
29
TOOL_MAX
=
TOOL_RRECT
,
30
};
31
32
/* CLASSES **********************************************************/
33
34
struct
ToolBase
35
{
36
TOOLTYPE
m_tool
;
37
HDC
m_hdc
;
38
COLORREF
m_fg
,
m_bg
;
39
static
INT
pointSP
;
40
static
POINT
pointStack
[256];
41
42
ToolBase
(
TOOLTYPE
tool) :
m_tool
(tool),
m_hdc
(
NULL
)
43
{
44
}
45
46
virtual
~ToolBase
()
47
{
48
}
49
50
virtual
void
OnButtonDown
(
BOOL
bLeftButton,
LONG
x
,
LONG
y
,
BOOL
bDoubleClick)
51
{
52
}
53
54
virtual
void
OnMouseMove
(
BOOL
bLeftButton,
LONG
x
,
LONG
y
)
55
{
56
}
57
58
virtual
void
OnButtonUp
(
BOOL
bLeftButton,
LONG
x
,
LONG
y
)
59
{
60
}
61
62
virtual
void
OnCancelDraw
();
63
virtual
void
OnFinishDraw
();
64
65
void
beginEvent
();
66
void
endEvent
();
67
void
reset
();
68
69
static
ToolBase
*
createToolObject
(
TOOLTYPE
type
);
70
};
71
72
class
ToolsModel
73
{
74
private
:
75
int
m_lineWidth
;
76
int
m_shapeStyle
;
77
int
m_brushStyle
;
78
TOOLTYPE
m_activeTool
;
79
TOOLTYPE
m_oldActiveTool
;
80
int
m_airBrushWidth
;
81
int
m_rubberRadius
;
82
BOOL
m_transpBg
;
83
int
m_zoom
;
84
ToolBase
*
m_tools
[
TOOL_MAX
+ 1];
85
ToolBase
*
m_pToolObject
;
86
87
ToolBase
*
GetOrCreateTool
(
TOOLTYPE
nTool);
88
89
public
:
90
ToolsModel
();
91
~ToolsModel
();
92
int
GetLineWidth
()
const
;
93
void
SetLineWidth
(
int
nLineWidth);
94
int
GetShapeStyle
()
const
;
95
void
SetShapeStyle
(
int
nShapeStyle);
96
int
GetBrushStyle
()
const
;
97
void
SetBrushStyle
(
int
nBrushStyle);
98
TOOLTYPE
GetActiveTool
()
const
;
99
TOOLTYPE
GetOldActiveTool
()
const
;
100
void
SetActiveTool
(
TOOLTYPE
nActiveTool);
101
int
GetAirBrushWidth
()
const
;
102
void
SetAirBrushWidth
(
int
nAirBrushWidth);
103
int
GetRubberRadius
()
const
;
104
void
SetRubberRadius
(
int
nRubberRadius);
105
BOOL
IsBackgroundTransparent
()
const
;
106
void
SetBackgroundTransparent
(
BOOL
bTransparent);
107
int
GetZoom
()
const
;
108
void
SetZoom
(
int
nZoom);
109
110
void
OnButtonDown
(
BOOL
bLeftButton,
LONG
x
,
LONG
y
,
BOOL
bDoubleClick);
111
void
OnMouseMove
(
BOOL
bLeftButton,
LONG
x
,
LONG
y
);
112
void
OnButtonUp
(
BOOL
bLeftButton,
LONG
x
,
LONG
y
);
113
void
OnCancelDraw
();
114
void
OnFinishDraw
();
115
116
void
resetTool
();
117
void
selectAll
();
118
119
void
NotifyToolChanged
();
120
void
NotifyToolSettingsChanged
();
121
void
NotifyZoomChanged
();
122
};
ToolBase::pointStack
static POINT pointStack[256]
Definition:
toolsmodel.h:40
ToolsModel::m_pToolObject
ToolBase * m_pToolObject
Definition:
toolsmodel.h:85
TOOL_COLOR
Definition:
toolsmodel.h:17
ToolsModel::resetTool
void resetTool()
Definition:
toolsmodel.cpp:231
TOOL_BRUSH
Definition:
toolsmodel.h:20
TOOL_RECT
Definition:
toolsmodel.h:25
ToolsModel::~ToolsModel
~ToolsModel()
Definition:
toolsmodel.cpp:29
ToolsModel::OnCancelDraw
void OnCancelDraw()
Definition:
toolsmodel.cpp:215
ToolsModel::m_rubberRadius
int m_rubberRadius
Definition:
toolsmodel.h:81
ToolsModel
Definition:
toolsmodel.h:72
ToolBase::m_hdc
HDC m_hdc
Definition:
toolsmodel.h:37
TOOL_FILL
Definition:
toolsmodel.h:16
HDC
static HDC
Definition:
imagelist.c:92
ToolsModel::SetLineWidth
void SetLineWidth(int nLineWidth)
Definition:
toolsmodel.cpp:48
x
GLint GLint GLint GLint GLint x
Definition:
gl.h:1548
TOOL_LINE
Definition:
toolsmodel.h:23
TOOL_PEN
Definition:
toolsmodel.h:19
ToolsModel::m_oldActiveTool
TOOLTYPE m_oldActiveTool
Definition:
toolsmodel.h:79
tagPOINT
Definition:
polytest.cpp:46
ToolsModel::GetBrushStyle
int GetBrushStyle() const
Definition:
toolsmodel.cpp:65
ToolsModel::m_zoom
int m_zoom
Definition:
toolsmodel.h:83
INT
int32_t INT
Definition:
typedefs.h:58
ToolsModel::OnButtonDown
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick)
Definition:
toolsmodel.cpp:191
ToolsModel::GetRubberRadius
int GetRubberRadius() const
Definition:
toolsmodel.cpp:124
ToolsModel::OnMouseMove
void OnMouseMove(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.cpp:199
TOOL_SHAPE
Definition:
toolsmodel.h:26
ToolBase::OnButtonDown
virtual void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick)
Definition:
toolsmodel.h:50
TOOL_FREESEL
Definition:
toolsmodel.h:13
ToolsModel::m_transpBg
BOOL m_transpBg
Definition:
toolsmodel.h:82
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
LONG
long LONG
Definition:
pedump.c:60
ToolBase
Definition:
toolsmodel.h:34
ToolsModel::OnFinishDraw
void OnFinishDraw()
Definition:
toolsmodel.cpp:223
ToolsModel::m_airBrushWidth
int m_airBrushWidth
Definition:
toolsmodel.h:80
ToolBase::OnCancelDraw
virtual void OnCancelDraw()
Definition:
mouse.cpp:85
ToolsModel::SetBackgroundTransparent
void SetBackgroundTransparent(BOOL bTransparent)
Definition:
toolsmodel.cpp:140
TOOL_RUBBER
Definition:
toolsmodel.h:15
ToolBase::endEvent
void endEvent()
Definition:
mouse.cpp:102
ToolsModel::SetAirBrushWidth
void SetAirBrushWidth(int nAirBrushWidth)
Definition:
toolsmodel.cpp:118
ToolsModel::m_activeTool
TOOLTYPE m_activeTool
Definition:
toolsmodel.h:78
ToolBase::pointSP
static INT pointSP
Definition:
toolsmodel.h:39
ToolsModel::m_tools
ToolBase * m_tools[TOOL_MAX+1]
Definition:
toolsmodel.h:84
ToolBase::createToolObject
static ToolBase * createToolObject(TOOLTYPE type)
Definition:
mouse.cpp:764
ToolsModel::GetLineWidth
int GetLineWidth() const
Definition:
toolsmodel.cpp:43
ToolsModel::OnButtonUp
void OnButtonUp(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.cpp:207
ToolBase::m_bg
COLORREF m_bg
Definition:
toolsmodel.h:38
ToolsModel::GetShapeStyle
int GetShapeStyle() const
Definition:
toolsmodel.cpp:54
TOOL_MAX
Definition:
toolsmodel.h:29
ToolsModel::m_brushStyle
int m_brushStyle
Definition:
toolsmodel.h:77
COLORREF
DWORD COLORREF
Definition:
windef.h:300
ToolBase::ToolBase
ToolBase(TOOLTYPE tool)
Definition:
toolsmodel.h:42
ToolsModel::NotifyZoomChanged
void NotifyZoomChanged()
Definition:
toolsmodel.cpp:181
ToolsModel::NotifyToolChanged
void NotifyToolChanged()
Definition:
toolsmodel.cpp:159
ToolBase::OnFinishDraw
virtual void OnFinishDraw()
Definition:
mouse.cpp:90
ToolsModel::GetOldActiveTool
TOOLTYPE GetOldActiveTool() const
Definition:
toolsmodel.cpp:81
ToolsModel::NotifyToolSettingsChanged
void NotifyToolSettingsChanged()
Definition:
toolsmodel.cpp:171
ToolsModel::GetZoom
int GetZoom() const
Definition:
toolsmodel.cpp:148
ToolsModel::selectAll
void selectAll()
Definition:
toolsmodel.cpp:236
TOOL_TEXT
Definition:
toolsmodel.h:22
ToolBase::reset
void reset()
Definition:
mouse.cpp:76
ToolsModel::GetActiveTool
TOOLTYPE GetActiveTool() const
Definition:
toolsmodel.cpp:76
ToolBase::m_fg
COLORREF m_fg
Definition:
toolsmodel.h:38
TOOL_ZOOM
Definition:
toolsmodel.h:18
TOOL_RECTSEL
Definition:
toolsmodel.h:14
ToolBase::OnMouseMove
virtual void OnMouseMove(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.h:54
TOOL_RRECT
Definition:
toolsmodel.h:28
TOOL_ELLIPSE
Definition:
toolsmodel.h:27
ToolsModel::SetZoom
void SetZoom(int nZoom)
Definition:
toolsmodel.cpp:153
ToolBase::OnButtonUp
virtual void OnButtonUp(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.h:58
ToolsModel::ToolsModel
ToolsModel()
Definition:
toolsmodel.cpp:15
ToolsModel::SetShapeStyle
void SetShapeStyle(int nShapeStyle)
Definition:
toolsmodel.cpp:59
ToolBase::beginEvent
void beginEvent()
Definition:
mouse.cpp:95
ToolsModel::SetBrushStyle
void SetBrushStyle(int nBrushStyle)
Definition:
toolsmodel.cpp:70
ToolsModel::SetActiveTool
void SetActiveTool(TOOLTYPE nActiveTool)
Definition:
toolsmodel.cpp:86
ToolsModel::GetOrCreateTool
ToolBase * GetOrCreateTool(TOOLTYPE nTool)
Definition:
toolsmodel.cpp:35
ToolBase::~ToolBase
virtual ~ToolBase()
Definition:
toolsmodel.h:46
ToolsModel::GetAirBrushWidth
int GetAirBrushWidth() const
Definition:
toolsmodel.cpp:113
ToolBase::m_tool
TOOLTYPE m_tool
Definition:
toolsmodel.h:36
NULL
#define NULL
Definition:
types.h:112
ToolsModel::SetRubberRadius
void SetRubberRadius(int nRubberRadius)
Definition:
toolsmodel.cpp:129
TOOL_BEZIER
Definition:
toolsmodel.h:24
y
GLint GLint GLint GLint GLint GLint y
Definition:
gl.h:1548
type
GLuint GLuint GLsizei GLenum type
Definition:
gl.h:1545
TOOLTYPE
TOOLTYPE
Definition:
toolsmodel.h:11
ToolsModel::m_lineWidth
int m_lineWidth
Definition:
toolsmodel.h:75
ToolsModel::IsBackgroundTransparent
BOOL IsBackgroundTransparent() const
Definition:
toolsmodel.cpp:135
TOOL_AIRBRUSH
Definition:
toolsmodel.h:21
ToolsModel::m_shapeStyle
int m_shapeStyle
Definition:
toolsmodel.h:76
base
applications
mspaint
toolsmodel.h
Generated on Mon Jun 27 2022 06:04:14 for ReactOS by
1.8.15