[quote=“X-Ryl669”]Well choosing a compile time option means that for the vast majority of US developper, who still work in ASCII 7-bit , with no knowledge of TRANS whatsoever, still using “cout << untranslatableSentence << variableHardcoded << anotherPartOfTheEnglishSentence”, the overhead of FreeType + Harfbuzz + Fribidi (or equivalent) would be avoided.
For any other one, that’s ok to set up the compile time option, and like you’re saying, select it with a LookAndFeel.
IMHO, the glyph positionning shouldn’t be part of a look and feel of an application (semantically), but I’m probably over-pedantic here.[/quote]
That’s not what I’m saying at all. What I am suggesting is that out-of-the-box, Juce will provide a TypeLayout that supports traditional Western scripts (or whatever you call it).
If you want right to left, or any other kind of layout, you would need to do the following:
- Download a separate source package that implements a subclass of TypeLayout
- Download the dependencies of this separate library (for example, it might require FreeType or Harfbuzz)
- Create a subclass of LookAndFeel in your application and set it as the default
- In the LookAndFeel subclass, override some member “ReferenceCountedObjectPtr LookAndFeel::getTypeLayout()” to return an instance of the TypeLayout subclass that implements the new script.
- Current Juce users are completely unaffected
- Jules doesn’t have to maintain the custom TypeLayout
- multiple TypeLayout objects can exist at runtime within the same application
- No forking of code paths from a compile-time macro, everyone executes the same code (at the top level).