Find Scroll position of a chunk within a line that is wrapped
Michael Doub
mikedoub at gmail.com
Tue Nov 18 15:54:34 EST 2014
My wishful thinking hearing about a new lead got me over excited. I
still have not found a way to make it work without looking at every
character and simulating the word wrap myself... yuck!
Consider we have the following in a field 1 and pretend the line breaks
you see are really the soft wrap points of a single line 1, and we are
trying to get the scroll point for where char 12 is the first visible
line: (remember the soft wrap occurs on a whitespace characters)
1234 6789
123456 890
234
* the formattedheight of line 1 of fld 1 get us the total height of
the line
* item 4 of the formattedrect of line 1 of fld 1 - item 2 of the
formattedrect of line 1 of fld 1 also gives us the total height
* item 4 of the formattedrect of char 1 to 12 of fld 1 - item 2 of the
formattedrect of char 1 to 12 of fld 1 gives us the height from the
top of the first soft line to the bottom of the second soft line.
Unfortunately we need the TOP of the second soft line.
* if we use the trick of selecting the last line and then selecting
the current line, vScroll - the height of the line will give is the
height of the last soft line 123. Close but no cigar.
Any other suggestions?
I would like to see a new feature where we provide a line number in a
field and we get a list of start and end character of each soft line
something like: get linedetails of line 1 of fld 1 would return:
1,10
10,21
22,24 -- remember the soft wrap occurs on a whitespace character
the number of lines it would tell us the number of soft lines
the number of words in char 1 to 10 of fld 1 tells us the number of
words in the first soft line.
the formattedrect of char 10 to 21 of fld 1 tells us the height of the
second soft line.
This is the most flexible solution I could come up with. Other solution
welcome. ;-)
Regards,
Mike
On 11/18/14 2:38 PM, Michael Doub wrote:
> I think that you are correct! That was the lead that I was missing.
>
> Thanks!
> Mike
>
> On 11/18/14 2:04 PM, Scott Rossi wrote:
>> If I understand what you¹re asking, I believe you can use the
>> formattedRect for this.
>>
>> Regards,
>>
>> Scott Rossi
>> Creative Director
>> Tactile Media, UX/UI Design
>>
>>
>>
>>
>> On 11/18/14, 10:23 AM, "Michael Doub" <mikedoub at gmail.com> wrote:
>>
>>> A related question to positioning a line within a field, is positioning
>>> a chunk within a line that is wrapped. I am stumped on this one
>>> and it
>>> may need engine support. I don't know how to figure out the scroll
>>> value of something in the middle of a wrapped line. In the thread
>>> discussing scroll positioning within a wrapped field we see how to find
>>> the top. I figured out how to get the bottom using James Hales
>>> approach. (code in the forum and MasterLibrary)
>>>
>>> Does anyone see a way to calculate the scroll position of a chunk
>>> within
>>> a line that is wrapped?
>>>
>>> Regards
>>> Mike
>>>
>>>
>>>
>>> On 11/18/14 1:01 PM, Richard Gaskin wrote:
>>>> Michael Doub wrote:
>>>>
>>>>> I don't think the solution works because of a bug in livecode where
>>>>> spacebefore and spaceafter are not taken into account.
>>>> Thanks - I wasn't aware of that bug, but was able to find it:
>>>> <http://quality.runrev.com/show_bug.cgi?id=11688>
>>>>
>>>> Hopefully it'll get addressed for 6.7.1 and 7.0.1, since it's needed
>>>> for a wide range of tasks relating to text metrics.
>>>>
>>>
>>> _______________________________________________
>>> 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
>>
>
More information about the use-livecode
mailing list