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: case NSCTL_TREE:
*style |= TVS_RTLREADING; *style |= TVS_RTLREADING;
*exStyle |= WS_EX_RIGHT; *exStyle |= WS_EX_RIGHT | WS_EX_LAYOUTRTL;
break; break;
default: default:

View file

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