; WinBoard-4.2.7 MUI ; ; ;-------------------------------- ;Include Modern UI !include "MUI.nsh" ;-------------------------------- !define InstName "WinBoard" !define InstVersion "4.2.7" !define InstBaseDir "WinBoard-4.2.7" ;-------------------------------- ; General ; Name "${InstName} ${InstVersion}" Caption "WinBoard - Chessboard For Windows" OutFile "WinBoard-4.2.7_full.exe" InstallDir $PROGRAMFILES\${InstBaseDir} SetCompressor lzma SetDateSave on SetDatablockOptimize on CRCCheck on SilentInstall normal BGGradient 000000 4682b4 FFFFFF ;XPStyle on ;-------------------------------- ;Variables Var INI_VALUE Var START_MENU_FOLDER Var MUI_TEMP ;-------------------------------- ;!define MUI_ICON "knight.ico" ;!define MUI_UNICON "wc_uninst.ico" !define MUI_WELCOMEFINISHPAGE_BITMAP "welcome_chess.bmp" ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING ;!define MUI_COMPONENTSPAGE_NODESC !define MUI_COMPONENTSPAGE_SMALLDESC !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${InstName} ${InstVersion}.\n\n\n\n\nClick Next to continue." !define MUI_LICENSEPAGE_TEXT_BOTTOM "$\nPress Continue to proceed with the installation." !define MUI_LICENSEPAGE_BUTTON "Continue" ;-------------------------------- ;-------------------------------- ; Pages ; Install Section ;-------------------------------------------------------------------- !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "..\READ_ME.txt" !insertmacro MUI_PAGE_COMPONENTS Page custom FileAssoc !insertmacro MUI_PAGE_DIRECTORY ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\WinBoard" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $START_MENU_FOLDER !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH ;-------------------------------------------------------------------- ; Uninstall Section ; ;!define MUI_WELCOMEPAGE_TEXT "WARNING! THIS UNINSTALLER WILL COMPLETELY DELETE THE INSTALLATION DIRECTORY\n\n$INSTDIR !!!\n\nIF THERE ARE ANY FILES YOU WISH TO SAVE, MOVE THEM FROM THE INSTALLATION DIRECTORY FIRST!\n\n\n\nPress Next to Continue." !define MUI_WELCOMEPAGE_TEXT "This will uninstall WinBoard from directory:\n\n$INSTDIR\n\n\n\nPress Next to Continue." !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" ;-------------------------------- ;-------------------------------- ;Reserve Files ;These files should be inserted before other files in the data block ;Keep these lines before any File command ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) ReserveFile "FA.ini" !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;-------------------------------- Section "WinBoard Core Components" Core SectionIn 1 RO SetOutPath $INSTDIR File ..\bughouse.bat File ..\ChangeLog File ..\COPYING File ..\COPYRIGHT File ..\cygncurses7.dll File ..\cygreadline5.dll File ..\cygwin1.dll File ..\FAQ.html File ..\kk13.pgn File ..\NEWS File ..\READ_ME.txt File ..\RJF60.pgn File ..\timeseal.exe File ..\timestamp.exe File ..\winboard.exe File ..\winboard.hlp File ..\zippy.lines File ..\zippy.README ;Create uninstaller WriteUninstaller "$INSTDIR\UnInstall.exe" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer.lnk" "$INSTDIR\winboard.exe" "-ncp" "$INSTDIR\winboard.exe" 1 CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer - Bobby Fischer.lnk" "$INSTDIR\winboard.exe" "-ncp -lgf RJF60.pgn" "$INSTDIR\winboard.exe" 1 CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer - Karpov vs Kasparov.lnk" "$INSTDIR\winboard.exe" "-ncp -lgf kk13.pgn" "$INSTDIR\winboard.exe" 1 CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Help.lnk" "$INSTDIR\winboard.hlp" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Frequently Asked Questions.lnk" "$INSTDIR\FAQ.html" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard READ_ME.lnk" "$INSTDIR\READ_ME.txt" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard UnInstall.lnk" "$INSTDIR\UnInstall.exe" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - chessclub.com.lnk" "$INSTDIR\winboard.exe" "-ics -icshost chessclub.com -icshelper timestamp" "$INSTDIR\winboard.exe" 0 CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - freechess.org.lnk" "$INSTDIR\winboard.exe" "-ics -icshost freechess.org -icshelper timeseal" "$INSTDIR\winboard.exe" 0 CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - Other.lnk" "$INSTDIR\winboard.exe" "-ics" "$INSTDIR\winboard.exe" 0 CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Startup Dialog.lnk" "$INSTDIR\winboard.exe" "" "$INSTDIR\winboard.exe" 2 !insertmacro MUI_STARTMENU_WRITE_END SectionEnd SubSection /e "Chess Engines" Engines Section "GNU Chess 5.0" GNUChess5 SetOutPath "$INSTDIR" File ..\book.dat File ..\GNUChes5.exe File ..\gnuches5.txt File ..\gnuchess.dat File ..\gnuchess.lan File ..\gnuchess.README CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 5.0 Documentation.lnk" "$INSTDIR\gnuches5.txt" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 5.0.lnk" "$INSTDIR\winboard.exe" "-cp -fcp 'GNUChes5 xboard' -scp 'GNUChes5 xboard'" "$INSTDIR\winboard.exe" 2 !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section "GNU Chess 4.0" GNUChess4 SetOutPath "$INSTDIR" File ..\gnuchesr.exe File ..\GNUChess.exe File ..\gnuchess.txt CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 4.0 Documentation.lnk" "$INSTDIR\gnuchess.txt" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 4.0.lnk" "$INSTDIR\winboard.exe" "-cp -fcp GNUChess -scp GNUChess" "$INSTDIR\winboard.exe" 2 !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section "Crafty 19.3" Crafty SetOutPath "$INSTDIR\Crafty" File ..\Crafty-WinBoard\wcrafty.exe File ..\Crafty-WinBoard\book.bin File ..\Crafty-WinBoard\books.bin File ..\Crafty-WinBoard\Crafty.rc File ..\Crafty-WinBoard\crafty.doc.txt CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Crafty Documentation.lnk" "$INSTDIR\Crafty\crafty.doc.txt" CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Crafty 19.3.lnk" "$INSTDIR\winboard.exe" "-cp -fcp Crafty\wcrafty.exe -fd Crafty -scp Crafty\wcrafty.exe -sd Crafty" "$INSTDIR\winboard.exe" 2 !insertmacro MUI_STARTMENU_WRITE_END SectionEnd SubSectionEnd ;-------------------------------- ;Installer Functions Function .onInit ;Extract InstallOptions INI files !insertmacro MUI_INSTALLOPTIONS_EXTRACT "FA.ini" FunctionEnd Function FileAssoc !insertmacro MUI_HEADER_TEXT "Windows File Associations" "Do you want to use Winboard as your viewer for the following file types?" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "FA.ini" ;Read a value from an InstallOptions INI file !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 2" "State" ;Display a messagebox if check box was checked StrCmp $INI_VALUE "1" "" CheckFEN WriteRegStr HKCR ".pgn" "" "WinBoard.PGN" WriteRegStr HKCR ".pgn" "Content Type" "application/x-chess-pgn" WriteRegStr HKCR "WinBoard.PGN" "" "Chess Game" WriteRegStr HKCR "WinBoard.PGN\DefaultIcon" "" "$INSTDIR\WinBoard.exe,1" WriteRegStr HKCR "WinBoard.PGN\Shell\Open" "" "Open" WriteRegStr HKCR "WinBoard.PGN\Shell\Open\command" "" '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lgf "%1"' CheckFEN: !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 3" "State" ;Display a messagebox if check box was checked StrCmp $INI_VALUE "1" "" Continue WriteRegStr HKCR ".fen" "" "WinBoard.FEN" WriteRegStr HKCR ".fen" "Content Type" "application/x-chess-fen" WriteRegStr HKCR "WinBoard.FEN" "" "Chess Position" WriteRegStr HKCR "WinBoard.FEN\DefaultIcon" "" "$INSTDIR\WinBoard.exe,1" WriteRegStr HKCR "WinBoard.FEN\Shell\Open" "" "Open" WriteRegStr HKCR "WinBoard.FEN\Shell\Open\command" "" '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lpf "%1"' Continue: FunctionEnd ;-------------------------------- ;Descriptions ;Language strings LangString DESC_Core ${LANG_ENGLISH} "Winboard Core Components - Executable and Help Files" LangString DESC_Engines ${LANG_ENGLISH} "Chess Engines to play against using the WinBoard Interface" LangString DESC_GNUChess5 ${LANG_ENGLISH} "GNU Chess 5.0 Engine" LangString DESC_GNUChess4 ${LANG_ENGLISH} "GNU Chess 4.0 Engine" LangString DESC_Crafty ${LANG_ENGLISH} "Crafty 19.3 Chess Engine, by Robert Hyatt" ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${Core} $(DESC_Core) !insertmacro MUI_DESCRIPTION_TEXT ${Engines} $(DESC_Engines) !insertmacro MUI_DESCRIPTION_TEXT ${GNUChess5} $(DESC_GNUChess5) !insertmacro MUI_DESCRIPTION_TEXT ${GNUChess4} $(DESC_GNUChess4) !insertmacro MUI_DESCRIPTION_TEXT ${Crafty} $(DESC_Crafty) !insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;-------------------------------- ;Uninstaller Section ; Function to delete install directory if non-empty on user request Function un.ForceDirectoryDelete MessageBox MB_YESNO "The uninstaller was unable to delete the directory '$INSTDIR'. This is usually$\r$\ndue to user-created files such as WinBoard.ini, or other configuration files. If$\r$\nyou wish to keep your old configuration files, select No.$\r$\n$\r$\nForce deletion of install directory and all files in it?" IDNO End RMDir /r "$INSTDIR" End: FunctionEnd Section "Uninstall" Delete "$INSTDIR\bughouse.bat" Delete "$INSTDIR\ChangeLog" Delete "$INSTDIR\COPYING" Delete "$INSTDIR\COPYRIGHT" Delete "$INSTDIR\cygncurses7.dll" Delete "$INSTDIR\cygreadline5.dll" Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\FAQ.html" Delete "$INSTDIR\kk13.pgn" Delete "$INSTDIR\NEWS" Delete "$INSTDIR\READ_ME.txt" Delete "$INSTDIR\RJF60.pgn" Delete "$INSTDIR\timeseal.exe" Delete "$INSTDIR\timestamp.exe" Delete "$INSTDIR\winboard.exe" Delete "$INSTDIR\winboard.hlp" Delete "$INSTDIR\zippy.lines" Delete "$INSTDIR\zippy.README" Delete "$INSTDIR\book.dat" Delete "$INSTDIR\GNUChes5.exe" Delete "$INSTDIR\gnuches5.txt" Delete "$INSTDIR\gnuchess.dat" Delete "$INSTDIR\gnuchess.lan" Delete "$INSTDIR\gnuchess.README" Delete "$INSTDIR\gnuchesr.exe" Delete "$INSTDIR\GNUChess.exe" Delete "$INSTDIR\gnuchess.txt" Delete "$INSTDIR\UnInstall.exe" Delete "$INSTDIR\Crafty\wcrafty.exe" Delete "$INSTDIR\Crafty\book.bin" Delete "$INSTDIR\Crafty\books.bin" Delete "$INSTDIR\Crafty\Crafty.rc" Delete "$INSTDIR\Crafty\crafty.doc.txt" RMDir "$INSTDIR\Crafty" RMDir "$INSTDIR" !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP RMDir /r "$SMPROGRAMS\$MUI_TEMP" ReadRegStr $1 HKCR ".pgn" "" StrCmp $1 "WinBoard.PGN" "" DelFEN ReadRegStr $1 HKCR "WinBoard.PGN\Shell\Open\command" "" StrCmp $1 '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lgf "%1"' "" DelFEN DeleteRegKey HKCR ".pgn" DeleteRegKey HKCR "WinBoard.PGN" DelFEN: ReadRegStr $1 HKCR ".fen" "" StrCmp $1 "WinBoard.FEN" "" ContDelFEN ReadRegStr $1 HKCR "WinBoard.FEN\Shell\Open\command" "" StrCmp $1 '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lpf "%1"' "" ContDelFEN DeleteRegKey HKCR ".fen" DeleteRegKey HKCR "WinBoard.FEN" ContDelFEN: DeleteRegKey HKCU "Software\WinBoard" IfFileExists "$INSTDIR\*.*" GoDirDel Continue GoDirDel: Call un.ForceDirectoryDelete Continue: SectionEnd