Commit graph

156 commits

Author SHA1 Message Date
Katayama Hirofumi MZ 0087ea6597 [MSPAINT] Set CC_RGBINIT to CMainWindow::ChooseColor
It had failed to set initial color. CORE-18867
2023-06-13 15:51:52 +09:00
Katayama Hirofumi MZ cb245ff711 [MSPAINT] Scrolled canvas has defects in dragging a selection
CORE-18990, CORE-18867
2023-06-13 14:57:59 +09:00
Katayama Hirofumi MZ 62b6859a67 [MSPAINT] Follow-up of #5332 (9ff9580)
Simplify the epilogue code of CCanvasWindow::OnSetCursor by using bHandle variable. CORE-18867
2023-06-13 14:18:12 +09:00
Jose Carlos Jesus 9ff9580fb0
[MSPAINT] Fix the type of cursor displayed when overlaying scrollbars (#5332)
When the window size is smaller than the image size in both directions, the wrong cursor is displayed when hovering the mouse over the scrollbars.

Readjust position for file date and file size objects, to fit all text.

CORE-18867
2023-06-13 13:01:39 +09:00
Katayama Hirofumi MZ 83762575e1 [MSPAINT] Add (CS_HREDRAW | CS_VREDRAW) style to CCanvasWindow
Reduce repainting defects. CORE-18867
2023-06-12 21:12:37 +09:00
Jose Carlos Jesus ed22908780
[MSPAINT] Update Portuguese (pt-PT) translation (#5319) 2023-06-10 16:21:54 +00:00
Katayama Hirofumi MZ d708c7947b
[MSPAINT] Use better units for image resolution (#5301)
Our paint program used the pixels per meter (PPM)
unit but this unit is hardly used in the world.
Let's use DPI (dots per inch) and/or pixels per
centimeter (PPCM). CORE-18867
2023-06-04 11:24:00 +09:00
Katayama Hirofumi MZ 36cdd34814 [MSPAINT] Use black and R2_NOTXORPEN instead of white and R2_XORPEN
Workaround. CORE-18867, CORE-18921
2023-05-31 17:00:05 +09:00
Katayama Hirofumi MZ bddd8b058c [MSPAINT] Minor adjustment on drawing text on TOOL_TEXT
CORE-18867
2023-05-31 13:31:50 +09:00
Katayama Hirofumi MZ aeffa57ec7 [MSPAINT] Fix textbox background by using WM_CTLCOLOREDIT
CORE-18867
2023-05-31 13:21:01 +09:00
Katayama Hirofumi MZ a9284b5664 [MSPAINT] Fix handle leaks about memory bitmap
This fixes CORE-18919. CORE-18867
2023-04-09 11:17:17 +09:00
Katayama Hirofumi MZ 96c7fe4ccd [MSPAINT] Fix Copy and Paste
Call GetSelectionContents in SelectionModel::GetBitmap.
CORE-18920, CORE-18867
2023-04-09 09:14:32 +09:00
Katayama Hirofumi MZ 639739a7cd [MSPAINT] Fix SelectionModel::InsertFromHBITMAP bug
CORE-18867, CORE-18920
2023-04-09 09:01:14 +09:00
Katayama Hirofumi MZ f45d80adc9 [MSPAINT] Canvas: Don't draw new frame if HIT_NONE
CORE-18867
2023-04-09 08:49:18 +09:00
Katayama Hirofumi MZ 132f482de2 [MSPAINT] imageSaved = FALSE after image size change
...and redraw canvas after image resizing is canceled.
CORE-18867
2023-04-09 08:23:44 +09:00
Katayama Hirofumi MZ efe7368c46
[MSPAINT] Make imageArea window-less (#5215)
- Move imageArea code into canvasWindow.
- Delete imgarea.cpp, imgarea.h, and imageArea.
- Add CCanvasWindow::ImageToCanvas and CCanvasWindow::CanvasToImage to convert the coordinates.
- Realize drawing of resizing image area.
CORE-18867
2023-04-08 22:25:27 +09:00
Katayama Hirofumi MZ d0c657074d
[MSPAINT] Allow paletteWindow to be bottom-aligned (#5216)
The user will be able to move the palette window to bottom by dragging.
- Add Bar1ID registry setting.
- Move paletteWindow to top or bottom in mainWindow's WM_SIZE handling.
- Track the mouse dragging on paletteWindow.
- If the dragging is beyond the center point, then move paletteWindow.
CORE-18867
2023-04-04 19:06:06 +09:00
Katayama Hirofumi MZ 83e83bfd2c
[MSPAINT] Allow ToolBox to be right-aligned (#5213)
The user will be able to move ToolBox in the main window by dragging.
- Add Bar2ID registry setting.
- Add CPaintToolBar class to encapsulate the toolbar code.
- Capture and track the mouse dragging in CToolBox.
- Move the ToolBox if dragging is beyond the center position.
CORE-18867
2023-04-03 14:34:56 +09:00
Katayama Hirofumi MZ aac89519ec
[MSPAINT] Make selection window-less (#5208)
- Delete selection.cpp and selection.h and selectionWindow.
- Extend ColorKeyedMaskBlt function.
- Implement selection resizing.
CORE-18867
2023-04-01 22:01:04 +09:00
Katayama Hirofumi MZ 29e147beca
[MSPAINT][ATL] Encapsulation: mainWindow (#5178)
- Add DoCreate methods to CFullscreenWindow, CMiniatureWindow, and CMainWindow classes.
- Do encapsulation around mainWindow and _tWinMain.
- Add GetOpenFileName, GetSaveFileName, and ChooseColor helper methods to CMainWindow class.
- Move some code in WinMain into CMainWindow::OnCreate.
- Delay creation of CFullscreenWindow and CMiniatureWindow.
- Extend ATL CImage class as CImageDx in newly-created atlimagedx.h of mspaint.
CORE-18867
2023-03-28 22:31:26 +09:00
Katayama Hirofumi MZ 5c8d578a15 [MSPAINT] Simplify OFNHookProc and FileExtFromFilter
... by using PathFindExtension and PathFindFileName.
CORE-18867
2023-03-22 10:42:21 +09:00
Katayama Hirofumi MZ 68e6820ddf [MSPAINT] Improve CMiniatureWindow::OnPaint
CORE-18867
2023-03-22 08:10:26 +09:00
Katayama Hirofumi MZ cb454ef9ed
[MSPAINT] Simplify TextEdit by using SizeBox (#5177)
Reduce source code. CORE-18867
2023-03-21 13:15:08 +09:00
Katayama Hirofumi MZ 57891b5f34
[MSPAINT] Tool settings: Reduce magic numbers (#5168)
Many coordinates are dynamically calculated. It is adjustable against client area change.
- Fix some brush/eraser shapes for pixel perfection.
- Reduce magic numbers in toolssettings.cpp.
- Refactoring.
CORE-18867
2023-03-21 13:13:53 +09:00
Katayama Hirofumi MZ ed03768b1b [MSPAINT] Move '#include <crtdbg.h>' and add _CRTDBG_MAP_ALLOC
CORE-18867
2023-03-20 22:59:05 +09:00
Katayama Hirofumi MZ 6b6a045766
[MSPAINT] Make sizeboxes window-less (#5166)
Reduce window controls and integrate to the canvas window.
- The sizeboxes are absorbed by canvasWindow.
- class CSizeboxWindow is deleted.
- Add enum CANVAS_HITTEST.
- Add getSizeBoxRect, getSizeBoxHitTest, and drawSizeBoxes helper functions in sizebox.cpp.
CORE-18867
2023-03-19 10:42:10 +09:00
Katayama Hirofumi MZ 1c7c0fa7a7 [MSPAINT] Save ToolBox visibility (#5167)
According to my registry analysis, the target value is HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Applets\Paint\General-Bar3:Visible.
- Add ShowToolBox registry setting.
CORE-18867
2023-03-18 17:20:43 +09:00
Katayama Hirofumi MZ 5ed7db5acb
[MSPAINT] Save paletteWindow visibility (#5167)
According to my registry analysis, HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Paint\General-Bar4:Visible is the target value.
- Improve ReadDWORD helper function.
- Add ShowPalette registry setting.
- Simplify RegistrySettings::Load and RegistrySettings::Store.
CORE-18867
2023-03-18 17:12:28 +09:00
Katayama Hirofumi MZ e9f3790aa4 [MSPAINT] Encapsulation: hNontranspIcon and hTranspIcon
CORE-18867
2023-03-18 08:24:19 +09:00
Katayama Hirofumi MZ cc3b53fef9 [MSPAINT] Encapsulation: hCurFill, hCurColor etc.
CORE-18867
2023-03-18 08:09:26 +09:00
Katayama Hirofumi MZ d40de8f47c [MSPAINT] Add Static Edge to toolbars
- Add WS_EX_STATICEDGE to paletteWindow.
- Remove CCS_NODIVIDER from toolbar.
CORE-18867
2023-03-17 19:18:07 +09:00
Katayama Hirofumi MZ 868c7c4d53 [MSPAINT] Delete useless "STATIC" control
CORE-18867
2023-03-17 19:01:42 +09:00
Katayama Hirofumi MZ eacf003c81 [MSPAINT] Move UpdateCanvas's code to newly-defined CCanvasWindow::Update
CORE-18867
2023-03-17 07:51:12 +09:00
Katayama Hirofumi MZ 7361592ede [MSPAINT] Rename scrollbox as canvas
- s/CScrollboxWindow/CCanvasWindow/
- s/scrollboxWindow/canvasWindow/
- s/UpdateScrollbox/UpdateCanvas/
CORE-18867
2023-03-17 07:45:14 +09:00
Katayama Hirofumi MZ a88dcbd6c3
[MSPAINT] Remove extra scrlClientWindow (#5162)
CORE-18867
2023-03-17 07:28:42 +09:00
Katayama Hirofumi MZ 41c30182d4
[MSPAINT] Refactor about Recent Files (#5163)
Define MAX_RECENT_FILES macro as 4.
Remove strFile1, ..., strFile4 settings and add strFiles[MAX_RECENT_FILES] for Most Recently Used (MRU) files.
CORE-18867
2023-03-17 07:28:01 +09:00
Katayama Hirofumi MZ a81f229065
[MSPAINT] Restore the main window saved show state (#5158)
Our mspaint didn't remember the maximized status of the main window. CORE-18867
2023-03-17 07:26:44 +09:00
Katayama Hirofumi MZ 88733bca77
[MSPAINT] Unlink HHCTRL.OCX and use dynamic load (#5165)
Unlink HHCTRL.OCX by modifying CMakeLists.txt. Add DoHtmlHelpW helper function. CORE-18879, CORE-18867
2023-03-17 07:25:51 +09:00
Katayama Hirofumi MZ 0cf45d508c [MSPAINT] Delete needless CMainWindow::OnSetCursor
CORE-18867
2023-03-16 18:13:28 +09:00
Katayama Hirofumi MZ b5ae55f3ff [MSPAINT] Delete useless CFullscreenWindow::OnSetCursor
CORE-18867
2023-03-16 17:56:05 +09:00
Katayama Hirofumi MZ b369ec3fa1 [MSPAINT] Delete needless CMiniatureWindow::OnSetCursor
CORE-18867
2023-03-16 17:49:05 +09:00
Katayama Hirofumi MZ 34881b9a88 [MSPAINT] Delete needless CToolBox::OnSetCursor
CORE-18867
2023-03-16 17:26:27 +09:00
Katayama Hirofumi MZ 3625f55fbb [MSPAINT] Delete unused global variables (lfTextFont, ...
hfontTextFont, hwndEditCtl, textToolText, and textToolTextMaxLen).
CORE-18867
2023-03-15 15:09:26 +09:00
Katayama Hirofumi MZ 44b2a46d03
[MSPAINT] Avoid flickering when resizing (#5144)
- Add CPaletteWindow::OnEraseBkgnd to avoid flickering.
- Add getColorBoxRect and drawColorBox helper functions to draw a color box.
- Add CPaletteWindow::DoHitTest helper function to do a hit test.
- Improve CPaletteWindow::OnPaint by using a memory bitmap.
- Improve readability of CMainWindow::alignChildrenToMainWindow.
CORE-18867
2023-03-15 07:29:25 +09:00
Katayama Hirofumi MZ 9b6b1b3513 [MSPAINT] CImageAreaWindow should inherit CWindowImpl<CImgAreaWindow>
... instead of CWindowImpl<CMainWindow>.
CORE-18867
2023-03-14 14:17:40 +09:00
Katayama Hirofumi MZ d91b262590 [MSPAINT] Window class of main window should be 'MSPaintApp'
CORE-18867
2023-03-14 14:09:17 +09:00
Katayama Hirofumi MZ 0998665463 [MSPAINT] Use _CrtSetDbgFlag to check memory leak
We can borrow the power of CRT debug. These changes are effective for debug version only:
- Insert #include <crtdbg.h> at main.cpp.
- Call _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF) at the prologue of _tWinMain.

This is a follow-up of #5151 (9abd9b6).
CORE-18867
2023-03-14 07:17:14 +09:00
Katayama Hirofumi MZ b49b47fc84 [MSPAINT] Delete unused HWND hToolBtn[16] global variable
CORE-18867
2023-03-11 14:19:12 +09:00
Katayama Hirofumi MZ 9ff9295a22
[MSPAINT] Remember status bar visibility (#5145)
- Add ShowStatusBar registry setting.
- Save ShowStatusBar status and restore the status on startup.
CORE-18867
2023-03-11 11:41:52 +09:00
Katayama Hirofumi MZ 86e2f9e635
[MSPAINT] There were two "main" windows (#5147)
Our mspaint had two windows of window class "MainWindow".
class CToolBox should inherit CWindowImpl<CToolBox> instead of CWindowImpl<CMainWindow>.
CORE-18867
2023-03-11 07:42:04 +09:00