aboutsummaryrefslogtreecommitdiff
path: root/Src/installer/winamp/pages/waui_startmenu.nsh
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/installer/winamp/pages/waui_startmenu.nsh
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/installer/winamp/pages/waui_startmenu.nsh')
-rw-r--r--Src/installer/winamp/pages/waui_startmenu.nsh178
1 files changed, 178 insertions, 0 deletions
diff --git a/Src/installer/winamp/pages/waui_startmenu.nsh b/Src/installer/winamp/pages/waui_startmenu.nsh
new file mode 100644
index 00000000..2a54f5b8
--- /dev/null
+++ b/Src/installer/winamp/pages/waui_startmenu.nsh
@@ -0,0 +1,178 @@
+!ifndef WAUI_STARTMENU_HEADER
+!define WAUI_STARTMENU_HEADER
+
+!include ".\wordFunc.nsh"
+!include ".\utils\wafuncs.nsh"
+!include ".\express_mode.nsh"
+
+var waui.startmenu.text.start
+var waui.startmenu.chk.start
+var waui.startmenu.chk.quicklaunch
+var waui.startmenu.chk.desktop
+
+Function nsPageWAStartMenu_Create
+
+!ifdef STARTMENUPAGE_CHECK_NEXT_BUTTON
+ Push $0
+ ${ExpressMode_IsEnabled} $0
+ ${If} $0 == "yes"
+ Pop $0
+ Abort
+ ${EndIf}
+ Pop $0
+!endif
+
+ SetPluginUnload alwaysoff
+ !insertmacro MUI_HEADER_TEXT $(IDS_PAGE_STARTMENU_TITLE) $(IDS_PAGE_STARTMENU_SUBTITLE)
+
+ nsDialogs::Create 1018
+ Pop $waui.dialog
+
+ ${NSD_CreateLabel} 0 0 100% 30u $(IDS_PAGE_STARTMENU_CAPTION)
+
+ ReadIniStr $0 "$INSTINI" "Startmenu" "Name"
+ ${If} $0 == ""
+ StrCpy $0 $(^NameDA)
+ WriteIniStr $INSTINI "StartMenu" "Name" $0
+ ${EndIf}
+
+ ${NSD_CreateText} 0 30u 100% 12u $0
+ Pop $waui.startmenu.text.start
+ GetFunctionAddress $0 nsPageWAStartMenu__OnTextChange
+ nsDialogs::OnChange $waui.startmenu.text.start $0
+
+ ${NSD_CreateCheckBox} 0 44u 100% 12u $(IDS_PAGE_STARTMENU_CHK_START)
+ Pop $waui.startmenu.chk.start
+ GetFunctionAddress $0 nsPageWAStartMenu__OnStartClick
+ nsDialogs::OnClick $waui.startmenu.chk.start $0
+
+ ${NSD_CreateCheckBox} 0 56u 100% 12u $(IDS_PAGE_STARTMENU_CHK_QUICKLAUNCH)
+ Pop $waui.startmenu.chk.quicklaunch
+ GetFunctionAddress $0 nsPageWAStartMenu__OnQuickLaunchClick
+ nsDialogs::OnClick $waui.startmenu.chk.quicklaunch $0
+
+ ${NSD_CreateCheckBox} 0 68u 100% 12u $(IDS_PAGE_STARTMENU_CHK_DESKTOP)
+ Pop $waui.startmenu.chk.desktop
+ GetFunctionAddress $0 nsPageWAStartMenu__OnDesktopClick
+ nsDialogs::OnClick $waui.startmenu.chk.desktop $0
+
+ ReadIniStr $0 "$INSTINI" "Startmenu" "NoMenu"
+ IntOp $0 $0 !
+ SendMessage $waui.startmenu.chk.start ${BM_SETCHECK} $0 0
+
+ ReadIniStr $0 "$INSTINI" "Startmenu" "NoQuickLaunch"
+ IntOp $0 $0 !
+ SendMessage $waui.startmenu.chk.quicklaunch ${BM_SETCHECK} $0 0
+
+ ReadIniStr $0 "$INSTINI" "Startmenu" "NoDesktop"
+ IntOp $0 $0 !
+ SendMessage $waui.startmenu.chk.desktop ${BM_SETCHECK} $0 0
+
+ Call nsPageWAStartMenu__OnStartClick
+
+ nsDialogs::Show
+ SetPluginUnload manual
+FunctionEnd
+
+Function nsPageWAStartMenu__OnTextChange
+ System::Call "user32::GetWindowText(i$waui.startmenu.text.start, w.r0, i${NSIS_MAX_STRLEN})"
+ WriteIniStr $INSTINI "StartMenu" "Name" $0
+FunctionEnd
+
+Function nsPageWAStartMenu__OnStartClick
+ SendMessage $waui.startmenu.chk.start ${BM_GETCHECK} 0 0 $0
+ EnableWindow $waui.startmenu.text.start $0
+ ${If} $0 = 0
+ WriteIniStr $INSTINI "StartMenu" "NoMenu" "1"
+ ${Else}
+ DeleteINIStr $INSTINI "StartMenu" "NoMenu"
+ ${EndIf}
+FunctionEnd
+
+Function nsPageWAStartMenu__OnQuickLaunchClick
+ SendMessage $waui.startmenu.chk.quicklaunch ${BM_GETCHECK} 0 0 $0
+ ${If} $0 = 0
+ WriteIniStr $INSTINI "StartMenu" "NoQuickLaunch" "1"
+ ${Else}
+ DeleteINIStr $INSTINI "StartMenu" "NoQuickLaunch"
+ ${EndIf}
+FunctionEnd
+
+Function nsPageWAStartMenu__OnDesktopClick
+ SendMessage $waui.startmenu.chk.desktop ${BM_GETCHECK} 0 0 $0
+ ${If} $0 = 0
+ WriteIniStr $INSTINI "StartMenu" "NoDesktop" "1"
+ ${Else}
+ DeleteINIStr $INSTINI "StartMenu" "NoDesktop"
+ ${EndIf}
+FunctionEnd
+
+Function StartMenu_WriteData
+ Push $0
+ Push $1
+ Push $2
+
+ StrCpy $2 "$OUTDIR"
+ SetOutPath "$INSTDIR"
+ SetShellVarContext all
+
+ ReadIniStr $1 "$INSTINI" "Startmenu" "Name"
+ ${If} $1 != ""
+ ReadIniStr $0 "$INSTINI" "Startmenu" "NoMenu"
+ ${If} $0 == ""
+ CreateDirectory "$SMPROGRAMS\$1"
+ CreateShortcut "$SMPROGRAMS\$1\${WINAMPLINK}" "$INSTDIR\${WINAMPEXE}"
+ CreateShortcut "$SMPROGRAMS\$1\$(safeMode).lnk" "$INSTDIR\${WINAMPEXE}" "/SAFE=1"
+ CreateShortcut "$SMPROGRAMS\$1\$(uninstallWinamp).lnk" "$INSTDIR\uninstwa.exe"
+ ${EndIf}
+ ${EndIf}
+
+ ReadIniStr $0 "$INSTINI" "Startmenu" "NoQuickLaunch"
+ ${If} $0 == ""
+ CreateShortcut "$QUICKLAUNCH\${WINAMPLINK}" "$INSTDIR\${WINAMPEXE}"
+ ${EndIf}
+ ReadIniStr $0 "$INSTINI" "Startmenu" "NoDesktop"
+ ${If} $0 == ""
+ CreateShortcut "$DESKTOP\${WINAMPLINK}" "$INSTDIR\${WINAMPEXE}"
+ ${EndIf}
+
+ SetShellVarContext current
+ SetOutPath "$2"
+
+ Pop $2
+ Pop $1
+ Pop $0
+FunctionEnd
+
+Function un.StartMenu_CleanData
+ Push $0
+ Push $1
+ Push $2
+
+ SetShellVarContext all
+
+ StrCpy $0 $INSTINI
+ ${If} ${FileExists} "$0"
+ ReadIniStr $1 "$0" "Startmenu" "Name"
+ ${If} $1 != ""
+ ReadIniStr $2 "$0" "Startmenu" "NoMenu"
+ ${If} $2 != "1"
+ Delete "$SMPROGRAMS\$1\*.lnk"
+ RMDir /r "$SMPROGRAMS\$1"
+ ${EndIf}
+ ${EndIf}
+ ReadIniStr $2 "$0" "Startmenu" "NoQuickLaunch"
+ ${If} $2 != "1"
+ Delete "$QUICKLAUNCH\${WINAMPLINK}"
+ ${EndIf}
+ ReadIniStr $2 "$0" "Startmenu" "NoDesktop"
+ ${If} $2 != "1"
+ Delete "$DESKTOP\${WINAMPLINK}"
+ ${EndIf}
+ ${EndIf}
+
+ Pop $2
+ Pop $1
+ Pop $0
+FunctionEnd
+!endif ;WAUI_STARTMENU_HEADER \ No newline at end of file