Move data between ListBoxes: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Reverted edits by 91.205.173.51 to last version by Anders) |
m (Protected "Move data between ListBoxes" ([edit=autoconfirmed] (expires 17:59, 26 October 2011 (UTC)) [move=autoconfirmed] (expires 17:59, 26 October 2011 (UTC)))) |
Latest revision as of 17:59, 26 October 2010
Author: Jan (talk, contrib) |
Description
A custom page using nsDialogs to move (or copy) data between controls, in this case two listboxes
Function
OutFile listboxes.exe ;Includes !include nsDialogs.nsh !include LogicLib.nsh ;Definitions !define MOVE_BUTTONS !define COPY_BUTTONS ;Variables Var Dialog Var ListBox_left Var ListBox_right !ifdef MOVE_BUTTONS Var Button_MoveRight Var Button_MoveLeft !endif ;MOVE_BUTTONS !ifdef COPY_BUTTONS Var Button_CopyRight Var Button_CopyLeft !endif ;COPY_BUTTONS ;Pages Page custom nsDialogsPage Page InstFiles ;Functions Function nsDialogsPage nsDialogs::Create /NOUNLOAD 1018 Pop $Dialog ${If} $Dialog == error Abort ${EndIf} ${NSD_CreateListBox} 0 5% 33% 90% " " Pop $ListBox_left ;dummy data ${NSD_LB_AddString} $ListBox_left "111" ${NSD_LB_AddString} $ListBox_left "222" ${NSD_LB_AddString} $ListBox_left "333" ${NSD_CreateListBox} 66% 5% 33% 90% " " Pop $ListBox_right ;more dummy data ${NSD_LB_AddString} $ListBox_right "AAA" ${NSD_LB_AddString} $ListBox_right "BBB" ${NSD_LB_AddString} $ListBox_right "CCC" !ifdef MOVE_BUTTONS ${NSD_CreateButton} 50% 40% 10% 20 "->" Pop $Button_MoveRight GetFunctionAddress $0 OnClick_MoveRight ${NSD_OnClick} $Button_MoveRight OnClick_MoveRight ${NSD_CreateButton} 40% 40% 10% 20 "<-" Pop $Button_MoveLeft GetFunctionAddress $0 OnClick_MoveLeft ${NSD_OnClick} $Button_MoveLeft OnClick_MoveLeft !endif ;MOVE_BUTTONS !ifdef COPY_BUTTONS ${NSD_CreateButton} 50% 50% 10% 20 ">>" Pop $Button_CopyRight GetFunctionAddress $0 OnClick_CopyRight ${NSD_OnClick} $Button_CopyRight OnClick_CopyRight ${NSD_CreateButton} 40% 50% 10% 20 "<<" Pop $Button_CopyLeft GetFunctionAddress $0 OnClick_CopyLeft ${NSD_OnClick} $Button_CopyLeft OnClick_CopyLeft !endif ;COPY_BUTTONS nsDialogs::Show FunctionEnd !ifdef MOVE_BUTTONS Function OnClick_MoveRight Pop $R0 SendMessage $ListBox_left ${LB_GETCURSEL} 0 0 $0 ${If} $0 >= 0 System::Call user32::SendMessage(i$ListBox_left,i${LB_GETTEXT},i$0,t.r1) ${NSD_LB_AddString} $ListBox_right "$1" SendMessage $ListBox_left ${LB_DELETESTRING} $0 `STR:$1` ${EndIf} FunctionEnd Function OnClick_MoveLeft Pop $R0 SendMessage $ListBox_right ${LB_GETCURSEL} 0 0 $0 ${If} $0 >= 0 System::Call user32::SendMessage(i$ListBox_right,i${LB_GETTEXT},i$0,t.r1) ${NSD_LB_AddString} $ListBox_left "$1" SendMessage $ListBox_right ${LB_DELETESTRING} $0 `STR:$1` ${EndIf} FunctionEnd !endif ;MOVE_BUTTONS !ifdef COPY_BUTTONS Function OnClick_CopyRight Pop $R0 SendMessage $ListBox_left ${LB_GETCURSEL} 0 0 $0 ${If} $0 >= 0 System::Call user32::SendMessage(i$ListBox_left,i${LB_GETTEXT},i$0,t.r1) ${NSD_LB_AddString} $ListBox_right "$1" ${EndIf} FunctionEnd Function OnClick_CopyLeft Pop $R0 SendMessage $ListBox_right ${LB_GETCURSEL} 0 0 $0 ${If} $0 >= 0 System::Call user32::SendMessage(i$ListBox_right,i${LB_GETTEXT},i$0,t.r1) ${NSD_LB_AddString} $ListBox_left "$1" ${EndIf} FunctionEnd !endif ;COPY_BUTTONS ;Section Section Quit SectionEnd