There's also the new zoom code, which has a small chunk of code
(in each platform's frame) to handle finding the cursor position
and centering on it when the zoom is complete (so you don't
wrap back to page 1 each time you change magnification).
The Find & Replace algorithm is simple... you set the string (in the
view) and call findNext() and it does:
if (!isSelectionEmpty())
{
_clearSelection();
}
else
{
_eraseInsertionPoint();
}
UT_Bool bRes = _findNext(find, matchCase, bDoneEntireDocument);
if (isSelectionEmpty())
{
if (!_ensureThatInsertionPointIsOnScreen())
{
_fixInsertionPointCoords();
_drawInsertionPoint();
}
}
else
{
_ensureThatInsertionPointIsOnScreen();
_drawSelection();
}
Most of those functions are members of FV_View. Find them in
abi/src/text/fmt/xp/fv_View.cpp.
-- Shaw Terwilliger