Determining a scroll based on code unit offsets
J. Landman Gay
jacque at hyperactivesw.com
Fri Mar 27 17:35:19 EDT 2020
Hm. My handler fails too on larger offsets but I think it's because there are lines above it
that have spaceAbove and spaceBelow attributes, and those aren't being taken into consideration
when multiplying lines by the textheight. I think Mark's example might work if formattedHeight
adjusted for that.
On 3/27/20 4:15 PM, J. Landman Gay via use-livecode wrote:
> Oops. Not saved. It fails on larger offsets. Maybe I'm doing something wrong. Here's my longer
> way, it could likely be optimized better. It does rely on a scripted field selection, and the
> selectedChunk is passed to the handler:
>
> on grpScroll pSelChunk
> -- pSelChunk = selected field chunk: char x to y of fld z
> put the num of words in char 1 to (word 4 of pSelChunk) of fld "tText" into tNumWords
> put the formattedtext of fld "tText" into tFText
> put the num of lines in word 1 to tNumWords of tFText into tLineNum
> put tLineNum * the effective textheight of fld "tText" into tScroll
> set the vScroll of grp "tTextGrp" to tScroll
> end grpScroll
>
> Seems like there should be a better way.
>
> On 3/27/20 2:47 PM, Mark Waddingham via use-livecode wrote:
>> Maybe (the formattedHeight of codeunit 1 to OFFSET of FIELD - the formattedHeight of codeunit
>> OFFSET of FIELD)?
>>
>> Sent from my iPhone
>>
>>> On 27 Mar 2020, at 17:59, J. Landman Gay via use-livecode <use-livecode at lists.runrev.com>
>>> wrote:
>>>
>>> In our last episode, our heroine was trapped by the selection of a line containing
>>> metadata. The heroes of this group saved her. In all cases, scrolling the field was
>>> accomplished by using the "select" command to bring the line into view.
>>>
>>> Alas, escape from one danger has led to another. The field itself must be inside an
>>> enclosing group so that it will scroll smoothly on mobile. She needs to translate the data
>>> from codeunits to a scroll position in order to set the group's scroll rather than the field
>>> scroll.
>>>
>>> Each line of the data looks something like this:
>>>
>>> 1,103,7
>>>
>>> While 7 is a line number, multiplying that by the textheight doesn't give consistent results
>>> due to line wrap. The first two items are codeunit offsets but there doesn't seem to be a
>>> way to translate those into pixel positions.
>>>
>>> Our heroine is once again in distress, though as mentioned here, some of that may be due to
>>> the inability to reach the keyboard from 6 feet away, which presents its own positioning
>>> problems.
>>>
>>> --
>>> Jacqueline Landman Gay | jacque at hyperactivesw.com
>>> HyperActive Software | http://www.hyperactivesw.com
>>>
>>>
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>
>
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list