2015-05-08 16:02:36 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: PAINT for ReactOS
|
|
|
|
* LICENSE: LGPL
|
2015-09-09 13:13:35 +00:00
|
|
|
* FILE: base/applications/mspaint/selection.h
|
2015-05-08 16:02:36 +00:00
|
|
|
* PURPOSE: Window procedure of the selection window
|
|
|
|
* PROGRAMMERS: Benedikt Freisen
|
2017-07-27 09:29:42 +00:00
|
|
|
* Katayama Hirofumi MZ
|
2015-05-08 16:02:36 +00:00
|
|
|
*/
|
|
|
|
|
2017-12-09 12:36:45 +00:00
|
|
|
#pragma once
|
|
|
|
|
2015-07-07 10:42:49 +00:00
|
|
|
class CSelectionWindow : public CWindowImpl<CSelectionWindow>
|
|
|
|
{
|
|
|
|
public:
|
2022-01-30 03:05:23 +00:00
|
|
|
CSelectionWindow() : m_bMoved(FALSE)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOL IsMoved() const { return m_bMoved; }
|
|
|
|
void IsMoved(BOOL bMoved) { m_bMoved = bMoved; }
|
|
|
|
|
|
|
|
void ForceRefreshSelectionContents();
|
|
|
|
|
2015-07-07 10:42:49 +00:00
|
|
|
DECLARE_WND_CLASS_EX(_T("Selection"), CS_DBLCLKS, COLOR_BTNFACE)
|
2015-05-08 16:02:36 +00:00
|
|
|
|
2015-07-07 11:44:50 +00:00
|
|
|
BEGIN_MSG_MAP(CSelectionWindow)
|
2015-07-07 10:42:49 +00:00
|
|
|
MESSAGE_HANDLER(WM_PAINT, OnPaint)
|
|
|
|
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
|
|
|
|
MESSAGE_HANDLER(WM_CREATE, OnCreate)
|
|
|
|
MESSAGE_HANDLER(WM_SYSCOLORCHANGE, OnSysColorChange)
|
|
|
|
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
|
|
|
|
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
|
|
|
|
MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove)
|
2021-12-27 13:20:22 +00:00
|
|
|
MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel)
|
2015-07-07 10:42:49 +00:00
|
|
|
MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
|
2022-01-30 03:05:23 +00:00
|
|
|
MESSAGE_HANDLER(WM_MOVE, OnMove)
|
2015-07-09 18:48:42 +00:00
|
|
|
MESSAGE_HANDLER(WM_PALETTEMODELCOLORCHANGED, OnPaletteModelColorChanged)
|
|
|
|
MESSAGE_HANDLER(WM_TOOLSMODELSETTINGSCHANGED, OnToolsModelSettingsChanged)
|
2022-01-10 12:41:00 +00:00
|
|
|
MESSAGE_HANDLER(WM_TOOLSMODELZOOMCHANGED, OnToolsModelZoomChanged)
|
2015-07-09 18:48:42 +00:00
|
|
|
MESSAGE_HANDLER(WM_SELECTIONMODELREFRESHNEEDED, OnSelectionModelRefreshNeeded)
|
2017-07-27 09:29:42 +00:00
|
|
|
MESSAGE_HANDLER(WM_CAPTURECHANGED, OnCaptureChanged)
|
|
|
|
MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
|
2015-07-07 10:42:49 +00:00
|
|
|
END_MSG_MAP()
|
|
|
|
|
|
|
|
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnEraseBkgnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSysColorChange(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2021-12-27 13:20:22 +00:00
|
|
|
LRESULT OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2015-07-07 10:42:49 +00:00
|
|
|
LRESULT OnLButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2015-07-09 18:48:42 +00:00
|
|
|
LRESULT OnPaletteModelColorChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnToolsModelSettingsChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2022-01-10 12:41:00 +00:00
|
|
|
LRESULT OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2015-07-09 18:48:42 +00:00
|
|
|
LRESULT OnSelectionModelRefreshNeeded(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2017-07-27 09:29:42 +00:00
|
|
|
LRESULT OnCaptureChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2022-01-30 03:05:23 +00:00
|
|
|
LRESULT OnMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2015-07-09 09:48:01 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
static const LPCTSTR m_lpszCursorLUT[9];
|
2022-01-30 03:05:23 +00:00
|
|
|
BOOL m_bMoved;
|
2015-07-09 09:48:01 +00:00
|
|
|
BOOL m_bMoving;
|
|
|
|
int m_iAction;
|
|
|
|
POINT m_ptPos;
|
|
|
|
POINT m_ptFrac;
|
|
|
|
POINT m_ptDelta;
|
2022-01-30 03:05:23 +00:00
|
|
|
COLORREF m_rgbBack;
|
2015-07-09 09:48:01 +00:00
|
|
|
|
|
|
|
int IdentifyCorner(int iXPos, int iYPos, int iWidth, int iHeight);
|
2015-07-07 10:42:49 +00:00
|
|
|
};
|
2015-05-08 16:02:36 +00:00
|
|
|
|
2015-07-07 10:42:49 +00:00
|
|
|
void ForceRefreshSelectionContents();
|