Esempio n. 1
0
void ObjEditedFrame(LPOBJECT lpObject, int iDirty,
					BOOL fEditedData, BOOL fEditedAlpha,
					LPRECT lpEditRect,
					LPFRAME lpDataFrame, LPFRAME lpAlphaFrame)
/***********************************************************************/
{
LPALPHA lpAlpha;

if (lpEditRect)
	OffsetRect(lpEditRect, -lpObject->rObject.left, -lpObject->rObject.top);
lpAlpha = lpObject->lpAlpha;
if (fEditedData && lpDataFrame)
	{
	lpObject->fChanged = YES;
	lpObject->DataDirty = iDirty;
	PixmapNewFrame(&lpObject->Pixmap, lpDataFrame, lpEditRect, Control.UseApply);
	}
if (fEditedAlpha && lpAlpha && lpAlphaFrame)
	{
	lpObject->AlphaDirty = iDirty;
	PixmapNewFrame(&lpAlpha->Pixmap, lpAlphaFrame, lpEditRect, Control.UseApply);
	}
lpObject->fBothDirty = fEditedData && fEditedAlpha;
if (lpEditRect)
	OffsetRect(lpEditRect, lpObject->rObject.left, lpObject->rObject.top);
}
Esempio n. 2
0
void CImage::EditedObjectFrame(LPOBJECT lpObject, int iDirty,
					LPRECT lpEditRect,
					LPFRAME lpDataFrame, LPFRAME lpAlphaFrame)
{
LPALPHA lpAlpha;
BOOL fEditedData, fEditedAlpha, fBase;

fBase = (lpObject == GetBase());
fEditedData = (lpObject->InitUndoType & UT_DATAUNDO) != 0;
fEditedAlpha = (lpObject->InitUndoType & UT_ALPHAUNDO) != 0;
if (lpEditRect)
	OffsetRect(lpEditRect, -lpObject->rObject.left, -lpObject->rObject.top);
lpAlpha = lpObject->lpAlpha;

if (lpObject->lpText)
   lpObject->lpText->Dirty = (iDirty == IDS_UNDOEDITTEXT)? FALSE:TRUE;

if (fEditedData)
	{
    fChanged = YES;
	if (!(Control.NoUndo  || fDisableUndos) && !lpObject->fUndoFailed)
		lpObject->DataDirty = iDirty;
	if (lpDataFrame)
		{
		PixmapNewFrame(&lpObject->Pixmap, lpDataFrame, lpEditRect, Control.UseApply);
		if (lpObject == GetBase())
			{
			npix = FrameXSize(lpDataFrame);
			nlin = FrameYSize(lpDataFrame);
			}
		}
	}
if (fEditedAlpha)
	{
	if (lpObject != GetBase())
        fChanged = YES;
	if (!(Control.NoUndo  || fDisableUndos) && (!fBase || Control.UndoMasks) &&
		!lpObject->fUndoFailed)
		lpObject->AlphaDirty = iDirty;
	if (lpAlpha && lpAlphaFrame)
		PixmapNewFrame(&lpAlpha->Pixmap, lpAlphaFrame, lpEditRect, Control.UseApply);
	}
if (Control.NoUndo || fDisableUndos)
	PurgeObjects();
if (!(Control.NoUndo || fDisableUndos) && !lpObject->fUndoFailed && !lpObject->fBothDirty)
	lpObject->fBothDirty = fEditedData && fEditedAlpha;
if (lpEditRect)
	OffsetRect(lpEditRect, lpObject->rObject.left, lpObject->rObject.top);
}
Esempio n. 3
0
void ImgEditedObjectFrame(LPIMAGE lpImage, LPOBJECT lpObject, int iDirty,
					LPRECT lpEditRect,
					LPFRAME lpDataFrame, LPFRAME lpAlphaFrame)
/***********************************************************************/
{
LPALPHA lpAlpha;
BOOL fEditedData, fEditedAlpha, fBase;

fBase = (lpObject == ImgGetBase(lpImage));
fEditedData = (lpObject->InitUndoType & UT_DATAUNDO) != 0;
fEditedAlpha = (lpObject->InitUndoType & UT_ALPHAUNDO) != 0;
if (lpEditRect)
	OffsetRect(lpEditRect, -lpObject->rObject.left, -lpObject->rObject.top);
lpAlpha = lpObject->lpAlpha;
if (fEditedData)
	{
	lpObject->fChanged = YES;
	if (!Control.NoUndo && !lpObject->fUndoFailed)
		lpObject->DataDirty = iDirty;
	if (lpDataFrame)
		{
		PixmapNewFrame(&lpObject->Pixmap, lpDataFrame, lpEditRect, Control.UseApply);
		if (lpObject == ImgGetBase(lpImage))
			{
			lpImage->npix = FrameXSize(lpDataFrame);
			lpImage->nlin = FrameYSize(lpDataFrame);
			}
		}
	}
if (fEditedAlpha)
	{
	if (lpObject != ImgGetBase(lpImage))
		lpObject->fChanged = YES;
	if (!Control.NoUndo && (!fBase || Control.UndoMasks) &&
		!lpObject->fUndoFailed)
		lpObject->AlphaDirty = iDirty;
	if (lpAlpha && lpAlphaFrame)
		PixmapNewFrame(&lpAlpha->Pixmap, lpAlphaFrame, lpEditRect, Control.UseApply);
	}
if (!Control.NoUndo && !lpObject->fUndoFailed && !lpObject->fBothDirty)
	lpObject->fBothDirty = fEditedData && fEditedAlpha;
if (lpEditRect)
	OffsetRect(lpEditRect, lpObject->rObject.left, lpObject->rObject.top);
}