Archive: Io & Rtl


Io & Rtl
I noticed that when the RTL flag is specified in InstallOptions, the controls and their text is right-justified propertly, however the vertical scrollbar is still to the right as it is for LTR settings.
AFAIK, RTL GUIs have the vertical scrollbar to the left.
Looking at the InstallOptions.cpp code, I see that even though WS_EX_RIGHT and WS_EX_RTLREADING flags are specified for RTL dialogs, the WS_EX_LAYOUTRTL and WS_EX_LEFTSCROLLBAR flags are omitted.
Is my understanding correct that these flags should be, in fact, included when creating RTL controls?


WS_EX_LAYOUTRTL is only available on very specific versions of Windows. This is why it's emulated by moving the dialog items to the right and the styles. WS_EX_LEFTSCROLLBAR is indeed missing. Please submit a bug report or a feature request, however you want to look at it, and I'll try to get to it before 2.10.


AFAIK, Windows 95 is the only Windows platform which does not support WS_EX_LAYOUTRTL, so I suppose as long as NSIS supports it, we cannot use this flag.
I will file a bug report regarding WS_EX_LEFTSCROLLBAR.

p.s. Would it be possible to use WS_EX_LAYOUTRTL on Win 98 and above and only use the workaround on Win 95?

p.p.s. I could update the code to add the WS_EX_LEFTSCROLLBAR flag to InstallOptions.cpp if you wish.


Accorinding to MSDN WS_EX_LAYOUTRTL is only available on Arabic and Hebrew versions of Windows 98/Me and Windows 2000/XP, so it's more than just Windows 95.

If you submit a complete patch, it'll be fixed earlier.


OK- I will submit a patch for WS_EX_LEFTSCROLLBAR.