Updating the Juce Text System


I’m trying to figure out how to properly render Arabic, Hebrew, Farsi and Hindi in a (linux) Juce application – and found this thread.

So, this project looks great – what is the status of the linux port? Would you share the code there is so far?

I’m working on the mac/win32 version of this right now… No thoughts as to linux yet, but will be easier to see what’s required when I’ve got the other platforms done.

As I said earlier, I have no plans (personally) on adding linux complex script support so this will have to be done by someone else.
There is not much point in sharing my code at this point, the functionality is close to being integrated into the juce mainline, so you are better off waiting for that.

The most straight forward way of adding linux support is by using Pango. There are other non-Pango routes you can take but it will take far longer to implement those.

ok, thanks for the info

Just an update for those who may not be paying close attention to the git changelog.
All the work I have done has now been has now been integrated into Juce by Jules.
Anyone, regardless of operating system can render multi-font, multi-color text using TextLayout.
Anyone using Mac OS X 10.5+, iOS 3.2, Windows Visa SP2 w/ Platform Update or Windows 7+ can render Complex Text as well.

For those viewing RTL scripts on Windows (Hebrew, Arabic) you will need to set the reading direction of the AttributedString to rightToLeft as DirectWrite doesn’t automatically detect the text direction of text.

It’s been a long road since I first started talking about this stuff back in April. Thanks Jules for putting this stuff in the tip.

Hopefully in the future we can render all text this way and get a unicode text editor control in as well.