[RAPPS]
[reactos.git] / reactos / base / applications / mspaint / toolsmodel.cpp
1 /*
2 * PROJECT: PAINT for ReactOS
3 * LICENSE: LGPL
4 * FILE: base/applications/mspaint/toolsmodel.cpp
5 * PURPOSE: Keep track of tool parameters, notify listeners
6 * PROGRAMMERS: Benedikt Freisen
7 */
8
9 /* INCLUDES *********************************************************/
10
11 #include "precomp.h"
12
13 /* FUNCTIONS ********************************************************/
14
15 ToolsModel::ToolsModel()
16 {
17 m_lineWidth = 1;
18 m_shapeStyle = 0;
19 m_brushStyle = 0;
20 m_activeTool = TOOL_PEN;
21 m_airBrushWidth = 5;
22 m_rubberRadius = 4;
23 m_transpBg = FALSE;
24 m_zoom = 1000;
25 }
26
27 int ToolsModel::GetLineWidth()
28 {
29 return m_lineWidth;
30 }
31
32 void ToolsModel::SetLineWidth(int nLineWidth)
33 {
34 m_lineWidth = nLineWidth;
35 NotifyToolSettingsChanged();
36 }
37
38 int ToolsModel::GetShapeStyle()
39 {
40 return m_shapeStyle;
41 }
42
43 void ToolsModel::SetShapeStyle(int nShapeStyle)
44 {
45 m_shapeStyle = nShapeStyle;
46 NotifyToolSettingsChanged();
47 }
48
49 int ToolsModel::GetBrushStyle()
50 {
51 return m_brushStyle;
52 }
53
54 void ToolsModel::SetBrushStyle(int nBrushStyle)
55 {
56 m_brushStyle = nBrushStyle;
57 NotifyToolSettingsChanged();
58 }
59
60 int ToolsModel::GetActiveTool()
61 {
62 return m_activeTool;
63 }
64
65 void ToolsModel::SetActiveTool(int nActiveTool)
66 {
67 m_activeTool = nActiveTool;
68 NotifyToolChanged();
69 }
70
71 int ToolsModel::GetAirBrushWidth()
72 {
73 return m_airBrushWidth;
74 }
75
76 void ToolsModel::SetAirBrushWidth(int nAirBrushWidth)
77 {
78 m_airBrushWidth = nAirBrushWidth;
79 NotifyToolSettingsChanged();
80 }
81
82 int ToolsModel::GetRubberRadius()
83 {
84 return m_rubberRadius;
85 }
86
87 void ToolsModel::SetRubberRadius(int nRubberRadius)
88 {
89 m_rubberRadius = nRubberRadius;
90 NotifyToolSettingsChanged();
91 }
92
93 BOOL ToolsModel::IsBackgroundTransparent()
94 {
95 return m_transpBg;
96 }
97
98 void ToolsModel::SetBackgroundTransparent(BOOL bTransparent)
99 {
100 m_transpBg = bTransparent;
101 NotifyToolSettingsChanged();
102 }
103
104 int ToolsModel::GetZoom()
105 {
106 return m_zoom;
107 }
108
109 void ToolsModel::SetZoom(int nZoom)
110 {
111 m_zoom = nZoom;
112 NotifyZoomChanged();
113 }
114
115 void ToolsModel::NotifyToolChanged()
116 {
117 toolBoxContainer.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
118 toolSettingsWindow.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
119 textEditWindow.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
120 }
121
122 void ToolsModel::NotifyToolSettingsChanged()
123 {
124 toolSettingsWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED);
125 selectionWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED);
126 }
127
128 void ToolsModel::NotifyZoomChanged()
129 {
130 toolSettingsWindow.SendMessage(WM_TOOLSMODELZOOMCHANGED);
131 }