Files
Katayama Hirofumi MZ b35a9be972 [MSPAINT] Fix Color Picker tool (#9179)
The behavior of Color Picker (dropper) tool
was incompatible with Windows.
JIRA issue: CORE-19466
- On TOOL_COLOR, when mouse was pressed
  or moved, send WM_TOOLSMODELCOLORPICKED
  message with color value to the tools settings
  window.
- In the tools settings window, display the picked
  color.
- Don't apply to the current color until mouse up.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <[email protected]>
2026-06-20 11:03:33 +09:00

55 lines
2.3 KiB
C++

/*
* PROJECT: PAINT for ReactOS
* LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
* PURPOSE: Window procedure of the tool settings window
* COPYRIGHT: Copyright 2015 Benedikt Freisen <[email protected]>
*/
#pragma once
class CToolSettingsWindow : public CWindowImpl<CToolSettingsWindow>
{
public:
DECLARE_WND_CLASS_EX(L"ToolSettings", CS_DBLCLKS, COLOR_BTNFACE)
BEGIN_MSG_MAP(CToolSettingsWindow)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(WM_VSCROLL, OnVScroll)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
MESSAGE_HANDLER(WM_NOTIFY, OnNotify)
MESSAGE_HANDLER(WM_TOOLSMODELTOOLCHANGED, OnToolsModelToolChanged)
MESSAGE_HANDLER(WM_TOOLSMODELSETTINGSCHANGED, OnToolsModelSettingsChanged)
MESSAGE_HANDLER(WM_TOOLSMODELCOLORPICKED, OnToolsModelColorPicked)
MESSAGE_HANDLER(WM_TOOLSMODELZOOMCHANGED, OnToolsModelZoomChanged)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
END_MSG_MAP()
BOOL DoCreate(HWND hwndParent);
private:
CWindow trackbarZoom;
HICON m_hNontranspIcon;
HICON m_hTranspIcon;
COLORREF m_rgbPickColor = CLR_INVALID;
VOID drawTrans(HDC hdc, LPCRECT prc);
VOID drawRubber(HDC hdc, LPCRECT prc);
VOID drawBrush(HDC hdc, LPCRECT prc);
VOID drawLine(HDC hdc, LPCRECT prc);
VOID drawBox(HDC hdc, LPCRECT prc);
VOID drawAirBrush(HDC hdc, LPCRECT prc);
VOID calculateTwoBoxes(CRect& rect1, CRect& rect2);
LRESULT OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnDestroy(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelSettingsChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelColorPicked(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
};