diff options
author | Didier Raboud <odyx@debian.org> | 2018-03-31 20:38:19 +0200 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2018-03-31 20:38:19 +0200 |
commit | f05798f0619384fdb055f634ca4233378f2779dd (patch) | |
tree | b1f9b212f77580c824cc765ac3778fc6c8f4d4d8 /Contrib/nsDialogs/rtl.c | |
parent | 59c41c0897494001ced424157660d4ee59bb5426 (diff) |
Import Upstream version 2.32
Diffstat (limited to 'Contrib/nsDialogs/rtl.c')
-rwxr-xr-x | Contrib/nsDialogs/rtl.c | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/Contrib/nsDialogs/rtl.c b/Contrib/nsDialogs/rtl.c index e68ba32..8850c55 100755 --- a/Contrib/nsDialogs/rtl.c +++ b/Contrib/nsDialogs/rtl.c @@ -1,95 +1,95 @@ -#include <windows.h>
-#include <commctrl.h>
-
-#include "defs.h"
-#include "nsis.h"
-
-#ifndef WS_EX_RIGHT
-# define WS_EX_RIGHT 0x1000
-#endif
-
-#ifndef WS_EX_RTLREADING
-# define WS_EX_RTLREADING 0x2000
-#endif
-
-#ifndef WS_EX_LEFTSCROLLBAR
-# define WS_EX_LEFTSCROLLBAR 0x4000
-#endif
-
-#ifndef TVS_RTLREADING
-# define TVS_RTLREADING 64
-#endif
-
-extern struct nsDialog g_dialog;
-
-void __declspec(dllexport) SetRTL(HWND hwndParent, int string_size, char *variables, stack_t **stacktop, extra_parameters *extra)
-{
- g_dialog.rtl = (BOOL) popint();
-}
-
-void NSDFUNC ConvertStyleToRTL(enum nsControlType type, LPDWORD style, LPDWORD exStyle)
-{
- if (!g_dialog.rtl)
- return;
-
- switch (type)
- {
- case NSCTL_BUTTON:
- *style ^= BS_LEFTTEXT | BS_RIGHT | BS_LEFT;
-
- if ((*style & (BS_LEFT|BS_RIGHT)) == (BS_LEFT|BS_RIGHT))
- {
- *style ^= BS_LEFT | BS_RIGHT;
- if (*style & (BS_RADIOBUTTON | BS_CHECKBOX | BS_USERBUTTON))
- {
- *style |= BS_RIGHT;
- }
- }
- break;
-
- case NSCTL_EDIT:
- if ((*style & ES_CENTER) == 0)
- {
- *style ^= ES_RIGHT;
- }
- break;
-
- case NSCTL_STATIC:
- if ((*style & SS_TYPEMASK) == SS_LEFT || (*style & SS_TYPEMASK) == SS_LEFTNOWORDWRAP)
- {
- *style &= ~SS_TYPEMASK;
- *style |= SS_RIGHT;
- }
- else if ((*style & SS_TYPEMASK) == SS_ICON) {
- *style |= SS_CENTERIMAGE;
- }
- break;
-
- case NSCTL_RICHEDIT:
- case NSCTL_RICHEDIT2:
- if ((*style & ES_CENTER) == 0)
- {
- *style ^= ES_RIGHT;
- }
- break;
-
- case NSCTL_TREE:
- *style |= TVS_RTLREADING;
- *exStyle |= WS_EX_RIGHT;
- break;
-
- default:
- *exStyle |= WS_EX_RIGHT;
- break;
- }
-
- *exStyle |= WS_EX_RTLREADING | WS_EX_LEFTSCROLLBAR;
-}
-
-void NSDFUNC ConvertPosToRTL(int *x, int width, int dialogWidth)
-{
- if (!g_dialog.rtl)
- return;
-
- *x = dialogWidth - width - *x;
-}
+#include <windows.h> +#include <commctrl.h> + +#include "defs.h" +#include "nsis.h" + +#ifndef WS_EX_RIGHT +# define WS_EX_RIGHT 0x1000 +#endif + +#ifndef WS_EX_RTLREADING +# define WS_EX_RTLREADING 0x2000 +#endif + +#ifndef WS_EX_LEFTSCROLLBAR +# define WS_EX_LEFTSCROLLBAR 0x4000 +#endif + +#ifndef TVS_RTLREADING +# define TVS_RTLREADING 64 +#endif + +extern struct nsDialog g_dialog; + +void __declspec(dllexport) SetRTL(HWND hwndParent, int string_size, char *variables, stack_t **stacktop, extra_parameters *extra) +{ + g_dialog.rtl = (BOOL) popint(); +} + +void NSDFUNC ConvertStyleToRTL(enum nsControlType type, LPDWORD style, LPDWORD exStyle) +{ + if (!g_dialog.rtl) + return; + + switch (type) + { + case NSCTL_BUTTON: + *style ^= BS_LEFTTEXT | BS_RIGHT | BS_LEFT; + + if ((*style & (BS_LEFT|BS_RIGHT)) == (BS_LEFT|BS_RIGHT)) + { + *style ^= BS_LEFT | BS_RIGHT; + if (*style & (BS_RADIOBUTTON | BS_CHECKBOX | BS_USERBUTTON)) + { + *style |= BS_RIGHT; + } + } + break; + + case NSCTL_EDIT: + if ((*style & ES_CENTER) == 0) + { + *style ^= ES_RIGHT; + } + break; + + case NSCTL_STATIC: + if ((*style & SS_TYPEMASK) == SS_LEFT || (*style & SS_TYPEMASK) == SS_LEFTNOWORDWRAP) + { + *style &= ~SS_TYPEMASK; + *style |= SS_RIGHT; + } + else if ((*style & SS_TYPEMASK) == SS_ICON) { + *style |= SS_CENTERIMAGE; + } + break; + + case NSCTL_RICHEDIT: + case NSCTL_RICHEDIT2: + if ((*style & ES_CENTER) == 0) + { + *style ^= ES_RIGHT; + } + break; + + case NSCTL_TREE: + *style |= TVS_RTLREADING; + *exStyle |= WS_EX_RIGHT; + break; + + default: + *exStyle |= WS_EX_RIGHT; + break; + } + + *exStyle |= WS_EX_RTLREADING | WS_EX_LEFTSCROLLBAR; +} + +void NSDFUNC ConvertPosToRTL(int *x, int width, int dialogWidth) +{ + if (!g_dialog.rtl) + return; + + *x = dialogWidth - width - *x; +} |