2 * PROJECT: PAINT for ReactOS
3 * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
4 * PURPOSE: The precompiled header
5 * COPYRIGHT: Copyright 2015 Benedikt Freisen <b.freisen@gmx.net>
6 * Copyright 2018 Stanislav Motylkov <x86corez@gmail.com>
7 * Copyright 2021-2023 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
32 #define _USE_MATH_DEFINES /* for M_PI */
37 #include <ui/CWaitCursor.h>
41 /* CONSTANTS *******************************************************/
47 #define MAX_LONG_PATH 512
49 #define WM_TOOLSMODELTOOLCHANGED (WM_APP + 0)
50 #define WM_TOOLSMODELSETTINGSCHANGED (WM_APP + 1)
51 #define WM_TOOLSMODELZOOMCHANGED (WM_APP + 2)
52 #define WM_PALETTEMODELCOLORCHANGED (WM_APP + 3)
56 HIT_NONE
= 0, // Nothing hit or outside
69 /* COMMON FUNCTIONS *************************************************/
71 void ShowOutOfMemory(void);
72 BOOL
nearlyEqualPoints(INT x0
, INT y0
, INT x1
, INT y1
);
73 BOOL
OpenMailer(HWND hWnd
, LPCWSTR pszPathName
);
74 void getBoundaryOfPtStack(RECT
& rcBoundary
, INT cPoints
, const POINT
*pPoints
);
76 #define DEG2RAD(degree) (((degree) * M_PI) / 180)
77 #define RAD2DEG(radian) ((LONG)(((radian) * 180) / M_PI))
79 /* This simplifies checking and unchecking menu items */
80 #define CHECKED_IF(bChecked) \
81 ((bChecked) ? (MF_CHECKED | MF_BYCOMMAND) : (MF_UNCHECKED | MF_BYCOMMAND))
83 /* This simplifies enabling or graying menu items */
84 #define ENABLED_IF(bEnabled) \
85 ((bEnabled) ? (MF_ENABLED | MF_BYCOMMAND) : (MF_GRAYED | MF_BYCOMMAND))
88 inline void Swap(T
& a
, T
& b
)
95 /* LOCAL INCLUDES ***************************************************/
100 #include "fullscreen.h"
102 #include "miniature.h"
104 #include "palettemodel.h"
105 #include "registry.h"
106 #include "selectionmodel.h"
109 #include "textedit.h"
111 #include "toolsettings.h"
112 #include "toolsmodel.h"
115 #include "atlimagedx.h"
117 /* GLOBAL VARIABLES *************************************************/
119 extern HINSTANCE g_hinstExe
;
121 extern WCHAR g_szFileName
[MAX_LONG_PATH
];
122 extern BOOL g_isAFile
;
123 extern BOOL g_imageSaved
;
124 extern BOOL g_showGrid
;
125 extern BOOL g_askBeforeEnlarging
;
127 extern CMainWindow mainWindow
;
129 extern CMirrorRotateDialog mirrorRotateDialog
;
130 extern CAttributesDialog attributesDialog
;
131 extern CStretchSkewDialog stretchSkewDialog
;
132 extern CFontsDialog fontsDialog
;
134 extern RegistrySettings registrySettings
;
135 extern ImageModel imageModel
;
136 extern ToolsModel toolsModel
;
137 extern SelectionModel selectionModel
;
138 extern PaletteModel paletteModel
;
140 extern HWND g_hStatusBar
;
143 extern INT g_fileSize
;
144 extern SYSTEMTIME g_fileTime
;
146 extern CFullscreenWindow fullscreenWindow
;
147 extern CMiniatureWindow miniature
;
148 extern CToolBox toolBoxContainer
;
149 extern CToolSettingsWindow toolSettingsWindow
;
150 extern CPaletteWindow paletteWindow
;
151 extern CCanvasWindow canvasWindow
;
152 extern CTextEditWindow textEditWindow
;