mirror of
https://github.com/reactos/reactos.git
synced 2024-09-29 05:54:05 +00:00
[MSPAINT] Prepare for debugging (#4257)
- Add #include <debug.h> and add link to ntdll.dll for debugging. - Add CopyDIBImage helper function. CORE-17969
This commit is contained in:
parent
48d1a7bf4d
commit
b2f8d62cd1
|
@ -32,6 +32,6 @@ add_executable(mspaint ${SOURCE} rsrc.rc)
|
||||||
set_module_type(mspaint win32gui UNICODE)
|
set_module_type(mspaint win32gui UNICODE)
|
||||||
target_link_libraries(mspaint uuid cpprt atl_classes)
|
target_link_libraries(mspaint uuid cpprt atl_classes)
|
||||||
set_target_cpp_properties(mspaint WITH_EXCEPTIONS)
|
set_target_cpp_properties(mspaint WITH_EXCEPTIONS)
|
||||||
add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi)
|
add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi ntdll)
|
||||||
add_pch(mspaint precomp.h SOURCE)
|
add_pch(mspaint precomp.h SOURCE)
|
||||||
add_cd_file(TARGET mspaint DESTINATION reactos/system32 FOR all)
|
add_cd_file(TARGET mspaint DESTINATION reactos/system32 FOR all)
|
||||||
|
|
|
@ -11,6 +11,11 @@
|
||||||
HBITMAP CreateDIBWithProperties(int width, int height);
|
HBITMAP CreateDIBWithProperties(int width, int height);
|
||||||
HBITMAP CreateColorDIB(int width, int height, COLORREF rgb);
|
HBITMAP CreateColorDIB(int width, int height, COLORREF rgb);
|
||||||
|
|
||||||
|
static inline HBITMAP CopyDIBImage(HBITMAP hbm, INT cx = 0, INT cy = 0)
|
||||||
|
{
|
||||||
|
return (HBITMAP)CopyImage(hbm, IMAGE_BITMAP, cx, cy, LR_COPYRETURNORG | LR_CREATEDIBSECTION);
|
||||||
|
}
|
||||||
|
|
||||||
int GetDIBWidth(HBITMAP hbm);
|
int GetDIBWidth(HBITMAP hbm);
|
||||||
|
|
||||||
int GetDIBHeight(HBITMAP hbm);
|
int GetDIBHeight(HBITMAP hbm);
|
||||||
|
|
|
@ -44,8 +44,9 @@ ImageModel::ImageModel()
|
||||||
|
|
||||||
void ImageModel::CopyPrevious()
|
void ImageModel::CopyPrevious()
|
||||||
{
|
{
|
||||||
|
DPRINT("%s: %d\n", __FUNCTION__, currInd);
|
||||||
DeleteObject(hBms[(currInd + 1) % HISTORYSIZE]);
|
DeleteObject(hBms[(currInd + 1) % HISTORYSIZE]);
|
||||||
hBms[(currInd + 1) % HISTORYSIZE] = (HBITMAP) CopyImage(hBms[currInd], IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);
|
hBms[(currInd + 1) % HISTORYSIZE] = CopyDIBImage(hBms[currInd]);
|
||||||
currInd = (currInd + 1) % HISTORYSIZE;
|
currInd = (currInd + 1) % HISTORYSIZE;
|
||||||
if (undoSteps < HISTORYSIZE - 1)
|
if (undoSteps < HISTORYSIZE - 1)
|
||||||
undoSteps++;
|
undoSteps++;
|
||||||
|
@ -56,6 +57,7 @@ void ImageModel::CopyPrevious()
|
||||||
|
|
||||||
void ImageModel::Undo()
|
void ImageModel::Undo()
|
||||||
{
|
{
|
||||||
|
DPRINT("%s: %d\n", __FUNCTION__, undoSteps);
|
||||||
if (undoSteps > 0)
|
if (undoSteps > 0)
|
||||||
{
|
{
|
||||||
int oldWidth = GetWidth();
|
int oldWidth = GetWidth();
|
||||||
|
@ -74,6 +76,7 @@ void ImageModel::Undo()
|
||||||
|
|
||||||
void ImageModel::Redo()
|
void ImageModel::Redo()
|
||||||
{
|
{
|
||||||
|
DPRINT("%s: %d\n", __FUNCTION__, redoSteps);
|
||||||
if (redoSteps > 0)
|
if (redoSteps > 0)
|
||||||
{
|
{
|
||||||
int oldWidth = GetWidth();
|
int oldWidth = GetWidth();
|
||||||
|
@ -92,9 +95,9 @@ void ImageModel::Redo()
|
||||||
|
|
||||||
void ImageModel::ResetToPrevious()
|
void ImageModel::ResetToPrevious()
|
||||||
{
|
{
|
||||||
|
DPRINT("%s: %d\n", __FUNCTION__, currInd);
|
||||||
DeleteObject(hBms[currInd]);
|
DeleteObject(hBms[currInd]);
|
||||||
hBms[currInd] =
|
hBms[currInd] = CopyDIBImage(hBms[(currInd + HISTORYSIZE - 1) % HISTORYSIZE]);
|
||||||
(HBITMAP) CopyImage(hBms[(currInd + HISTORYSIZE - 1) % HISTORYSIZE], IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);
|
|
||||||
SelectObject(hDrawingDC, hBms[currInd]);
|
SelectObject(hDrawingDC, hBms[currInd]);
|
||||||
NotifyImageChanged();
|
NotifyImageChanged();
|
||||||
}
|
}
|
||||||
|
@ -183,9 +186,9 @@ void ImageModel::StretchSkew(int nStretchPercentX, int nStretchPercentY, int nSk
|
||||||
{
|
{
|
||||||
int oldWidth = GetWidth();
|
int oldWidth = GetWidth();
|
||||||
int oldHeight = GetHeight();
|
int oldHeight = GetHeight();
|
||||||
Insert((HBITMAP) CopyImage(hBms[currInd], IMAGE_BITMAP,
|
INT newWidth = oldWidth * nStretchPercentX / 100;
|
||||||
GetWidth() * nStretchPercentX / 100,
|
INT newHeight = oldHeight * nStretchPercentY / 100;
|
||||||
GetHeight() * nStretchPercentY / 100, 0));
|
Insert(CopyDIBImage(hBms[currInd], newWidth, newHeight));
|
||||||
if (GetWidth() != oldWidth || GetHeight() != oldHeight)
|
if (GetWidth() != oldWidth || GetHeight() != oldHeight)
|
||||||
NotifyDimensionsChanged();
|
NotifyDimensionsChanged();
|
||||||
NotifyImageChanged();
|
NotifyImageChanged();
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <htmlhelp.h>
|
#include <htmlhelp.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
#define WM_TOOLSMODELTOOLCHANGED (WM_APP + 0)
|
#define WM_TOOLSMODELTOOLCHANGED (WM_APP + 0)
|
||||||
#define WM_TOOLSMODELSETTINGSCHANGED (WM_APP + 1)
|
#define WM_TOOLSMODELSETTINGSCHANGED (WM_APP + 1)
|
||||||
#define WM_TOOLSMODELZOOMCHANGED (WM_APP + 2)
|
#define WM_TOOLSMODELZOOMCHANGED (WM_APP + 2)
|
||||||
|
|
|
@ -170,9 +170,8 @@ void SelectionModel::InsertFromHBITMAP(HBITMAP hBm)
|
||||||
HDC hTempDC;
|
HDC hTempDC;
|
||||||
HBITMAP hTempMask;
|
HBITMAP hTempMask;
|
||||||
|
|
||||||
DeleteObject(SelectObject(m_hDC, m_hBm = (HBITMAP) CopyImage(hBm,
|
m_hBm = CopyDIBImage(hBm);
|
||||||
IMAGE_BITMAP, 0, 0,
|
DeleteObject(SelectObject(m_hDC, m_hBm));
|
||||||
LR_COPYRETURNORG)));
|
|
||||||
|
|
||||||
SetRectEmpty(&m_rcSrc);
|
SetRectEmpty(&m_rcSrc);
|
||||||
m_rcDest.left = m_rcDest.top = 0;
|
m_rcDest.left = m_rcDest.top = 0;
|
||||||
|
|
|
@ -534,7 +534,7 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
|
||||||
case IDM_EDITCOPY:
|
case IDM_EDITCOPY:
|
||||||
OpenClipboard();
|
OpenClipboard();
|
||||||
EmptyClipboard();
|
EmptyClipboard();
|
||||||
SetClipboardData(CF_BITMAP, CopyImage(selectionModel.GetBitmap(), IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG));
|
SetClipboardData(CF_BITMAP, CopyDIBImage(selectionModel.GetBitmap()));
|
||||||
CloseClipboard();
|
CloseClipboard();
|
||||||
break;
|
break;
|
||||||
case IDM_EDITCUT:
|
case IDM_EDITCUT:
|
||||||
|
@ -653,7 +653,7 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
|
||||||
toolsModel.SetBackgroundTransparent(!toolsModel.IsBackgroundTransparent());
|
toolsModel.SetBackgroundTransparent(!toolsModel.IsBackgroundTransparent());
|
||||||
break;
|
break;
|
||||||
case IDM_IMAGECROP:
|
case IDM_IMAGECROP:
|
||||||
imageModel.Insert((HBITMAP) CopyImage(selectionModel.GetBitmap(), IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG));
|
imageModel.Insert(CopyDIBImage(selectionModel.GetBitmap()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDM_VIEWTOOLBOX:
|
case IDM_VIEWTOOLBOX:
|
||||||
|
|
Loading…
Reference in a new issue