예제 #1
0
void ObjAddTail(LPOBJECTLIST lpObjList, LPOBJECT lpObject)
/************************************************************************/
{
    if (lpObjList->lpTail)
    {
        // link the new object in
        ObjLinkObject(lpObjList, lpObjList->lpTail, lpObject, YES);
    }
    else
    {
        lpObjList->lpHead = lpObject;
        lpObjList->lpTail = lpObject;
    }
}
예제 #2
0
void CImage::AdjustLayerObject(LPOBJECT lpObject,
                        LPOBJECT lpToObject, BOOL fAfter)
{
	LPOBJECT lpBase;

	if (!lpObject || !lpToObject)
    	return;
	if (lpObject == lpToObject)
    	return;
	lpBase = GetBase();
	if (lpObject == lpBase || lpToObject == lpBase)
    	return;
	ObjUnlinkObject(&ObjList, (LPPRIMOBJECT)lpObject);
	ObjLinkObject(&ObjList, (LPPRIMOBJECT)lpToObject,
            	(LPPRIMOBJECT)lpObject, fAfter);
	SetupMiniViews(NULL, NO);
}
예제 #3
0
void CImage::AdjustLayerSelObj(BOOL fToTop, BOOL fOneLevel)
{
	LPOBJECT lpObject, lpFirstObject, lpNext, lpBase, lpLinkObject;

	lpBase = GetBase();
	if (fToTop)
    	lpObject = GetNextObject(lpBase, YES, NO);
	else
    	lpObject = GetNextObject(NULL, NO, NO);
	if (fOneLevel)
   	{
    	while (lpObject && lpObject != lpBase)
       	{
        	// find first selected object
        	if (!lpObject->fSelected)
           	{
            	lpObject = GetNextObject(lpObject, fToTop, NO);
            	continue;
           	}
        	// got a selected object, now find next unselected object to link after
        	lpLinkObject = GetNextObject(lpObject, fToTop, NO);
        	while (lpLinkObject && lpLinkObject->fSelected)
            	lpLinkObject = GetNextObject(lpLinkObject, fToTop, NO);
        	// if no unselected objects to link before or after, nothing to do
        	if (!lpLinkObject)
            	break;
        	// can't move objects below base
        	if (lpLinkObject == lpBase && !fToTop)
            	break;
        	// now move all consecutive selected objects up/down one level
        	while (lpObject && lpObject->fSelected)
           	{
            	lpNext = GetNextObject(lpObject, fToTop, NO);
            	ObjUnlinkObject(&ObjList, (LPPRIMOBJECT)lpObject);
            	ObjLinkObject(&ObjList, (LPPRIMOBJECT)lpLinkObject,
                        	(LPPRIMOBJECT)lpObject, fToTop);
            	lpLinkObject = lpObject;
            	lpObject = lpNext;
           	}
        	lpObject = GetNextObject(lpLinkObject, fToTop, NO);
       	}
   	}
	else
   	{
        	// find first selected object
    	while (lpObject)
       	{
        	if (lpObject->fSelected)
            	break;
        	lpObject = GetNextObject(lpObject, fToTop, NO);
       	}
    	lpFirstObject = lpObject;
    	while (lpObject)
       	{
        	lpNext = GetNextObject(lpObject, fToTop, NO);
        	if (lpObject->fSelected && (lpObject != lpBase))
           	{
            	ObjUnlinkObject(&ObjList, (LPPRIMOBJECT)lpObject);
            	if (fToTop)
                	ObjLinkObject(&ObjList,
                            	(LPPRIMOBJECT)ObjList.lpTail,
                            	(LPPRIMOBJECT)lpObject, YES);
            	else
                	ObjLinkObject(&ObjList,
                            	(LPPRIMOBJECT)ObjList.lpHead,
                            	(LPPRIMOBJECT)lpObject, YES);
           	}
        	lpObject = lpNext;
        	if (lpObject == lpFirstObject)
            	break;
       	}
   	}
}