tuxpaint-pencil-sharpener/visualc/tuxpaint.nsi
John Popplewell 5dc92570f3 Added new options page to the NSIS installer.
The supplied (default) 'tuxpaint.cfg' is now empty, but is safely appended
to by the NSIS script. NSIS now has a Mode (Windowed|Full-Screen) and a
Resolution (640x480|800x600) option which append the following lines to
'tuxpaint.cfg':

fullscreen=$mode
nofancycursors=$mode
800x600=$res
[Where $mode and $res are "yes"|"no".]

The added file 'options.ini' contains the GUI layout for the new page.
2004-09-28 02:39:03 +00:00

157 lines
5.1 KiB
NSIS

# vim: noai et ts=4 tw=0
# with a few tiny modifications by Phil Harper(philh@theopencd.org)
!define PKG_VERSION "0.9.14-rc4"
!define PKG_PREFIX "tuxpaint"
!define APP_PREFIX "TuxPaint"
!define APP_EXE "${APP_PREFIX}.exe"
!define APP_CFG_EXE "${APP_PREFIX}-config.exe"
!define APP_NAME "Tux Paint"
!define TEMP1 $R0 ;Temp variable
SetCompressor lzma
OutFile "${PKG_PREFIX}-${PKG_VERSION}-win32-installer.exe"
Name "${APP_NAME}"
Caption ""
CRCCheck on
WindowIcon off
BGGradient off
Icon "..\data\images\tuxpaint-installer.ico"
# Default to not silent
SilentInstall normal
SilentUnInstall normal
# Various default text options
MiscButtonText
InstallButtonText
FileErrorText
# Default installation dir and registry key of install directory
InstallDir "$PROGRAMFILES\${APP_PREFIX}"
InstallDirRegKey HKLM SOFTWARE\${APP_PREFIX} "Install_Dir"
# Licence text
LicenseText "You must agree to this license before installing ${APP_NAME}"
LicenseData "../docs/copying.txt"
# Directory browsing
ComponentText "This will install ${APP_NAME} on your computer. Select which optional things you want installed."
DirText "Choose a directory to install ${APP_NAME} in to:"
AllowRootDirInstall false
# Install page stuff
InstProgressFlags smooth
AutoCloseWindow false
# Put plugin files used by the installer at the start of the archive
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
ReserveFile "options.ini"
Var FullscreenMode ; start TP in full-screen or windowed mode
Var Resolution ; resolution 800x600 or 640x480
Page license
Page components
Page custom SetOptions ValidateOptions ": Runtime Options" ;Custom page.
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
Section
SetOutPath $INSTDIR
File "release\${APP_EXE}"
File "..\..\tuxpaint-config\visualc\release\${APP_CFG_EXE}"
File "release\*.dll"
File "tuxpaint.cfg"
FileOpen $0 "tuxpaint.cfg" "a"
FileSeek $0 0 END
FileWrite $0 "fullscreen=$FullscreenMode$\r$\n"
FileWrite $0 "nofancycursors=$FullscreenMode$\r$\n"
FileWrite $0 "800x600=$Resolution$\r$\n"
FileClose $0
!include "filelist.inc"
SetOutPath $INSTDIR\locale
File /r "locale\*.*"
SetOutPath $INSTDIR\userdata
File "userdata\current_id.txt"
WriteRegStr HKLM SOFTWARE\${APP_PREFIX} "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}" "DisplayName" "${APP_NAME} (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteUninstaller "uninstall.exe"
SectionEnd
Section "Start Menu Shortcuts"
SetOutPath $INSTDIR
CreateDirectory "$SMPROGRAMS\${APP_NAME}"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} Configuration.lnk" "$INSTDIR\${APP_CFG_EXE}" "" "$INSTDIR\${APP_CFG_EXE}" 0 "" "" "Configure ${APP_NAME}"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Full Screen).lnk" "$INSTDIR\${APP_EXE}" "-f" "$INSTDIR\${APP_EXE}" 0 "" "" "Start ${APP_NAME} in Fullscreen mode"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Windowed).lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0 "" "" "Start ${APP_NAME} in a Window"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\Readme.lnk" "$INSTDIR\docs\html\README.html" "" "$INSTDIR\docs\html\README.html" 0 "" "" "View ReadMe"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\Licence.lnk" "$INSTDIR\docs\copying.txt" "" "$INSTDIR\docs\copying.txt" 0 "" "" "Read License"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 "" "" "Remove ${APP_NAME}"
SectionEnd
Section "Desktop Shortcut"
SetOutPath $INSTDIR
CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0 "" "" "Create a picture with ${APP_NAME}"
SectionEnd
Section "View README"
SetOutPath $INSTDIR
ExecShell "open" "docs\html\README.html"
SectionEnd
Function SetOptions
Push ${TEMP1}
InstallOptions::dialog "$PLUGINSDIR\options.ini"
Pop ${TEMP1}
Pop ${TEMP1}
FunctionEnd
Function ValidateOptions
StrCpy $FullscreenMode "yes"
ReadINIStr ${TEMP1} "$PLUGINSDIR\options.ini" "Field 4" "State"
StrCmp ${TEMP1} "Full-Screen" skip01
StrCpy $FullscreenMode "no"
skip01:
StrCpy $Resolution "yes"
ReadINIStr ${TEMP1} "$PLUGINSDIR\options.ini" "Field 6" "State"
StrCmp ${TEMP1} "800x600" skip02
StrCpy $Resolution "no"
skip02:
FunctionEnd
; init custom page
Function .onInit
InitPluginsDir
File /oname=$PLUGINSDIR\options.ini "options.ini"
FunctionEnd
; uninstall stuff
UninstallText "This will uninstall ${APP_NAME}. Hit 'Uninstall' to continue."
; special uninstall section.
Section "Uninstall"
; remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}"
DeleteRegKey HKLM SOFTWARE\${APP_PREFIX}
RMDir /r "$INSTDIR\data"
RMDir /r "$INSTDIR\docs"
RMDir /r "$INSTDIR\locale"
Delete "$INSTDIR\*.*"
Delete "$DESKTOP\${APP_NAME}.lnk"
Delete "$SMPROGRAMS\${APP_NAME}\*.*"
RMDir "$SMPROGRAMS\${APP_NAME}"
SectionEnd