# Installer generated by Marco Bonifazi - http://www.bonifazi.eu Name Gtk+ SetCompressor /SOLID lzma !include "EnvVarUpdate.nsh" # General Symbol Definitions !define REGKEY "SOFTWARE\$(^Name)" !define VERSION 2.20.0 !define COMPANY "" !define URL http://www.gtk.org # MUI Symbol Definitions !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" !define MUI_FINISHPAGE_NOAUTOCLOSE !define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM !define MUI_STARTMENUPAGE_NODISABLE !define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY} !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup !define MUI_STARTMENUPAGE_DEFAULTFOLDER Gtk+ !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-colorful.ico" !define MUI_UNFINISHPAGE_NOAUTOCLOSE # Included files !include Sections.nsh !include MUI2.nsh # Variables Var StartMenuGroup # Installer pages !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES # Installer languages !insertmacro MUI_LANGUAGE English !insertmacro MUI_LANGUAGE Afrikaans !insertmacro MUI_LANGUAGE Albanian !insertmacro MUI_LANGUAGE Arabic !insertmacro MUI_LANGUAGE Basque !insertmacro MUI_LANGUAGE Belarusian !insertmacro MUI_LANGUAGE Bosnian !insertmacro MUI_LANGUAGE Breton !insertmacro MUI_LANGUAGE Bulgarian !insertmacro MUI_LANGUAGE Catalan !insertmacro MUI_LANGUAGE Croatian !insertmacro MUI_LANGUAGE Czech !insertmacro MUI_LANGUAGE Danish !insertmacro MUI_LANGUAGE Dutch !insertmacro MUI_LANGUAGE Esperanto !insertmacro MUI_LANGUAGE Estonian !insertmacro MUI_LANGUAGE Farsi !insertmacro MUI_LANGUAGE Finnish !insertmacro MUI_LANGUAGE French !insertmacro MUI_LANGUAGE Galician !insertmacro MUI_LANGUAGE German !insertmacro MUI_LANGUAGE Greek !insertmacro MUI_LANGUAGE Hebrew !insertmacro MUI_LANGUAGE Hungarian !insertmacro MUI_LANGUAGE Icelandic !insertmacro MUI_LANGUAGE Indonesian !insertmacro MUI_LANGUAGE Irish !insertmacro MUI_LANGUAGE Italian !insertmacro MUI_LANGUAGE Japanese !insertmacro MUI_LANGUAGE Korean !insertmacro MUI_LANGUAGE Kurdish !insertmacro MUI_LANGUAGE Latvian !insertmacro MUI_LANGUAGE Lithuanian !insertmacro MUI_LANGUAGE Luxembourgish !insertmacro MUI_LANGUAGE Macedonian !insertmacro MUI_LANGUAGE Malay !insertmacro MUI_LANGUAGE Mongolian !insertmacro MUI_LANGUAGE Norwegian !insertmacro MUI_LANGUAGE NorwegianNynorsk !insertmacro MUI_LANGUAGE Polish !insertmacro MUI_LANGUAGE Portuguese !insertmacro MUI_LANGUAGE PortugueseBR !insertmacro MUI_LANGUAGE Romanian !insertmacro MUI_LANGUAGE Russian !insertmacro MUI_LANGUAGE Serbian !insertmacro MUI_LANGUAGE SerbianLatin !insertmacro MUI_LANGUAGE SimpChinese !insertmacro MUI_LANGUAGE Slovak !insertmacro MUI_LANGUAGE Slovenian !insertmacro MUI_LANGUAGE Spanish !insertmacro MUI_LANGUAGE SpanishInternational !insertmacro MUI_LANGUAGE Swedish !insertmacro MUI_LANGUAGE Thai !insertmacro MUI_LANGUAGE TradChinese !insertmacro MUI_LANGUAGE Turkish !insertmacro MUI_LANGUAGE Ukrainian !insertmacro MUI_LANGUAGE Uzbek !insertmacro MUI_LANGUAGE Welsh # Installer attributes OutFile gtk_installer.exe InstallDir $PROGRAMFILES\Gtk+ CRCCheck on XPStyle on ShowInstDetails show VIProductVersion 2.20.0.0 VIAddVersionKey /LANG=${LANG_ENGLISH} ProductName Gtk+ VIAddVersionKey /LANG=${LANG_ENGLISH} ProductVersion "${VERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} CompanyWebsite "${URL}" VIAddVersionKey /LANG=${LANG_ENGLISH} FileVersion "${VERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} FileDescription "" VIAddVersionKey /LANG=${LANG_ENGLISH} LegalCopyright "" InstallDirRegKey HKLM "${REGKEY}" Path ShowUninstDetails show # Installer sections Section -Main SEC0000 SetOutPath $INSTDIR SetOverwrite on File /r Gtk+\* #File Gtk+\bin\glade-3.exe SetOutPath $SMPROGRAMS\$StartMenuGroup CreateShortcut $SMPROGRAMS\$StartMenuGroup\Glade-3.7.1.lnk $INSTDIR\bin\glade-3.exe #File Gtk+\bin\gtk2_prefs.exe CreateShortcut $SMPROGRAMS\$StartMenuGroup\Gtk_Themes.lnk $INSTDIR\bin\gtk2_prefs.exe WriteRegStr HKLM "${REGKEY}\Components" Main 1 ${EnvVarUpdate} $0 "PATH" "P" "HKLM" $INSTDIR\bin ${EnvVarUpdate} $0 "GTK_HOME" "P" "HKLM" $INSTDIR ${EnvVarUpdate} $0 "INCLUDE" "P" "HKLM" $INSTDIR\include ${EnvVarUpdate} $0 "LIB" "P" "HKLM" $INSTDIR\lib SectionEnd Section -post SEC0001 WriteRegStr HKLM "${REGKEY}" Path $INSTDIR SetOutPath $INSTDIR WriteUninstaller $INSTDIR\GTK_uninstall.exe !insertmacro MUI_STARTMENU_WRITE_BEGIN Application SetOutPath $SMPROGRAMS\$StartMenuGroup CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk" $INSTDIR\GTK_uninstall.exe !insertmacro MUI_STARTMENU_WRITE_END WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)" WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}" WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}" WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\GTK_uninstall.exe WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\GTK_uninstall.exe WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 SectionEnd # Macro for selecting uninstaller sections !macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID Push $R0 ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}" StrCmp $R0 1 0 next${UNSECTION_ID} !insertmacro SelectSection "${UNSECTION_ID}" GoTo done${UNSECTION_ID} next${UNSECTION_ID}: !insertmacro UnselectSection "${UNSECTION_ID}" done${UNSECTION_ID}: Pop $R0 !macroend # Uninstaller sections Section /o -un.Main UNSEC0000 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" $INSTDIR\bin ${un.EnvVarUpdate} $0 "GTK_HOME" "R" "HKLM" $INSTDIR ${un.EnvVarUpdate} $0 "INCLUDE" "R" "HKLM" $INSTDIR\include ${un.EnvVarUpdate} $0 "LIB" "R" "HKLM" $INSTDIR\lib Delete /REBOOTOK $SMPROGRAMS\$StartMenuGroup\Glade-3.7.1.lnk Delete /REBOOTOK $INSTDIR\glade-3.exe Delete /REBOOTOK $SMPROGRAMS\$StartMenuGroup\Gtk_Themes.lnk Delete /REBOOTOK $INSTDIR\gtk2_prefs.exe RmDir /r /REBOOTOK $INSTDIR DeleteRegValue HKLM "${REGKEY}\Components" Main SectionEnd Section -un.post UNSEC0001 DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk" Delete /REBOOTOK $INSTDIR\GTK_uninstall.exe DeleteRegValue HKLM "${REGKEY}" StartMenuGroup DeleteRegValue HKLM "${REGKEY}" Path DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components" DeleteRegKey /IfEmpty HKLM "${REGKEY}" RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup RmDir /REBOOTOK $INSTDIR SectionEnd # Installer functions Function .onInit InitPluginsDir FunctionEnd # Uninstaller functions Function un.onInit ReadRegStr $INSTDIR HKLM "${REGKEY}" Path !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup !insertmacro SELECT_UNSECTION Main ${UNSEC0000} FunctionEnd # Installer Language Strings # TODO Update the Language Strings with the appropriate translations. LangString ^UninstallLink ${LANG_ENGLISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_AFRIKAANS} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ALBANIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ARABIC} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_BASQUE} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_BELARUSIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_BOSNIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_BRETON} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_BULGARIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_CATALAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_CROATIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_CZECH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_DANISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_DUTCH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ESPERANTO} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ESTONIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_FARSI} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_FINNISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_FRENCH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_GALICIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_GERMAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_GREEK} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_HEBREW} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_HUNGARIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ICELANDIC} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_INDONESIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_IRISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ITALIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_JAPANESE} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_KOREAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_KURDISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_LATVIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_LITHUANIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_LUXEMBOURGISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_MACEDONIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_MALAY} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_MONGOLIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_NORWEGIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_NORWEGIANNYNORSK} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_POLISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_PORTUGUESE} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_PORTUGUESEBR} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_ROMANIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_RUSSIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SERBIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SERBIANLATIN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SIMPCHINESE} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SLOVAK} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SLOVENIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SPANISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SPANISHINTERNATIONAL} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_SWEDISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_THAI} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_TRADCHINESE} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_TURKISH} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_UKRAINIAN} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_UZBEK} "Uninstall $(^Name)" LangString ^UninstallLink ${LANG_WELSH} "Uninstall $(^Name)"