fixed bug #1841573 - RTL components & instfiles page

WS_EX_LAYOUTRTL can be used for individual controls

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5387 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2007-11-30 09:54:13 +00:00
parent 80da480c7a
commit 668fe450a4
2 changed files with 11 additions and 2 deletions

View file

@ -75,7 +75,7 @@ void NSDFUNC ConvertStyleToRTL(enum nsControlType type, LPDWORD style, LPDWORD e
case NSCTL_TREE:
*style |= TVS_RTLREADING;
*exStyle |= WS_EX_RIGHT;
*exStyle |= WS_EX_RIGHT | WS_EX_LAYOUTRTL;
break;
default:

View file

@ -435,6 +435,7 @@ void CDialogTemplate::CTrimToString(WORD id, char *str, int margins) {
void CDialogTemplate::ConvertToRTL() {
for (unsigned int i = 0; i < m_vItems.size(); i++) {
bool addExStyle = false;
bool addExLeftScrollbar = true;
char *szClass;
if (IS_INTRESOURCE(m_vItems[i]->szClass))
@ -480,14 +481,22 @@ void CDialogTemplate::ConvertToRTL() {
}
else if (!IS_INTRESOURCE(m_vItems[i]->szClass) && !stricmp(szClass, "SysTreeView32")) {
m_vItems[i]->dwStyle |= TVS_RTLREADING;
m_vItems[i]->dwExtStyle |= WS_EX_LAYOUTRTL;
addExStyle = true;
addExLeftScrollbar = false;
}
else if (!IS_INTRESOURCE(m_vItems[i]->szClass) && !stricmp(szClass, "SysListView32")) {
m_vItems[i]->dwExtStyle |= WS_EX_LAYOUTRTL;
addExLeftScrollbar = false;
}
else addExStyle = true;
if (addExStyle)
m_vItems[i]->dwExtStyle |= WS_EX_RIGHT;
if (addExLeftScrollbar)
m_vItems[i]->dwExtStyle |= WS_EX_LEFTSCROLLBAR;
m_vItems[i]->dwExtStyle |= WS_EX_RTLREADING | WS_EX_LEFTSCROLLBAR;
m_vItems[i]->dwExtStyle |= WS_EX_RTLREADING;
m_vItems[i]->sX = m_sWidth - m_vItems[i]->sWidth - m_vItems[i]->sX;