From 9d1ab6f1aea7d6a66e629bd60bf3380632f62c21 Mon Sep 17 00:00:00 2001 From: kichik Date: Wed, 18 Jul 2007 16:54:04 +0000 Subject: [PATCH] added ${NSD_OnClick}, ${NSD_OnChange} and ${NSD_OnNotify} git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5207 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/nsDialogs/nsDialogs.nsh | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/Contrib/nsDialogs/nsDialogs.nsh b/Contrib/nsDialogs/nsDialogs.nsh index f3312faf..1eeeda4f 100644 --- a/Contrib/nsDialogs/nsDialogs.nsh +++ b/Contrib/nsDialogs/nsDialogs.nsh @@ -248,6 +248,31 @@ !insertmacro __NSD_DefineControl ComboBox !insertmacro __NSD_DefineControl ListBox +!macro __NSD_OnEvent EVENT HWND FUNCTION + + Push $0 + Push $1 + + StrCpy $1 "${HWND}" + + GetFunctionAddress $0 "${FUNCTION}" + nsDialogs::On${EVENT} /NOUNLOAD $1 $0 + + Pop $1 + Pop $0 + +!macroend + +!macro __NSD_DefineCallback EVENT + + !define NSD_On${EVENT} `!insertmacro __NSD_OnEvent ${EVENT}` + +!macroend + +!insertmacro __NSD_DefineCallback Click +!insertmacro __NSD_DefineCallback Change +!insertmacro __NSD_DefineCallback Notify + !define DEBUG `System::Call kernel32::OutputDebugString(ts)` !macro __NSD_ControlCase TYPE @@ -338,8 +363,7 @@ Function FileRequest WriteINIStr $0 "Field $R1" HWND2 $R8 - GetFunctionAddress $R9 OnFileBrowseButton - nsDialogs::OnClick /NOUNLOAD $R8 $R9 + ${NSD_OnClick} $R8 OnFileBrowseButton ReadINIStr $R9 $0 "Field $R1" State @@ -360,8 +384,7 @@ Function DirRequest WriteINIStr $0 "Field $R1" HWND2 $R8 - GetFunctionAddress $R9 OnDirBrowseButton - nsDialogs::OnClick /NOUNLOAD $R8 $R9 + ${NSD_OnClick} $R8 OnDirBrowseButton ReadINIStr $R9 $0 "Field $R1" State