From bbebb7cef4b946dd94bb46333d7356e131e001dc Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 15 Aug 2008 17:07:14 +0000 Subject: [PATCH] applied patch #2041919 - nsDialogs: controls for listboxes git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5695 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/nsDialogs/Readme.html | 28 ++++++++++++++++++++++++++ Contrib/nsDialogs/nsDialogs.nsh | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/Contrib/nsDialogs/Readme.html b/Contrib/nsDialogs/Readme.html index a41a3f12..5a86af16 100644 --- a/Contrib/nsDialogs/Readme.html +++ b/Contrib/nsDialogs/Readme.html @@ -75,7 +75,11 @@ code
  • NSD_CB_AddString
  • NSD_CB_SelectString
  • NSD_LB_AddString
  • +
  • NSD_LB_DelString
  • +
  • NSD_LB_Clear
  • +
  • NSD_LB_GetCount
  • NSD_LB_SelectString
  • +
  • NSD_LB_GetSelection
  • NSD_SetFocus
  • NSD_SetImage
  • NSD_SetStretchedImage
  • @@ -727,12 +731,36 @@ SectionEnd

    Adds a string to a list box.

    +

    NSD_LB_DelString

    + +

    ${NSD_LB_DelString} combo_HWND string

    + +

    Deletes a string from a list box.

    + +

    NSD_LB_Clear

    + +

    ${NSD_LB_Clear} combo_HWND

    + +

    Deletes all strings from a list box.

    + +

    NSD_LB_GetCount

    + +

    ${NSD_LB_GetCount} combo_HWND output_variable

    + +

    Retrieves the number of strings from a list box.

    +

    NSD_LB_SelectString

    ${NSD_LB_SelectString} combo_HWND string

    Selects a string in a list box.

    +

    NSD_LB_GetSelection

    + +

    ${NSD_LB_GetSelection} combo_HWND output_variable

    + +

    Retrieves the selected stringed from a list box. Returns an empty string if no string is selected.

    +

    NSD_SetFocus

    ${NSD_SetFocus} control_HWND

    diff --git a/Contrib/nsDialogs/nsDialogs.nsh b/Contrib/nsDialogs/nsDialogs.nsh index 99028659..62315e87 100644 --- a/Contrib/nsDialogs/nsDialogs.nsh +++ b/Contrib/nsDialogs/nsDialogs.nsh @@ -436,6 +436,30 @@ Header file for creating custom installer pages with nsDialogs !define NSD_LB_AddString "!insertmacro _NSD_LB_AddString" +!macro __NSD_LB_DelString CONTROL STRING + + SendMessage ${CONTROL} ${LB_DELETESTRING} 0 `STR:${STRING}` + +!macroend + +!define NSD_LB_DelString `!insertmacro __NSD_LB_DelString` + +!macro __NSD_LB_Clear CONTROL VAR + + SendMessage ${CONTROL} ${LB_RESETCONTENT} 0 0 ${VAR} + +!macroend + +!define NSD_LB_Clear `!insertmacro __NSD_LB_Clear` + +!macro __NSD_LB_GetCount CONTROL VAR + + SendMessage ${CONTROL} ${LB_GETCOUNT} 0 0 ${VAR} + +!macroend + +!define NSD_LB_GetCount `!insertmacro __NSD_LB_GetCount` + !macro _NSD_LB_SelectString CONTROL STRING SendMessage ${CONTROL} ${LB_SELECTSTRING} -1 `STR:${STRING}` @@ -444,6 +468,17 @@ Header file for creating custom installer pages with nsDialogs !define NSD_LB_SelectString "!insertmacro _NSD_LB_SelectString" +!macro __NSD_LB_GetSelection CONTROL VAR + + SendMessage ${CONTROL} ${LB_GETCURSEL} 0 0 ${VAR} + System::Call 'user32::SendMessage(i ${CONTROL}, i ${LB_GETTEXT}, i ${VAR}, t .s)' + Pop ${VAR} + +!macroend + +!define NSD_LB_GetSelection `!insertmacro __NSD_LB_GetSelection` + + !macro __NSD_SetImage CONTROL IMAGE HANDLE Push $0