[KERNEL32] LCMapString: Fullwidth/halfwidth conversion (#5206)
[reactos.git] / base / applications / mspaint / selection.h
1 /*
2 * PROJECT: PAINT for ReactOS
3 * LICENSE: LGPL
4 * FILE: base/applications/mspaint/selection.h
5 * PURPOSE: Window procedure of the selection window
6 * PROGRAMMERS: Benedikt Freisen
7 * Katayama Hirofumi MZ
8 */
9
10 #pragma once
11
12 class CSelectionWindow : public CWindowImpl<CSelectionWindow>
13 {
14 public:
15 CSelectionWindow() : m_bMoved(FALSE)
16 {
17 }
18
19 BOOL IsMoved() const { return m_bMoved; }
20 void IsMoved(BOOL bMoved) { m_bMoved = bMoved; }
21
22 void ForceRefreshSelectionContents();
23
24 DECLARE_WND_CLASS_EX(_T("Selection"), CS_DBLCLKS, COLOR_BTNFACE)
25
26 BEGIN_MSG_MAP(CSelectionWindow)
27 MESSAGE_HANDLER(WM_PAINT, OnPaint)
28 MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
29 MESSAGE_HANDLER(WM_CREATE, OnCreate)
30 MESSAGE_HANDLER(WM_SYSCOLORCHANGE, OnSysColorChange)
31 MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
32 MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
33 MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove)
34 MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel)
35 MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
36 MESSAGE_HANDLER(WM_MOVE, OnMove)
37 MESSAGE_HANDLER(WM_PALETTEMODELCOLORCHANGED, OnPaletteModelColorChanged)
38 MESSAGE_HANDLER(WM_TOOLSMODELSETTINGSCHANGED, OnToolsModelSettingsChanged)
39 MESSAGE_HANDLER(WM_TOOLSMODELZOOMCHANGED, OnToolsModelZoomChanged)
40 MESSAGE_HANDLER(WM_SELECTIONMODELREFRESHNEEDED, OnSelectionModelRefreshNeeded)
41 MESSAGE_HANDLER(WM_CAPTURECHANGED, OnCaptureChanged)
42 MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
43 END_MSG_MAP()
44
45 LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
46 LRESULT OnEraseBkgnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
47 LRESULT OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
48 LRESULT OnSysColorChange(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
49 LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
50 LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
51 LRESULT OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
52 LRESULT OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
53 LRESULT OnLButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
54 LRESULT OnPaletteModelColorChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
55 LRESULT OnToolsModelSettingsChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
56 LRESULT OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
57 LRESULT OnSelectionModelRefreshNeeded(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
58 LRESULT OnCaptureChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
59 LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
60 LRESULT OnMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
61
62 private:
63 static const LPCTSTR m_lpszCursorLUT[9];
64 BOOL m_bMoved;
65 BOOL m_bMoving;
66 int m_iAction;
67 POINT m_ptPos;
68 POINT m_ptFrac;
69 POINT m_ptDelta;
70 COLORREF m_rgbBack;
71
72 int IdentifyCorner(int iXPos, int iYPos, int iWidth, int iHeight);
73 };
74
75 void ForceRefreshSelectionContents();