[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [platform-swt-dev] SWT Styledtext word wrap
|
Am 05.09.2012 10:56, schrieb Marek Jasovsky:
thanks for great news. bit confusing, but otherwise undestandable.
so, what's then most quickest way, to make one Line (let's stick with
styledtext terminology) non editable?
catch events and in case, where I am in a line, which is not editable, I
just don't allow that event? or now?
Yes, that is what I do.
btw, it can happen, that I will need such behavior also on line-level.,
means, if I have text like:
this is my [t1: translation] of <ref>name of book</ref> from <ctrl> texts...
<ctrl> should be handled as one unit... I only can delete whole piece
(if allowed...), same with [t1: ... ]
all this are tags, I have to have in the text, and they then have effect
on what I can/must do with the text
This is where it gets complicated and you may not be able to achieve
this without overwriting internal StyledText behavior. For example to
delete the whole tag word is probably easy, but to get the selection
behavior intuitive requires "filtering" the selection start and end
positions for "valid" positions. For various reaons I've made my own
copy of the org.eclipse.swt.custom package with the classes I needed to
mess with. Implementing filtering valid selection offsets is only one of
many changes, so I don't know if it may be possible with the stock
StyledText code.
One other possibility is to embed "paint objects" into the text. To see
how this works, study one of the snippets that show embedding images
into StyledText that wrap with the text. These are treated as one
character as far as the selection behavior is concerned. It should be
easy to modify the snippet such that instead of images, you embed words
that you draw yourself in the PaintObjectListener (if memory serves)
that you register with the StyledText control. But note that this stuff
cannot wrap itself. So if your tag is for example "<ref
id="someLongId">" then you can only make this wrap in one piece, since
you specify the GlyphMetrics for only one "char" and it must be the
bounding box of the entire string. If it's not clear what I mean, it
will probably become clear when you look at how the snippet reserves the
room for the image within the text.
Best regards,
-Stephan