[Gambas-user] TextEdit could do with RichTextPos

Bruce Steers bsteers4 at gmail.com
Thu Jun 16 16:17:17 CEST 2022


My GetRTPos() function is flawed :(
have tried many a thing but cannot seem to perfect it :'(

It seems to work unless the cursor is at the end of a line.

I have attached a WIP richtext editor i have started.
the function GetRTPos() is in the _TextEdit_Styles.class

If anyone feels they could improve on what i am doing here please feel free
(especially Ben ;) )

my objective is to be able to detect attributes to richtext text from the
standard text cursor position.
the GetRTPos() function gives the richtext position relative to the text
position by skipping any html code apart from <br> and incrementing a char
position pointer when reading a standard character.

the Detect() function then backsteps from richtext position to find the
<span style=..> code (using defaults if it finds </span> before <span>)

Something like this is sorely needed with TextEdit Ben.
the control is more like a richtext "writer" than an "editor" when it comes
to coding. writing html code to the control is easy enough but there is no
easy way to get attribs.

Just a way to accurately (more than me) get the Richtext position relative
to text position would open the doors for some of my sketchy code to detect
attribs at pos.
but if you think you could easily enough implement somethinjg like this I
think it would greatly enhance the control.

Respects
BruceS


On Thu, 16 Jun 2022 at 08:56, Bruce Steers <bsteers4 at gmail.com> wrote:

>
>
> On Wed, 15 Jun 2022 at 12:35, Bruce Steers <bsteers4 at gmail.com> wrote:
>
>> Been playing with Textedit from qt5.ext trying to make a simple RichText
>> editor.
>>
>> It would be REALLY useful if there was a way to get the cursor position
>> relevant to the RichText property too.
>>
>> Ie..
>> If i set my RichText to *"<font color=red>This message is red</font>" *and
>> i position the cursor on the m of the word message
>> then Pos is 5 and TextEdit1.Text is just "This message is red"
>>
>> But the RichText property will now be this...
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "
>> http://www.w3.org/TR/REC-html40/strict.dtd">
>> <html><head><meta name="qrichtext" content="1" /><meta
>> http-equiv="Content-Type" content="text/html; charset=utf-8" /><style
>> type="text/css">
>> p, li { white-space: pre-wrap; }
>> </style></head><body style=" font-family:'Ubuntu'; font-size:12pt;
>> font-weight:400; font-style:normal;">
>> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
>> margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style="
>> color:#008000;">This message is green</span></p></body></html>
>>
>> And the cursor Pos there is not 5 it is 529
>>
>> If i want to do anything fancy with modifying the Richtext or detecting
>> styles/colors at cursor pos having a way to get a Richtext position
>> relative to the cursor would be very useful.
>>
>> Or having a way to get some info about the text at cursor Ie.
>> TextEdit1.GetAttribs(Pos) could get info like font/size/color/etc
>> I feel i could write it myself but not without finding where the cursor
>> is in the Richtext.
>>
>> Or is this all just not possible?
>> Respects
>> BruceS
>>
>
> If anyone wants the same thing I wrote this function...
>
>
> *'' Get the position of the TextEdit.RichText from TextEdit.Pos*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *Public Sub GetRTPos(Editor As TextEdit, Optional Pos As Integer) As
> Integer  If Not Pos Then Pos = Editor.Pos  If Not Editor.RichText Then
> Editor.RichText = Editor.Text  Dim sRT As String = Editor.RichText  sRT =
> Replace(sRT, ">", ">")  sRT = Replace(sRT, "<", "<")  Dim sRTLines As
> String[] = Split(sRT, "\n")  Dim iPos As Integer = 1  Dim iLPos As Integer
> Dim iChars As Integer  Dim sChar As String  Dim bInside As Boolean  iPos =
> Len(sRTLines[0]) + Len(sRTLines[1]) + Len(sRTLines[2]) + Len(sRTLines[3]) +
> 3  For cLine As Integer = 4 To sRTLines.Max    Inc iPos ' newline char
> sRT = sRTLines[cLine]    iLPos = 1    While iLPos < sRT.Len      sChar =
> Mid(sRT, iLPos, 1)      Select sChar        Case "<"          bInside =
> True          If Mid(sRT, iLPos, 6) = "<br />" Then Inc iChars        Case
> ">"          bInside = False      End Select      If Not bInside And If
> sChar <> ">" Then Inc iChars      If iChars = Pos + 1 Then Return iPos
> Inc iPos      Inc iLPos    Wend  Next  Return -1End*
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20220616/01e93f66/attachment-0001.htm>
-------------- next part --------------
<salt FCKGM-0001-3E30-2677-7422>
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
8i+V/wVFoexlAKAAAA==
</salt>


More information about the User mailing list