2 * PROJECT: PAINT for ReactOS
4 * FILE: base/applications/paint/toolsettings.c
5 * PURPOSE: Window procedure of the tool settings window
6 * PROGRAMMERS: Benedikt Freisen
9 /* INCLUDES *********************************************************/
13 #include "globalvar.h"
17 /* FUNCTIONS ********************************************************/
19 extern void zoomTo(int, int, int);
22 SettingsWinProc(HWND hwnd
, UINT message
, WPARAM wParam
, LPARAM lParam
)
27 zoomTo(125 << SendMessage(hTrackbarZoom
, TBM_GETPOS
, 0, 0), 0, 0);
31 HDC hdc
= GetDC(hwnd
);
32 RECT rect1
= { 0, 0, 42, 66 };
33 RECT rect2
= { 0, 70, 42, 136 };
35 DefWindowProc(hwnd
, message
, wParam
, lParam
);
37 DrawEdge(hdc
, &rect1
, BDR_SUNKENOUTER
, (activeTool
== TOOL_ZOOM
) ? BF_RECT
: BF_RECT
| BF_MIDDLE
);
38 DrawEdge(hdc
, &rect2
, (activeTool
>= TOOL_RECT
) ? BDR_SUNKENOUTER
: 0, BF_RECT
| BF_MIDDLE
);
45 HPEN oldPen
= SelectObject(hdc
, CreatePen(PS_NULL
, 0, 0));
46 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
47 Rectangle(hdc
, 2, transpBg
* 31 + 2, 41, transpBg
* 31 + 33);
48 DeleteObject(SelectObject(hdc
, oldPen
));
49 DrawIconEx(hdc
, 1, 2, hNontranspIcon
, 40, 30, 0, NULL
, DI_NORMAL
);
50 DrawIconEx(hdc
, 1, 33, hTranspIcon
, 40, 30, 0, NULL
, DI_NORMAL
);
56 HPEN oldPen
= SelectObject(hdc
, CreatePen(PS_NULL
, 0, 0));
57 for(i
= 0; i
< 4; i
++)
59 if (rubberRadius
== i
+ 2)
61 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
62 Rectangle(hdc
, 14, i
* 15 + 2, 29, i
* 15 + 17);
63 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHTTEXT
));
66 SelectObject(hdc
, GetSysColorBrush(COLOR_WINDOWTEXT
));
67 Rectangle(hdc
, 19 - i
, i
* 14 + 7, 24 + i
, i
* 16 + 12);
69 DeleteObject(SelectObject(hdc
, oldPen
));
75 HPEN oldPen
= SelectObject(hdc
, CreatePen(PS_NULL
, 0, 0));
76 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
77 Rectangle(hdc
, brushStyle
% 3 * 13 + 2, brushStyle
/ 3 * 15 + 2, brushStyle
% 3 * 13 + 15,
78 brushStyle
/ 3 * 15 + 17);
79 DeleteObject(SelectObject(hdc
, oldPen
));
80 for(i
= 0; i
< 12; i
++)
81 Brush(hdc
, i
% 3 * 13 + 7, i
/ 3 * 15 + 8, i
% 3 * 13 + 7, i
/ 3 * 15 + 8,
82 GetSysColor((i
== brushStyle
) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
), i
);
87 HPEN oldPen
= SelectObject(hdc
, CreatePen(PS_NULL
, 0, 0));
88 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
89 switch (airBrushWidth
)
92 Rectangle(hdc
, 2, 2, 21, 31);
95 Rectangle(hdc
, 20, 2, 41, 31);
98 Rectangle(hdc
, 2, 30, 16, 61);
101 Rectangle(hdc
, 15, 30, 41, 61);
104 Airbrush(hdc
, 10, 15,
105 GetSysColor((airBrushWidth
== 5) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
), 5);
106 Airbrush(hdc
, 30, 15,
107 GetSysColor((airBrushWidth
== 8) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
), 8);
109 GetSysColor((airBrushWidth
== 3) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
), 3);
110 Airbrush(hdc
, 27, 45,
111 GetSysColor((airBrushWidth
== 12) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
), 12);
112 DeleteObject(SelectObject(hdc
, oldPen
));
119 HPEN oldPen
= SelectObject(hdc
, CreatePen(PS_NULL
, 0, 0));
120 for(i
= 0; i
< 5; i
++)
122 if (lineWidth
== i
+ 1)
124 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
125 Rectangle(hdc
, 2, i
* 12 + 2, 41, i
* 12 + 14);
126 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHTTEXT
));
129 SelectObject(hdc
, GetSysColorBrush(COLOR_WINDOWTEXT
));
130 Rectangle(hdc
, 5, i
* 12 + 6, 38, i
* 12 + 8 + i
);
132 DeleteObject(SelectObject(hdc
, oldPen
));
141 HPEN oldPen
= SelectObject(hdc
, CreatePen(PS_NULL
, 0, 0));
142 for(i
= 0; i
< 3; i
++)
146 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
147 Rectangle(hdc
, 2, i
* 20 + 2, 41, i
* 20 + 22);
150 Rect(hdc
, 5, 6, 37, 16,
151 GetSysColor((shapeStyle
== 0) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
),
152 GetSysColor(COLOR_APPWORKSPACE
), 1, 0);
153 Rect(hdc
, 5, 26, 37, 36,
154 GetSysColor((shapeStyle
== 1) ? COLOR_HIGHLIGHTTEXT
: COLOR_WINDOWTEXT
),
155 GetSysColor(COLOR_APPWORKSPACE
), 1, 1);
156 Rect(hdc
, 5, 46, 37, 56, GetSysColor(COLOR_APPWORKSPACE
), GetSysColor(COLOR_APPWORKSPACE
),
158 for(i
= 0; i
< 5; i
++)
160 if (lineWidth
== i
+ 1)
162 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHT
));
163 Rectangle(hdc
, 2, i
* 12 + 72, 41, i
* 12 + 84);
164 SelectObject(hdc
, GetSysColorBrush(COLOR_HIGHLIGHTTEXT
));
167 SelectObject(hdc
, GetSysColorBrush(COLOR_WINDOWTEXT
));
168 Rectangle(hdc
, 5, i
* 12 + 76, 38, i
* 12 + 78 + i
);
170 DeleteObject(SelectObject(hdc
, oldPen
));
174 ReleaseDC(hwnd
, hdc
);
184 if ((HIWORD(lParam
) > 1) && (HIWORD(lParam
) < 64))
186 transpBg
= (HIWORD(lParam
) - 2) / 31;
187 SendMessage(hwnd
, WM_PAINT
, 0, 0);
191 if ((HIWORD(lParam
) > 1) && (HIWORD(lParam
) < 62))
193 rubberRadius
= (HIWORD(lParam
) - 2) / 15 + 2;
194 SendMessage(hwnd
, WM_PAINT
, 0, 0);
198 if ((LOWORD(lParam
) > 1) && (LOWORD(lParam
) < 40) && (HIWORD(lParam
) > 1)
199 && (HIWORD(lParam
) < 62))
201 brushStyle
= (HIWORD(lParam
) - 2) / 15 * 3 + (LOWORD(lParam
) - 2) / 13;
202 SendMessage(hwnd
, WM_PAINT
, 0, 0);
206 if (HIWORD(lParam
) < 62)
208 if (HIWORD(lParam
) < 30)
210 if (LOWORD(lParam
) < 20)
217 if (LOWORD(lParam
) < 15)
222 SendMessage(hwnd
, WM_PAINT
, 0, 0);
227 if (HIWORD(lParam
) <= 62)
229 lineWidth
= (HIWORD(lParam
) - 2) / 12 + 1;
230 SendMessage(hwnd
, WM_PAINT
, 0, 0);
237 if (HIWORD(lParam
) <= 60)
239 shapeStyle
= (HIWORD(lParam
) - 2) / 20;
240 SendMessage(hwnd
, WM_PAINT
, 0, 0);
242 if ((HIWORD(lParam
) >= 70) && (HIWORD(lParam
) <= 132))
244 lineWidth
= (HIWORD(lParam
) - 72) / 12 + 1;
245 SendMessage(hwnd
, WM_PAINT
, 0, 0);
253 return DefWindowProc(hwnd
, message
, wParam
, lParam
);