tuxpaint-pencil-sharpener/visualc/tuxpaint.nsi
John Popplewell 9affd6403b Fix for 'Tux Paint (Windowed)' menu item. Added the '--windowed' flag so
that it overrides any fullscreen 'tuxpaint.cfg' settings.
2004-10-09 00:23:27 +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"
!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}" "--fullscreen" "$INSTDIR\${APP_EXE}" 0 "" "" "Start ${APP_NAME} in Fullscreen mode"
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Windowed).lnk" "$INSTDIR\${APP_EXE}" "--windowed" "$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