Trevor, Thanks for posting these. I've heard Jerry mention them some time ago. I'll be sure and add them to my Groups management library.
-Chipp On 10/16/07, Trevor DeVore <[EMAIL PROTECTED]> wrote: > On Oct 16, 2007, at 4:13 PM, Andre Garzia wrote: > > > its me again, I am very verbose today. I have a big group whose > > rect is set > > to a small area of the stack. I can use the scrollbars that rev > > automatically adds to it to scroll the group. Now, if I want to > > code my way > > to scroll the group, how should I proceed? I have a find function > > that finds > > the correct group element that should be displayed, I want to > > scroll so this > > element becomes visible... > > Andre, > > Here are some general purpose handlers I use to scroll coordinates/ > rects into view whether in fields or groups. The handler names should > be self-explanatory. > > Hope this helps. > > -- > Trevor DeVore > Blue Mango Learning Systems > www.bluemangolearning.com - www.screensteps.com > > > > > --> HScroll/Vscroll > > > command scrollRectVerticallyIntoViewIfOffScreen pControl, pRect, pBuffer > put the rect of pControl into theMaskRect > > if pBuffer is not an integer then put 0 into pBuffer > > if item 4 of pRect > item 2 of theMaskRect and item 2 of pRect < > item 2 of theMaskRect then > ## top is clipped off > scrollYCoordinateToTopOfControl pControl, item 2 of pRect + > the vscroll of pControl - item 2 of theMaskRect + pBuffer > else if item 2 of pRect < item 4 of theMaskRect and item 4 of > pRect > item 4 of theMaskRect then > ## bottom is clipped off > scrollYCoordinateToBottomOfControl pControl, item 4 of pRect > + the vscroll of pControl - item 2 of theMaskRect - pBuffer > else if item 2 of pRect >= item 4 of theMaskRect or item 4 of > pRect <= item 2 of theMaskRect then > ## entire rect is clipped off > if item 2 of pRect >= item 4 of theMaskRect then > scrollYCoordinateToBottomOfControl pControl, item 4 of > pRect + the vscroll of pControl - item 2 of theMaskRect - pBuffer > else > scrollYCoordinateToTopOfControl pControl, item 2 of > pRect + the vscroll of pControl - item 2 of theMaskRect + pBuffer > end if > end if > end scrollRectVerticallyIntoViewIfOffScreen > > > command scrollRectHorizontallyIntoViewIfOffScreen pControl, pRect, > pBuffer > put the rect of pControl into theMaskRect > > if pBuffer is not an integer then put 0 into pBuffer > > if item 3 of pRect > item 1 of theMaskRect and item 1 of pRect < > item 1 of theMaskRect then > ## left is clipped off > scrollXCoordinateToLeftOfControl pControl, item 1 of pRect + > the hscroll of pControl - item 1 of theMaskRect + pBuffer > else if item 1 of pRect < item 3 of theMaskRect and item 3 of > pRect > item 3 of theMaskRect then > ## right is clipped off > scrollXCoordinateToRightOfControl pControl, item 3 of pRect > + the hscroll of pControl - item 1 of theMaskRect - pBuffer > else if item 1 of pRect >= item 3 of theMaskRect or item 3 of > pRect <= item 1 of theMaskRect then > ## entire rect is clipped off > if item 1 of pRect >= item 3 of theMaskRect then > scrollXCoordinateToRightOfControl pControl, item 3 of > pRect + the hscroll of pControl - item 1 of theMaskRect - pBuffer > else > scrollXCoordinateToLeftOfControl pControl, item 1 of > pRect + the hscroll of pControl - item 1 of theMaskRect + pBuffer > end if > end if > end scrollRectHorizontallyIntoViewIfOffScreen > > > command scrollCoordinateToCenterOfControl pControl, pCoordinate > lock screen > scrollXCoordinateToCenterOfControl pControl, item 1 of pCoordinate > scrollYCoordinateToCenterOfControl pControl, item 2 of pCoordinate > unlock screen > end scrollCoordinateToCenterOfControl > > > --> HSCroll > > command scrollXCoordinateToCenterOfControl pControl, pXCordinate > set the hscroll of pControl to hscrollToPutXCoordinateInCenter > (pControl, pXCordinate) > end scrollXCoordinateToCenterOfControl > > > command scrollXCoordinateToLeftOfControl pControl, pXCordinate > set the hscroll of pControl to hscrollToPutXCoordinateAtLeft > (pControl, pXCordinate) > end scrollXCoordinateToLeftOfControl > > > command scrollXCoordinateToRightOfControl pControl, pXCordinate > set the hscroll of pControl to hscrollToPutXCoordinateAtRight > (pControl, pXCordinate) > end scrollXCoordinateToRightOfControl > > > function hscrollToPutXCoordinateInCenter pControl, pXCoordinate > put the width of pControl into theMaskWidth > put the formattedwidth of pControl into theMaxWidth > return max(0, min(pXCoordinate + round(theMaskWidth / 2) - > theMaskWidth, theMaxWidth)) > end hscrollToPutXCoordinateInCenter > > > function hscrollToPutXCoordinateAtLeft pControl, pXCoordinate > put the formattedwidth of pControl into theMaxWidth > return max(0, min(pXCoordinate, theMaxWidth)) > end hscrollToPutXCoordinateAtLeft > > > function hscrollToPutXCoordinateAtRight pControl, pXCoordinate > put the width of pControl into theMaskWidth > put the formattedwidth of pControl into theMaxWidth > return max(0, min(pXCoordinate - theMaskWidth, theMaxWidth)) > end hscrollToPutXCoordinateAtRight > > > --> VScroll > > command scrollYCoordinateToCenterOfControl pControl, pYCoordinate > set the vscroll of pControl to vscrollToPutYCoordinateInCenter > (pControl, pYCoordinate) > end scrollYCoordinateToCenterOfControl > > > command scrollYCoordinateToTopOfControl pControl, pYCoordinate > set the vscroll of pControl to vscrollToPutYCoordinateAtTop > (pControl, pYCoordinate) > end scrollYCoordinateToTopOfControl > > > command scrollYCoordinateToBottomOfControl pControl, pYCoordinate > set the vscroll of pControl to vscrollToPutYCoordinateAtBottom > (pControl, pYCoordinate) > end scrollYCoordinateToBottomOfControl > > > function vscrollToPutYCoordinateInCenter pControl, pYCoordinate > put the height of pControl into theMaskHeight > put the formattedheight of pControl into theMaxHeight > return max(0, min(pYCoordinate + round(theMaskHeight / 2) - > theMaskHeight, theMaxHeight)) > end vscrollToPutYCoordinateInCenter > > > function vscrollToPutYCoordinateAtTop pControl, pYCoordinate > put the formattedheight of pControl into theMaxHeight > return max(0, min(pYCoordinate, theMaxHeight)) > end vscrollToPutYCoordinateAtTop > > > function vscrollToPutYCoordinateAtBottom pControl, pYCoordinate > put the height of pControl into theMaskHeight > put the formattedheight of pControl into theMaxHeight > return max(0, min(pYCoordinate - theMaskHeight, theMaxHeight)) > end vscrollToPutYCoordinateAtBottom > _______________________________________________ > use-revolution mailing list > [email protected] > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > > _______________________________________________ use-revolution mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
