ReactOS
0.4.15-dev-5895-g2687c1b
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
};
123
124
extern
ToolsModel
toolsModel
;
125
126
static
inline
int
Zoomed
(
int
xy)
127
{
128
return
xy *
toolsModel
.
GetZoom
() / 1000;
129
}
130
131
static
inline
int
UnZoomed
(
int
xy)
132
{
133
return
xy * 1000 /
toolsModel
.
GetZoom
();
134
}
ToolsModel
Definition:
toolsmodel.h:73
ToolsModel::GetZoom
int GetZoom() const
Definition:
toolsmodel.cpp:148
ToolsModel::GetAirBrushWidth
int GetAirBrushWidth() const
Definition:
toolsmodel.cpp:113
ToolsModel::m_oldActiveTool
TOOLTYPE m_oldActiveTool
Definition:
toolsmodel.h:79
ToolsModel::GetLineWidth
int GetLineWidth() const
Definition:
toolsmodel.cpp:43
ToolsModel::m_airBrushWidth
int m_airBrushWidth
Definition:
toolsmodel.h:80
ToolsModel::GetShapeStyle
int GetShapeStyle() const
Definition:
toolsmodel.cpp:54
ToolsModel::m_brushStyle
int m_brushStyle
Definition:
toolsmodel.h:77
ToolsModel::m_rubberRadius
int m_rubberRadius
Definition:
toolsmodel.h:81
ToolsModel::m_lineWidth
int m_lineWidth
Definition:
toolsmodel.h:75
ToolsModel::resetTool
void resetTool()
Definition:
toolsmodel.cpp:231
ToolsModel::m_transpBg
BOOL m_transpBg
Definition:
toolsmodel.h:82
ToolsModel::SetAirBrushWidth
void SetAirBrushWidth(int nAirBrushWidth)
Definition:
toolsmodel.cpp:118
ToolsModel::m_shapeStyle
int m_shapeStyle
Definition:
toolsmodel.h:76
ToolsModel::GetOldActiveTool
TOOLTYPE GetOldActiveTool() const
Definition:
toolsmodel.cpp:81
ToolsModel::SetShapeStyle
void SetShapeStyle(int nShapeStyle)
Definition:
toolsmodel.cpp:59
ToolsModel::SetActiveTool
void SetActiveTool(TOOLTYPE nActiveTool)
Definition:
toolsmodel.cpp:86
ToolsModel::m_tools
ToolBase * m_tools[TOOL_MAX+1]
Definition:
toolsmodel.h:84
ToolsModel::SetRubberRadius
void SetRubberRadius(int nRubberRadius)
Definition:
toolsmodel.cpp:129
ToolsModel::OnFinishDraw
void OnFinishDraw()
Definition:
toolsmodel.cpp:223
ToolsModel::NotifyToolChanged
void NotifyToolChanged()
Definition:
toolsmodel.cpp:159
ToolsModel::OnMouseMove
void OnMouseMove(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.cpp:199
ToolsModel::SetBrushStyle
void SetBrushStyle(int nBrushStyle)
Definition:
toolsmodel.cpp:70
ToolsModel::m_zoom
int m_zoom
Definition:
toolsmodel.h:83
ToolsModel::GetBrushStyle
int GetBrushStyle() const
Definition:
toolsmodel.cpp:65
ToolsModel::OnButtonDown
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick)
Definition:
toolsmodel.cpp:191
ToolsModel::IsBackgroundTransparent
BOOL IsBackgroundTransparent() const
Definition:
toolsmodel.cpp:135
ToolsModel::SetZoom
void SetZoom(int nZoom)
Definition:
toolsmodel.cpp:153
ToolsModel::SetBackgroundTransparent
void SetBackgroundTransparent(BOOL bTransparent)
Definition:
toolsmodel.cpp:140
ToolsModel::m_activeTool
TOOLTYPE m_activeTool
Definition:
toolsmodel.h:78
ToolsModel::GetRubberRadius
int GetRubberRadius() const
Definition:
toolsmodel.cpp:124
ToolsModel::m_pToolObject
ToolBase * m_pToolObject
Definition:
toolsmodel.h:85
ToolsModel::NotifyToolSettingsChanged
void NotifyToolSettingsChanged()
Definition:
toolsmodel.cpp:171
ToolsModel::GetOrCreateTool
ToolBase * GetOrCreateTool(TOOLTYPE nTool)
Definition:
toolsmodel.cpp:35
ToolsModel::ToolsModel
ToolsModel()
Definition:
toolsmodel.cpp:15
ToolsModel::GetActiveTool
TOOLTYPE GetActiveTool() const
Definition:
toolsmodel.cpp:76
ToolsModel::OnCancelDraw
void OnCancelDraw()
Definition:
toolsmodel.cpp:215
ToolsModel::~ToolsModel
~ToolsModel()
Definition:
toolsmodel.cpp:29
ToolsModel::selectAll
void selectAll()
Definition:
toolsmodel.cpp:236
ToolsModel::NotifyZoomChanged
void NotifyZoomChanged()
Definition:
toolsmodel.cpp:181
ToolsModel::OnButtonUp
void OnButtonUp(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.cpp:207
ToolsModel::SetLineWidth
void SetLineWidth(int nLineWidth)
Definition:
toolsmodel.cpp:48
NULL
#define NULL
Definition:
types.h:112
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
x
GLint GLint GLint GLint GLint x
Definition:
gl.h:1548
type
GLuint GLuint GLsizei GLenum type
Definition:
gl.h:1545
y
GLint GLint GLint GLint GLint GLint y
Definition:
gl.h:1548
HDC
static HDC
Definition:
imagelist.c:92
LONG
long LONG
Definition:
pedump.c:60
ToolBase
Definition:
toolsmodel.h:35
ToolBase::endEvent
void endEvent()
Definition:
mouse.cpp:106
ToolBase::OnButtonDown
virtual void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick)
Definition:
toolsmodel.h:50
ToolBase::OnButtonUp
virtual void OnButtonUp(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.h:58
ToolBase::OnMouseMove
virtual void OnMouseMove(BOOL bLeftButton, LONG x, LONG y)
Definition:
toolsmodel.h:54
ToolBase::m_hdc
HDC m_hdc
Definition:
toolsmodel.h:37
ToolBase::m_tool
TOOLTYPE m_tool
Definition:
toolsmodel.h:36
ToolBase::pointSP
static INT pointSP
Definition:
toolsmodel.h:39
ToolBase::OnCancelDraw
virtual void OnCancelDraw()
Definition:
mouse.cpp:89
ToolBase::reset
void reset()
Definition:
mouse.cpp:80
ToolBase::OnFinishDraw
virtual void OnFinishDraw()
Definition:
mouse.cpp:94
ToolBase::createToolObject
static ToolBase * createToolObject(TOOLTYPE type)
Definition:
mouse.cpp:763
ToolBase::m_fg
COLORREF m_fg
Definition:
toolsmodel.h:38
ToolBase::beginEvent
void beginEvent()
Definition:
mouse.cpp:99
ToolBase::~ToolBase
virtual ~ToolBase()
Definition:
toolsmodel.h:46
ToolBase::pointStack
static POINT pointStack[256]
Definition:
toolsmodel.h:40
ToolBase::m_bg
COLORREF m_bg
Definition:
toolsmodel.h:38
ToolBase::ToolBase
ToolBase(TOOLTYPE tool)
Definition:
toolsmodel.h:42
tagPOINT
Definition:
polytest.cpp:47
toolsModel
ToolsModel toolsModel
Definition:
toolsmodel.cpp:11
UnZoomed
static int UnZoomed(int xy)
Definition:
toolsmodel.h:131
TOOLTYPE
TOOLTYPE
Definition:
toolsmodel.h:12
TOOL_AIRBRUSH
@ TOOL_AIRBRUSH
Definition:
toolsmodel.h:21
TOOL_COLOR
@ TOOL_COLOR
Definition:
toolsmodel.h:17
TOOL_SHAPE
@ TOOL_SHAPE
Definition:
toolsmodel.h:26
TOOL_RUBBER
@ TOOL_RUBBER
Definition:
toolsmodel.h:15
TOOL_MAX
@ TOOL_MAX
Definition:
toolsmodel.h:29
TOOL_BRUSH
@ TOOL_BRUSH
Definition:
toolsmodel.h:20
TOOL_RECT
@ TOOL_RECT
Definition:
toolsmodel.h:25
TOOL_BEZIER
@ TOOL_BEZIER
Definition:
toolsmodel.h:24
TOOL_FILL
@ TOOL_FILL
Definition:
toolsmodel.h:16
TOOL_TEXT
@ TOOL_TEXT
Definition:
toolsmodel.h:22
TOOL_PEN
@ TOOL_PEN
Definition:
toolsmodel.h:19
TOOL_LINE
@ TOOL_LINE
Definition:
toolsmodel.h:23
TOOL_FREESEL
@ TOOL_FREESEL
Definition:
toolsmodel.h:13
TOOL_ZOOM
@ TOOL_ZOOM
Definition:
toolsmodel.h:18
TOOL_ELLIPSE
@ TOOL_ELLIPSE
Definition:
toolsmodel.h:27
TOOL_RRECT
@ TOOL_RRECT
Definition:
toolsmodel.h:28
TOOL_RECTSEL
@ TOOL_RECTSEL
Definition:
toolsmodel.h:14
Zoomed
static int Zoomed(int xy)
Definition:
toolsmodel.h:126
INT
int32_t INT
Definition:
typedefs.h:58
COLORREF
DWORD COLORREF
Definition:
windef.h:300
base
applications
mspaint
toolsmodel.h
Generated on Fri Mar 31 2023 06:02:16 for ReactOS by
1.9.6