[MSPAINT] Make selection window-less (#5208)
[reactos.git] / base / applications / mspaint / common.h
1 /*
2 * PROJECT: PAINT for ReactOS
3 * LICENSE: LGPL
4 * FILE: base/applications/mspaint/common.h
5 * PURPOSE: Commonly used functions and definitions
6 * PROGRAMMERS: Benedikt Freisen
7 * Stanislav Motylkov
8 * Katayama Hirofumi MZ
9 */
10
11 #pragma once
12
13 #define GRIP_SIZE 3
14 #define MIN_ZOOM 125
15 #define MAX_ZOOM 8000
16
17 #define MAX_LONG_PATH 512
18
19 #define WM_TOOLSMODELTOOLCHANGED (WM_APP + 0)
20 #define WM_TOOLSMODELSETTINGSCHANGED (WM_APP + 1)
21 #define WM_TOOLSMODELZOOMCHANGED (WM_APP + 2)
22 #define WM_PALETTEMODELCOLORCHANGED (WM_APP + 3)
23 #define WM_PALETTEMODELPALETTECHANGED (WM_APP + 4)
24 #define WM_IMAGEMODELDIMENSIONSCHANGED (WM_APP + 5)
25 #define WM_IMAGEMODELIMAGECHANGED (WM_APP + 6)
26 #define WM_SELECTIONMODELREFRESHNEEDED (WM_APP + 7)
27
28 /* width of the rectangle defined by a RECT structure */
29 #define RECT_WIDTH(a) ((a).right - (a).left)
30
31 /* height of the rectangle defined by a RECT structure */
32 #define RECT_HEIGHT(a) ((a).bottom - (a).top)
33
34 /* this simplifies checking and unchecking menu items */
35 #define CHECKED_IF(a) ((a) ? (MF_CHECKED | MF_BYCOMMAND) : (MF_UNCHECKED | MF_BYCOMMAND))
36
37 /* this simplifies enabling or graying menu items */
38 #define ENABLED_IF(a) ((a) ? (MF_ENABLED | MF_BYCOMMAND) : (MF_GRAYED | MF_BYCOMMAND))
39
40 enum CANVAS_HITTEST // hit
41 {
42 HIT_NONE = 0, // Nothing hit or outside
43 HIT_UPPER_LEFT,
44 HIT_UPPER_CENTER,
45 HIT_UPPER_RIGHT,
46 HIT_MIDDLE_LEFT,
47 HIT_MIDDLE_RIGHT,
48 HIT_LOWER_LEFT,
49 HIT_LOWER_CENTER,
50 HIT_LOWER_RIGHT,
51 HIT_BORDER,
52 HIT_INNER,
53 };
54
55 /* FUNCTIONS ********************************************************/
56
57 BOOL zoomTo(int newZoom, int mouseX, int mouseY);
58 BOOL nearlyEqualPoints(INT x0, INT y0, INT x1, INT y1);
59 void updateStartAndLast(LONG x, LONG y);
60 void updateLast(LONG x, LONG y);