Example #1
0
void CImage::ChangeSelection(LPOBJECT lpObject, BOOL fSelect, BOOL fExtendedSel)
{
	ASSERT(lpObject != NULL);
	if (!fExtendedSel && fSelect)
    	ObjDeselectAll(&ObjList);
	ObjSelectObject((LPPRIMOBJECT)lpObject, fSelect);
	AdjustGroupSelection(fSelect);
	SetupMiniViews(NULL, YES);
}
Example #2
0
BOOL CImage::DuplicateSelObjects()
{
LPOBJECT lpDupObject;
OBJECTLIST DupList;
LPOBJECT lpObject;
RECT rUpdate;
WORD wGroupID, wOldGroupID, wLastGroupID;

if (!ImgEditInit( this, ET_OBJECT, UT_DELETEOBJECTS, GetBase() ))
    return(FALSE);

DupList.lpHead = DupList.lpTail = NULL;
lpObject = NULL;
while (lpObject = GetSelObject(lpObject))
    {
    if (!(lpDupObject = ObjDuplicateObject(lpObject)))
        {
        ObjDeleteObjects(&DupList, ST_ALL);
        return(FALSE);
        }
    ObjAddTail(&DupList, (LPPRIMOBJECT)lpDupObject);
    }
wLastGroupID = wGroupID = GetNextGroupID();
lpDupObject = NULL;
while (lpDupObject = (LPOBJECT)ObjGetNextObject(&DupList,
                    (LPPRIMOBJECT)lpDupObject, YES))
    {
    if (!lpDupObject->wGroupID || lpDupObject->wGroupID >= wLastGroupID)
        continue;
    wOldGroupID = lpDupObject->wGroupID;
    lpDupObject->wGroupID = wGroupID;
    lpObject = lpDupObject;
    while (lpObject = (LPOBJECT)ObjGetNextObject(&DupList,
                    (LPPRIMOBJECT)lpObject, YES))
        {
        if (lpObject->wGroupID == wOldGroupID)
            lpObject->wGroupID = wGroupID;
        }
    ++wGroupID;
    }

RemoveObjectMarquee(this);
ObjDeselectAll(&ObjList);
while (lpObject = (LPOBJECT)ObjGetNextObject(&DupList, NULL, YES))
    {
    ObjUnlinkObject(&DupList, (LPPRIMOBJECT)lpObject);
    ObjSelectObject( (LPPRIMOBJECT)lpObject, YES ); // Select the new object
    ObjAddTail( &ObjList, (LPPRIMOBJECT)lpObject ); // Add to the image's list
    lpObject->fUndoDeleted = YES;
    }
ImgEditedObject(this, GetBase(), IDS_UNDODUPLICATE, NULL);

GetSelObjectRect(&rUpdate, NO);
UpdateImage(this, &rUpdate, YES);
SetupMiniViews(NULL, NO);
return(TRUE);
}
Example #3
0
void CImage::AddNewObject(LPOBJECT lpObject, BOOL fSetObjRes)
{
LPOBJECT lpBase = GetBase();
lpObject->dwObjectID = ++dwObjectID;
ObjAddTail( &ObjList, (LPPRIMOBJECT)lpObject ); // Add to the image's list
ObjDeselectAll(&ObjList); // Deselect anything currently selected
ObjSelectObject( (LPPRIMOBJECT)lpObject, YES ); // Select the new object
if (lpBase)
	{
	if(fSetObjRes)
		{
		int res = FrameResolution(ObjGetEditFrame(lpBase));
		FrameSetResolution(ObjGetEditFrame(lpObject), res);
		if (lpObject->lpAlpha)
			FrameSetResolution(AlphaGetEditFrame(lpObject->lpAlpha), res);
		}
	}
}
Example #4
0
BOOL CImage::SelObject(LPOBJECT lpObject, LPRECT lpRect,
                    BOOL fExtendedSel, BOOL fExcludeBase)
{
	BOOL fSelected, fSelect;

	// deselect anything currently selected if not an extended selection
	if (!fExtendedSel)
    	ObjDeselectAll(&ObjList);

	// Try to select a new object(s)
	fSelected = SelectObjects(lpObject, lpRect, YES, NO, fExcludeBase);

	// nothing selected and not extended select mode, we're done
	if (!fSelected && !fExtendedSel)
    	return(FALSE);

	// if we couldn't select something, try to deselect something instead,
	// but only if we are in extended select mode
	if (fSelected)
    	fSelect = YES;
	else
    	{
    	fSelected = SelectObjects(lpObject, lpRect, NO, NO,
                                	fExcludeBase);
    	fSelect = NO;
    	}

	// nothing selected or deselected, we're done
	if (!fSelected)
    	return(FALSE);

	// if we are selecting/unselecting we need to make sure all
	// grouped objects have the same select/unselect state
	AdjustGroupSelection(fSelect);

	return(fSelected);
}