« NSIS PL

Nowoczesny interfejs użytkownika

Ten dokument zgodny jest z NSIS 2.46

Wprowadzenie


Nowoczesny interfejs użytkownika (Modern UI) jest interfejsem użytkownika dla instalatorów NSIS. Interfejs zaprojektowany jest w stylu kreatorów najnowszych wersji Windows. Oparty jest na podstawowym interfejsie użytkownika, który wbudowany jest w NSIS, rozszerzając jego możliwości o nowe funkcjonalności oraz dodatkowe strony.

Wszystkie standardowe strony NSIS (takie jak strona wyboru komponentów do zainstalowania oraz katalogu instalacji) są także obsługiwane, jak wiele innych. Strona powitalna wprowadza użytkownika w proces instalacji, strona końcowa umożliwia użytkownikowi podjęcie określonych akcji po zamknięciu instalatora (np. czy program powinien być uruchomiony tuż po zamknięciu instalatora). Strona końcowa może być również użyta do zapytania o ponowne uruchomienie komputera, jeśli jest to wymagane.


Wyświetl/Ukryj Zrzuty ekranu






Nagłówek skryptu


Ustawienia dla nowoczesnego interfejsu powinny być wstawione na początku pliku skryptu. Ważnym jest, aby elementy te były w odpowiedniej, ponizszej kolejności. Na przykład, ustawienia interfejsu powinny być zdefiniowane przed wstawieniem kodu stron, ponieważ strony zależą od konfiguracji interfejsu. Warto zajrzeć do działu Przykładowe skrypty. Zobaczysz jak jest to zrobione w bieżących plikach skryptów.

Parametry przekazywane są w następującym porządku:

Wymagany_parametr (Opcja1 | Opcja2) [Opcjonalny_Parametr]

1. Plik nagłówkowy


Aby dodać obsługę nowoczesnego interfejsu użytkownika, dodaj poniższą linię na początku skryptu:

!include MUI.nsh


2. Konfiguracja interfejsu


Kolejnym krokiem jest ustawienie opcji interfejsu użytkownika. Opcje te mają wpływ na wszystkie strony.

Ustawienia interfejsu dostarczane przez kompilator NSIS (takie jak LicenseText, Icon, CheckBitmap, InstallColors) nie powinny być używane w skryptach, które korzystają z nowoczesnego interfejsu użytkwonika. Nowoczesny interfejs użytkownika dostarcza porównywalne opcje lub ich rozszerzone wersje.

Przykłady:

!define MUI_COMPONENTSPAGE_SMALLDESC ; Brak wartości
!define MUI_UI "myUI.exe" ; Wartość
!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ; Dwa kolory

Wyświetl/Ukryj Ustawienia interfejsu


Wyświetl/Ukryj Nagłówek strony


MUI_ICON plik_ikony

Ikona instalatora.
Domyślnie: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico

MUI_UNICON plik_ikony

Ikona deinstalatora.
Domyślnie: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico

MUI_HEADERIMAGE

Wyświetla obrazek w nagłówku strony.

MUI_HEADERIMAGE_BITMAP plik_bmp

Obrazek mapy bitowej, wyświetlanej w nagłówku stron instalatora (zalecany rozmiar: 150x57 pikseli).
Domyślnie: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp

MUI_HEADERIMAGE_BITMAP_NOSTRETCH

Nie zmieniaj rozmiaru obrazka mapy bitowej w nagłówku instalatora. Użyj tej opcji tylko wtedy, gdy obrazek nie zajmuje całej powierzchni. Mając obrazek, który całkowicie wypełnia pole, nie powinieneś używać tej opcji, ponieważ rozmiar tego pola jest zmienny i zależy od ustawień DPI.

MUI_HEADERIMAGE_BITMAP_RTL plik_bmp

Obrazek mapy bitowej wyświetlany w nagłówku stron instalatora, gdy używasz języka RTL (rekomendowany rozmiar: 150x57 pikseli).
Domyślnie: Mapa bitowa wyświetlana po lewej stronie

MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH

Nie zmieniaj rozmiaru obrazka mapy bitowej w nagłówku instalatora, który używa języka RTL. Użyj tej opcji tylko wtedy, gdy obrazek nie zajmuje całej powierzchni. Mając obrazek, który całkowicie wypełnia pole, nie powinieneś używać tej opcji, ponieważ rozmiar tego pola jest zmienny i zależy od ustawień DPI.

MUI_HEADERIMAGE_UNBITMAP plik_bmp

Obrazek mapy bitowej wyświetlany w nagłówku stron deinstalatora (zalecany rozmiar: 150x57 pikseli).
Domyślnie: Mapa bitowa wyświetlana w nagłówku deinstalatora

MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH

Nie zmieniaj rozmiaru obrazka mapy bitowej w nagłówku deinstalatora. Użyj tej opcji tylko wtedy, gdy obrazek nie zajmuje całej powierzchni. Mając obrazek, który całkowicie wypełnia pole, nie powinieneś używać tej opcji, ponieważ rozmiar tego pola jest zmienny i zależy od ustawień DPI.

MUI_HEADERIMAGE_UNBITMAP_RTL plik_bmp

Obrazek mapy bitowej wyświetlany w nagłówku stron deinstalatorów, gdy używasz języka RTL (zalecany rozmiar: 150x57 pikseli).
Domyślnie: Mapa bitowa wyświetlana w nagłówku deinstalatora RTL

MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH

Nie zmieniaj rozmiaru obrazka mapy bitowej w nagłówku deinstalatora, który używa języka RTL. Użyj tej opcji tylko wtedy, gdy obrazek nie zajmuje całej powierzchni. Mając obrazek, który całkowicie wypełnia pole, nie powinieneś używać tej opcji, ponieważ rozmiar tego pola jest zmienny i zależy od ustawień DPI.

MUI_HEADERIMAGE_RIGHT

Wyświetla obrazek po prawej stronie nagłówka (używając języka RTL, obrazek będzie wyświetlany po jego lewej stronie).

MUI_BGCOLOR (Szesnastkowa wartość koloru: RRGGBB)

Kolor tła dla nagłówka, strony powitalnej oraz strony końcowej.
Domyślnie: FFFFFF

MUI_HEADER_TRANSPARENT_TEXT

Ustawia przezroczyste tło dla kontrolek etykiety nagłówka. Użyteczne dla niestandardowych interfejsów użytkownika, które ustawiają większy obrazek nagłówka.



Wyświetl/Ukryj Zasoby interfejsu


MUI_UI plik_ui

Plik interfejsu z zasobami okna dialogowego. Zmień go, jeśli stworzyłeś swój własny interfejs.
Domyślnie: ${NSISDIR}\Contrib\UIs\modern.exe

MUI_UI_HEADERIMAGE plik_ui

Plik interfejsu z zasobami okna dialogowego IDD_INST, które zawiera kontrolkę mapy bitowej oraz przestrzeń na mapę bitową w nagłówku.
Domyślnie: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe

MUI_UI_HEADERIMAGE_RIGHT plik_ui

Plik interfejsu z zasobami okna dialogowego IDD_INST, który zawiera kontrolkę mapy bitowej oraz miejsce na mapę bitową w nagłówku po prawej stronie.
Domyślnie: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe

MUI_UI_COMPONENTSPAGE_SMALLDESC plik_ui

Plik interfejsu z zasobami okna dialogowego IDD_SELCOM z małym obszarem opisowym.
Domyślnie: ${NSISDIR}\Contrib\UIs\modern_smalldesc.exe

MUI_UI_COMPONENTSPAGE_NODESC ui_file

Plik interfejsu z zasobami okna dialogowego IDD_SELCOM bez obszaru opisowego.
Domyślnie: ${NSISDIR}\Contrib\UIs\modern_nodesc.exe



Wyświetl/Ukryj Strona powitalna/końcowa instalatora


MUI_WELCOMEFINISHPAGE_BITMAP plik_bmp

Obrazek mapy bitowej strony powitalnej oraz strony końcowej instalatora (rekomendowany rozmiar: 164x314 pikseli).
Domyślnie: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH

Nie zmieniaj rozmiaru obrazka mapy bitowej strony powitalnej oraz końcowej instalatora. Użyj tej opcji tylko wtedy, gdy obrazek nie zajmuje całej powierzchni. Mając obrazek, który całkowicie wypełnia pole, nie powinieneś używać tej opcji, ponieważ rozmiar tego pola jest zmienny i zależy od ustawień DPI.

MUI_WELCOMEFINISHPAGE_INI plik_ini

Plik INI wtyczki InstallOptions strony powitalnej oraz końcowej instalatora.
Domyślnie: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini



Wyświetl/Ukryj Strona powitalna/końcowa deinstalatora


MUI_UNWELCOMEFINISHPAGE_BITMAP plik_bmp

Obrazek mapy bitowej strony powitalnej oraz strony końcowej deinstalatora (rekomendowany rozmiar: 164x314 pikseli).
Domyślnie: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH

Nie zmieniaj rozmiaru obrazka mapy bitowej strony powitalnej i końcowej deinstalatora. Użyj tej opcji tylko wtedy, gdy obrazek nie zajmuje całej powierzchni. Mając obrazek, który całkowicie wypełnia pole, nie powinieneś używać tej opcji, ponieważ rozmiar tego pola jest zmienny i zależy od ustawień DPI.

MUI_UNWELCOMEFINISHPAGE_INI plik_ini

Plik INI wtyczki InstallOptions strony powitalnej oraz końcowej deinstalatora.
Domyślnie: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini



Wyświetl/Ukryj Strona z postanowieniami licencji


MUI_LICENSEPAGE_BGCOLOR (/windows | /grey | (Szesnastkowa wartość koloru: RRGGBB))

Kolor tła dla pola tekstowego licencji. Użyj parametru /windows dla koloru tła tekstu Windows (zazwyczaj biały). Użyj parametru /grey dla koloru tła okna (zazwyczaj szary).
Domyślnie: /windows



Wyświetl/Ukryj Strona wyboru komponentów instalacji


MUI_COMPONENTSPAGE_CHECKBITMAP plik_bitmapy

Obrazek mapy bitowej zawierający znaki akceptacji, wyświetlana na drzewie wyboru składników.
Domyślnie: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

MUI_COMPONENTSPAGE_SMALLDESC

Mały obszar opisu na dole strony. Interfejs ten zaleca się używać, jeśli instalator ma dużo sekcji i nie ma potrzeby używania rozbudowanych opisów.

MUI_COMPONENTSPAGE_NODESC

Brak obszaru opisowego.



Wyświetl/Ukryj Strona wyboru katalogu docelowego instalacji


MUI_DIRECTORYPAGE_BGCOLOR (Szesnastkowa wartość koloru: RRGGBB)

Kolor tła kontrolki tekstowej wybranego katalogu docelowego instalacji.



Wyświetl/Ukryj Strona wyboru katalogu Menu Start


MUI_STARTMENUPAGE_BGCOLOR (Szesnastkowa wartość koloru: RRGGBB)

Kolor tła kontrolki listy katalogów Menu Start oraz kontrolki tekstowej wybranego katalogu.



Wyświetl/Ukryj Strona instalacji komponentów


MUI_INSTFILESPAGE_COLORS (/windows | (Szesnastkowa wartość koloru: RRGGBB) (Szesnastkowa wartość koloru tła: RRGGBB))

Kolory ekranu strony z dziennikiem instalacji. Użyj parametru /windows dla domyślnych kolorów Windows.
Domyślnie: /windows

MUI_INSTFILESPAGE_PROGRESSBAR ("" | colored | smooth)

Styl paska postępu. Styl colored sprawia, że używana jest definicja MUI_INSTALLCOLORS.
Domyślnie: smooth



Wyświetl/Ukryj Strona końcowa instalatora


MUI_FINISHPAGE_NOAUTOCLOSE

Nie przeskakuje automatycznie do strony końcowej, co pozwala użytkownikowi na sprawdzenie dziennika postępu instalacji.



Wyświetl/Ukryj Strona końcowa deinstalatora


MUI_UNFINISHPAGE_NOAUTOCLOSE

Nie przeskakuje automatycznie do strony końcowej, co pozwala użytkownikowi na sprawdzenie dziennika postępu deinstalacji.



Wyświetl/Ukryj Komunikat o przerwaniu instalacji


MUI_ABORTWARNING

Wyświetla okno komunikatu z ostrzeżeniem, gdy użytkownik chce zamknąć instalatora.

MUI_ABORTWARNING_TEXT tekst

Tekst wyświetlany w oknie komunikatu, który ostrzega przed przerwaniem instalacji.

MUI_ABORTWARNING_CANCEL_DEFAULT

Ustawia przycisk 'Anuluj', jako domyślny przycisk w oknie komunikatu.



Wyświetl/Ukryj Komunikat o przerwaniu deinstalacji


MUI_UNABORTWARNING

Wyświetla okno komunikatu z ostrzeżeniem, gdy użytkownik chce zamknąć deinstalatora.

MUI_UNABORTWARNING_TEXT tekst

Tekst wyświetlany w oknie komunikatu, który ostrzega przed przerwaniem deinstalacji.

MUI_UNABORTWARNING_CANCEL_DEFAULT

Ustawia przycisk 'Anuluj', jako domyślny przycisk w oknie komunikatu.



3. Strony


Wstaw poniższe makra, aby ustawić strony, które chcesz użyć. Strony zostaną wyświetlone w kolejności, w jakiej zostały zapisane w skrypcie. Aby dodać niestandardowe strony, wstaw polecenia niestandardowych stron pomiędzy tymi makrami.

Możesz dodać wiele stron określonego typu (na przykład, jeśli chcesz, aby użytkownik wybrał kilka katalogów).

Przykłady:

!insertmacro MUI_PAGE_LICENSE "Plik_Licencji.rtf"
!insertmacro MUI_PAGE_COMPONENTS

Var StartMenuFolder
!insertmacro MUI_PAGE_STARTMENU "Application" $StartMenuFolder

Używając makra Menu Start, będziesz potrzebował numeru ID strony dla strony wyboru katalogu w Menu Start. Katalog ten będzie przechowywany w określonej zmiennej.


Strony instalatora
  • MUI_PAGE_WELCOME
  • MUI_PAGE_LICENSE plik_tekstowy
  • MUI_PAGE_COMPONENTS
  • MUI_PAGE_DIRECTORY
  • MUI_PAGE_STARTMENU ID_strony zmienna
  • MUI_PAGE_INSTFILES
  • MUI_PAGE_FINISH

Strony deinstalatora
  • MUI_UNPAGE_WELCOME
  • MUI_UNPAGE_CONFIRM
  • MUI_UNPAGE_LICENSE plik_tekstowy
  • MUI_UNPAGE_COMPONENTS
  • MUI_UNPAGE_DIRECTORY
  • MUI_UNPAGE_INSTFILES
  • MUI_UNPAGE_FINISH

Wyświetl/Ukryj Ustawienia strony


Ustawienia strony odnoszą się do pojedynczej strony i powinny być ustawiane przed wstawianiem makra strony. Te same ustawienia mogą być użyte zarówno dla instalatora, jak i dla deintalatora. Musisz powtórzyć ustawienia, jeśli chcesz zastosować je dla wielu stron. Przykład:

; Dodaj stronę wyboru katalogu, aby użytkownik mógł określić katalog wtyczek
; Przechowaj katalog w zmiennej $PluginsFolder

Var PLUGINS_FOLDER
!define MUI_DIRECTORYPAGE_VARIABLE $PluginsFolder
!insertmacro MUI_PAGE_DIRECTORY

Wszystkie standardowe teksty interfejsu użytkownika wczytywane są z plików językowych, dla wszystkich obsługiwanych języków NSIS. Musisz więc tylko zdefiniować te teksty, jeśli chcesz zmienić ich domyślne wartości.

Jeśli parametrem jest tekst, który powinien być inny dla każdego z języków, zdefiniuj ciąg znaków języka, używając polecenia LangString i użyj zmiennej $(LangStringName) jako wartości. Dla tekstu licencji w instalacji wielojęzykowej, możesz użyć LicenseLangString. Więcej informacji o instalatorach wielojęzykowych znajdziesz w podręczniku użytkownika.

We wszystkich ustawieniach tekstu, znak (") powinien być poprzedzony znakami modyfikacji w następującej formie: $\"


Wyświetl/Ukryj Ustawienia strony ogólnej


MUI_PAGE_HEADER_TEXT tekst

Tekst wyświetlany w nagłówku strony.

MUI_PAGE_HEADER_SUBTEXT tekst

Podtekst wyświetlany w nagłówku strony.



Wyświetl/Ukryj Ustawienia strony powitalnej


Aby dodać nową linię do dowolnego z poniższych tekstów, użyj \r\n zamiast $\r$\n.

MUI_WELCOMEPAGE_TITLE tytuł

Tekst tytułowy wyświetlany na górze strony.

MUI_WELCOMEPAGE_TITLE_3LINES

Dodatkowe miejsce na obszar tytułu.

MUI_WELCOMEPAGE_TEXT tekst

Tekst wyświetlany na stronie.



Wyświetl/Ukryj Ustawienia strony z licencją użytkownika


MUI_LICENSEPAGE_TEXT_TOP tekst

Tekst wyświetlany na górze strony.

MUI_LICENSEPAGE_TEXT_BOTTOM tekst

Tekst wyświetlany na dole strony.

MUI_LICENSEPAGE_BUTTON tekst_przycisku

Tekst wyświetlany na przycisku 'Zgadzam się'.

MUI_LICENSEPAGE_CHECKBOX

Wyświetla pole wyboru, które użytkownik musi zaznaczyć, aby zaakceptować postanowienia licencji.

MUI_LICENSEPAGE_CHECKBOX_TEXT tekst

Tekst wyświetlany obok pola wyboru zgody z postanowieniami licencji.

MUI_LICENSEPAGE_RADIOBUTTONS

Wyświetla dwa przyciski typu radio, aby użytkownik mógł zaakceptować postanowienia licencji.

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT tekst

Tekst wyświetlany obok pola wyboru potwierdzania postanowień licencji.

MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE tekst

Tekst wyświetlany obok pola wyboru odrzucania postanowień licencji.



Wyświetl/Ukryj Ustawienia strony wyboru komponentów


MUI_COMPONENTSPAGE_TEXT_TOP tekst

Tekst wyświetlany na górze strony.

MUI_COMPONENTSPAGE_TEXT_COMPLIST tekst

Tekst wyświetlany obok listy komponentów do zainstalowania.

MUI_COMPONENTSPAGE_TEXT_INSTTYPE tekst

Tekst wyświetlany obok pola kombinowanego typu instalacji.

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE tekst

Tekst wyświetlany na górze obszaru opisów instalowanych komponentów.

MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO tekst

Tekst wyświetlany w obszarze pola opisów, gdy żadna z sekcji nie jest zaznaczona.



Wyświetl/Ukryj Ustawienia strony wyboru katalogu docelowego


MUI_DIRECTORYPAGE_TEXT_TOP tekst

Tekst wyświetlany na górze strony.

MUI_DIRECTORYPAGE_TEXT_DESTINATION tekst

Tekst wyświetlany na ramce kontrolki katalogu docelowego.

MUI_DIRECTORYPAGE_VARIABLE zmienna

Zmienna, w której przechowywany jest wybrany katalog.
Domyślnie: $INSTDIR

MUI_DIRECTORYPAGE_VERIFYONLEAVE

Nie deaktywuje przycisku 'Dalej', gdy wybrany katalog jest nieprawidłowy. Pozwala jednak na użycie polecenia GetInstDirError w funkcji wyjścia, aby pobrać nieprawidłowy katalog.



Wyświetl/Ukryj Ustawienia strony wyboru katalogu Menu Start


MUI_STARTMENUPAGE_TEXT_TOP tekst

Tekst wyświetlany na górze strony.

MUI_STARTMENUPAGE_TEXT_CHECKBOX tekst

Tekst wyświetlany obok pola wyboru do wyłączania tworzenia katalogów Menu Start.

MUI_STARTMENUPAGE_DEFAULTFOLDER katalog

Domyślny katalog Menu Start.

MUI_STARTMENUPAGE_NODISABLE

Nie wyświetlaj pola wyboru, do wyłączania tworzenia skrótów w Menu Start.

MUI_STARTMENUPAGE_REGISTRY_ROOT klucz root
MUI_STARTMENUPAGE_REGISTRY_KEY klucz
MUI_STARTMENUPAGE_REGISTRY_VALUENAME nazwa_wartości

Klucz rejestru do przechowywania katalogu Menu Start. Strona użyje tych danych, aby zapamiętać preferencje użytkownika. Powinieneś użyć go również w deinstalatorze, aby usunąć katalogi Menu Start. Nie zapomnij usunąć tego klucza podczas deinstalacji.

Dla deinstalatora, użyj makra MUI_STARTMENU_GETFOLDER, aby pobrać katalog Menu Start:

!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0
  Delete "$SMPROGRAMS\$R0\Twój skrót.lnk"


Wyświetl/Ukryj Ustawienia strony instalacji


MUI_INSTFILESPAGE_FINISHHEADER_TEXT tekst

Tekst wyświetlany w nagłówku strony instalacji, gdy instalacja została zakończona (nie będzie wyświetlany, gdy używasz strony końcowej bez MUI_(UN)FINISHPAGE_NOAUTOCLOSE).

MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT tekst

Podtekst wyświetlany w nagłówku strony instalacji, gdy instalacja została zakończona (nie zostanie wyświetlonym, gdy używasz strony końcowej bez MUI_(UN)FINISHPAGE_NOAUTOCLOSE).

MUI_INSTFILESPAGE_ABORTHEADER_TEXT tekst

Tekst wyświetlany w nagłówku strony instalacji, gdy instalacja została przerwana.

MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT tekst

Podtekst wyświetlany w nagłówku strony instalacji, gdy instalacja została przerwana.



Wyświetl/Ukryj Ustawienia strony końcowej


Aby dodać nową linię do dowolnego z poniższych tekstów, użyj \r\n zamiast $\r$\n.

MUI_FINISHPAGE_TITLE tytuł

Tekst tytułowy wyświetlany na górze strony.

MUI_FINISHPAGE_TITLE_3LINES

Dodatkowe miejsce na obszar tytułu.

MUI_FINISHPAGE_TEXT tekst

Tekst wyświetlany na stronie.

MUI_FINISHPAGE_TEXT_LARGE

Dodatkowe miejsce dla obszaru tekstu (jeśli używasz pól wyboru).

MUI_FINISHPAGE_BUTTON tekst

Tekst wyświetlany na przycisku 'Zakończ'.

MUI_FINISHPAGE_CANCEL_ENABLED

Włącz przycisk 'Anuluj', dzięki czemu użytkownik może pominąć opcje wyświetlane na końcowej stronie.

MUI_FINISHPAGE_TEXT_REBOOT tekst

Tekst wyświetlany na końcowej stronie, przy zapytaniu o ponowny rozruch komputera.

MUI_FINISHPAGE_TEXT_REBOOTNOW tekst

Tekst wyświetlany obok przycisku opcji 'Uruchom ponownie teraz'.

MUI_FINISHPAGE_TEXT_REBOOTLATER tekst

Tekst wyświetlany obok przycisku opcji 'Sam uruchomię ponownie komputer później'.

MUI_FINISHPAGE_REBOOTLATER_DEFAULT

Ustawia opcję 'Sam uruchomię ponownie komputer później' opcją domyślną.

MUI_FINISHPAGE_RUN plik_exe

Program, który użytkownik może uruchomić, zaznaczając pole wyboru. Nie musisz wstawiać znaków cudzysłowia w nazwie pliku, jeśli zawiera ona spacje.

MUI_FINISHPAGE_RUN_TEXT tekst

Tekst wyświetlany obok pla wyboru 'Uruchom program'.

MUI_FINISHPAGE_RUN_PARAMETERS parametry

Parametry dla aplikacji do uruchomienia. Nie zapomnij o użyciu znaku modyfikacji $\".

MUI_FINISHPAGE_RUN_NOTCHECKED

Nie zaznaczaj domyślnie pola wyboru 'Uruchom program'

MUI_FINISHPAGE_RUN_FUNCTION nazwa_funkcji

Wywołuje funkcję zamiast wykonania aplikacji (zdefiniuj MUI_FINISHPAGE_RUN bez parametrów). Możesz użyć funkcji do uruchomienia wielu aplikacji lub możesz zmienić nazwę pola wyboru i użyć go do innych celów.

MUI_FINISHPAGE_SHOWREADME plik/adres_url

Plik lub strona internetowa, którą użytkownik może otworzyć, po zaznaczeniu pola wyboru. Nie musisz wstawiać znaków cudzysłowia w nazwie pliku, jeśli zawiera ona spacje.

MUI_FINISHPAGE_SHOWREADME_TEXT tekst

Tekst do wyswietlenia obok pola wyboru 'Pokaż plik Readme'.

MUI_FINISHPAGE_SHOWREADME_NOTCHECKED

Nie zaznaczaj domyślnie pola wyboru 'Pokaż plik Readme'

MUI_FINISHPAGE_SHOWREADME_FUNCTION nazwa_funkcji

Wywołuje funkcję, zamiast wyświetlania pliku (zdefiniuj MUI_FINISHPAGE_SHOWREADME bez parametrów). Możesz użyć funkcji, aby wyświetlić wiele plików lub możesz zmienić nazwę pola wyboru i użyć go do innych celów.

MUI_FINISHPAGE_LINK tekst_łącza

Tekst dla łącza, które użytkownik może kliknąć, aby zobaczyć stronę internetową lub plik.

MUI_FINISHPAGE_LINK_LOCATION plik/adres_url

Strona internetowa lub plik, który użytkownik może wybrać, aby go otworzyć dzięki łączu. Nie musisz wstawiać znaków cudzysłowia w nazwie pliku, jeśli zawiera ona spacje.

MUI_FINISHPAGE_LINK_COLOR (Szesnastkowa wartość koloru: RRGGBB)

Kolor tekstu dla łącza na stronie końcowej.
Domyślnie: 000080

MUI_FINISHPAGE_NOREBOOTSUPPORT

Wyłącza wsparcie dla stron, które umożliwiają użytkownikowi na uruchamianie ponowne komputera. Zdefiniuj tę opcję, aby zachować trochę miejsca, jeśli nie używasz flag /REBOOTOK lub SetRebootFlag.



Wyświetl/Ukryj Ustawienia strony potwierdzenia deinstalacji


MUI_UNCONFIRMPAGE_TEXT_TOP tekst

Tekst wyświetlany na górze strony.

MUI_UNCONFIRMPAGE_TEXT_LOCATION tekst

Tekst wyświetlany obok pola tekstu lokalizacji deinstalacji.



4. Pliki językowe


Wstaw pliki językowe interfejsu nowoczesnego Modern UI dla języków, które chcesz dołączyć.

!insertmacro MUI_LANGUAGE "Polish"

Standardowe pliki językowe NSIS wczytywane są automatycznie, nie powinieneś zatem używać funkcji LoadLanguageFile.



5. Rezerwacja plików


Jeśli używasz kompresji typu Solid, pliki które są potrzebne jeszcze przed instalacją, powinny być przechowywane na górze bloku danych. Dzięki temu instalator jest szybszy. Dołącz polecenie rezerwacji plików przed sekcjami oraz funkcjami:

ReserveFile "ioFile.ini" ; Twoje pliki INI wtyczki InstallOptions
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ; Wtyczka InstallOptions
!insertmacro MUI_RESERVEFILE_LANGDLL ; Okno dialogowe wyboru języka
...


Kod skryptu stron


Niektóre strony pozwalają na wyświetlanie dodatkowych informacji lub mogą przyjmować dane użytkownika. Poniżesz znajdziesz przykładowy kod wykorzystania tej funkcjonalności.


Opisy sekcji na stronie wyboru komponentów


Strona wyboru komponentów nowowczesnego interfejsu użytkownika posiada kontrolkę tekstową, w której wyświetlony może być tekst z opisem poszczególnych komponentów. Pojawia się on po najechaniu kursorem myszki nad danym komponentem. Jeśli nie chcesz widzieć opisów, ustaw opcję MUI_COMPONENTSPAGE_NODESC.

Aby ustawić opis dla sekcji, do polecenia sekcji Section dodany musi być dodatkowy parametr identyfikujacy tę sekcję. Nazwa ta może być użyta do ustawienia opisu sekcji.

Section "Section Nazwa 1" Sekcja1
   ...
SectionEnd

Po zdefiniowaniu sekcji, użyj poniższych makr, aby ustawić opisy tych sekcji:

LangString DESC_Sekcja1 ${LANG_POLISH} "Opis dla sekcji 1."
LangString DESC_Sekcja2 ${LANG_POLISH} "Opis dla sekcji 2."

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${Sekcja1} $(DESC_Sekcja1)
  !insertmacro MUI_DESCRIPTION_TEXT ${Sekcja2} $(DESC_Sekcja2)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

Aby ustawić opisy sekcji w deinstalatorze, użyj makra MUI_UNFUNCTION_DESCRIPTION_BEGIN oraz MUI_UNFUNCTION_DESCRIPTION_END.


Katalog Menu Start


Wstaw kod do zapisu skrótów (używając polecenia CreateShortcut) pomiędzy makra MUI_STARTMENU_WRITE_BEGIN oraz MUI_STARTMENU_WRITE_END:

!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id
; ...utwórz skróty...
!insertmacro MUI_STARTMENU_WRITE_END

ID strony powinien być numerem ID strony, na której użytkownik wybrał katalog dla skrótów, które chcesz zapisać.

Zmienna, która zawiera katalog oraz numer ID strony, ustawiana jest jako parametr makra strony.


Okno dialogowe wyboru języka


Jeśli chcesz, aby instalator wyświetlił okno dialogowe wyboru języka (spójrz na przykład MultiLanguage.nsi (../../Examples/Modern UI/MultiLanguage.nsi)), wstaw do funkcji .onInit makro MUI_LANGDLL_DISPLAY:

Function .onInit

  !insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd

Możesz również użyć tego makra dla deinstalatora, w funkcji un.onInit.


Wyświetl/Ukryj Ustawienia przechowywania wybranego języka w rejestrze


Aby zapamiętać preferencje użytkownika, możesz zdefiniować odpowiedni klucz w rejestrze. Te definicje powinny być ustawione przed wstawieniem makra strony instalacji.

MUI_LANGDLL_REGISTRY_ROOT klucz root
MUI_LANGDLL_REGISTRY_KEY klucz
MUI_LANGDLL_REGISTRY_VALUENAME nazwa_wartości

Klucz rejestru do przechowywania języka. Preferencje użytkownika zostaną zapamiętane. Możesz również użyć tego dla deinstalatora, aby wyświetlić prawidłowy język. Nie zapomnij usunąć tego klucza w deinstalatorze.

W deinstalatorze, wstaw makro MUI_UNGETLANGUAGE w funkcji un.onInit, aby pobrać preferencje języka:

Function un.onInit

  !insertmacro MUI_UNGETLANGUAGE

FunctionEnd


Wyświetl/Ukryj Ustawienia interfejsu okna dialogowego wyboru języka


Aby dostosować interfejs okna dialogowego wyboru języka, użyj tych definicji przed wstawieniem makra MUI_LANGDLL_DISPLAY.

MUI_LANGDLL_WINDOWTITLE tekst

Tekst tytułowy okna dialogowego wyboru języka.

MUI_LANGDLL_INFO tekst

Tekst wyświetlany w oknie dialogowym wyboru języka.

MUI_LANGDLL_ALWAYSSHOW

Zawsze wyświetla okno dialogowe wyboru języka, nawet jeśli język przechowywany był w rejestrze Windows. Język przechowywany w rejestrze zostanie domyślnie zaznaczony.

MUI_LANGDLL_ALLLANGUAGES

Zawsze wyświetla wszystkie dostępne języki i nie filtruje ich ze względu na ich stronę kodową.


Niestandardowe strony


Jeśli chcesz dodać do instalatora niestandardowe strony, możesz wstawić ich polecenia pomiędzy makrami stron. Dokumentacja wtyczki InstallOptions szczegółowo opisuje tworzenie niestandardowych stron przy użyciu wtyczki InstallOptions.

!insertmacro MUI_PAGE_WELCOME
Page custom NazwaFunkcji ; Strona niestandardowa
!insertmacro MUI_PAGE_COMPONENTS
 
; Deinstalator
!insertmacro MUI_UNPAGE_CONFIRM
UninstPage custom un.NazwaFunkcji ; Strona niestandardowa
!insertmacro MUI_UNPAGE_INSTFILES

W funkcji strony użyj makra MUI_HEADER_TEXT, aby ustalić tekst tytułu w nagłówku strony:

LangString PAGE_TITLE ${LANG_POLISH} "Tytuł"
LangString PAGE_SUBTITLE ${LANG_POLISH} "Podtytuł"

Function CustomPageFunction
  !insermacro MUI_HEADER_TEXT $(PAGE_TITLE) $(PAGE_SUBTITLE)
  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioFile.ini"
FuctionEnd

Niestandardowe funkcje


Funkcje interfejsu NSIS, takie jak funkcja .onGUIInit oraz funkcje stron są automatycznie dodawane przez nowoczesny interfejs użytkownika i zapełniane kodem, aby obsłużyć funkcjonalności nowego interfejsu. Jeśli zatem chcesz dodać do nich dodatkowy kod, stwórz niestandardową funkcję, której definicja opierać się będzie na nowoczesnym interfejsie użytkownika.

Przykład:

!define MUI_CUSTOMFUNCTION_GUIINIT MojaFunkcja_GuiInit

Function MojaFunkcja_GuiInit
  ; ...twój kod...
FunctionEnd

Wyświetl/Ukryj Ogólne niestandardowe funkcje


Poniższe definicje powinny być ustawione przed wstawieniem makr języka.

MUI_CUSTOMFUNCTION_GUIINIT funkcja
MUI_CUSTOMFUNCTION_UNGUIINIT funkcja
MUI_CUSTOMFUNCTION_ABORT funkcja
MUI_CUSTOMFUNCTION_UNABORT funkcja
MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION funkcja
MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION funkcja

Funkcje wykrywające ruch myszki nad kontrolką dostępne są tylko wtedy, gdy używane są makra opisowe (MUI_FUNCTION_DESCRIPTION_BEGIN). Jeśli opisy komponentów do zainstalowania nie są używane, musisz użyć funkcji .onMouseOverSection oraz un.onMouseOverSection.



Wyświetl/Ukryj Niestandardowe funkcje stron


Te definicje powinny być ustawione przed wstawieniem makra strony.

MUI_PAGE_CUSTOMFUNCTION_PRE funkcja
MUI_PAGE_CUSTOMFUNCTION_SHOW funkcja
MUI_PAGE_CUSTOMFUNCTION_LEAVE funkcja

Uwagi:

W funkcji poprzedzającej (PRE) strony powitalnej i końcowej możesz zapisać dane do pliku INI wtyczki InstallOptions (ioSpecial.ini).

W funkcji wyświetlającej (SHOW) strony powitalnej, końcowej oraz strony Menu Start, zmienna $MUI_HWND zawiera uchwyt HWND wewnętrznego okna dialogowego.



Wyświetl/Ukryj Niestandardowe funkcje strony powitalnej/końcowej


Te definicje powinny być ustawione przed pojedynczą stroną powitalną lub końcową.

MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT funkcja

Ta funkcja inicjująca wywoływana jest zanim plik INI wtyczki InstallOptions jest zapisywany, więc możesz w niej zainicjować dowolne zmienne używane w ustawieniach strony.


Przykładowe skrypty


  • Podstawowy skrypt instalatora: Basic.nsi ("Examples/Modern UI/Basic.nsi")
  • Strona powitalna/końcowa: WelcomeFinish.nsi ("Examples/Modern UI/WelcomeFinish.nsi")
  • Instalator wielojęzykowy: MultiLanguage.nsi ("Examples/Modern UI/MultiLanguage.nsi")
  • Obrazek nagłówka: HeaderBitmap.nsi ("Examples/Modern UI/HeaderBitmap.nsi")
  • Niestandardowe strony: InstallOptions.nsi ("Examples/Modern UI/InstallOptions.nsi")
  • Strona wyboru katalogu Menu Start: StartMenu.nsi ("Examples/Modern UI/StartMenu.nsi")

Historia wersji


Aktualna wersja: 1.8 - August 9, 2007

  • Uses the new language files
  • Updated documentation
  • Although MUI_DIRECTORYPAGE_BGCOLOR and MUI_STARTMENUPAGE_BGCOLOR are documented as interface setttings that apply to every directory page or Start Menu folder page, they were actually implemented as page specific settings. They have been changed to interface settings.
  • MUI_LANGDLL_DISPLAY now also reads a previously saved language from the registry if the installation is silent.
  • InstallOptions macros have been moved to a separate header file (InstallOptions.nsh). The MUI_INSTALLOPTIONS_* macros are still provided for backwards compatibility and insert the equalivent INSTALLOPTIONS_* macros.
  • Added MUI_CUSTOMFUNCTION_MOUSEOVERSECTION

Historia wersji Starsze wydania


1.78 - June 8, 2007

  • Added MUI_STARTMENUPAGE_BGCOLOR
  • Added MUI_DIRECTORYPAGE_BGCOLOR
  • Added MUI_LANGDLL_ALLLANGUAGES

1.77 - April 27, 2007

  • Added MUI_FINISHPAGE_CANCEL_ENABLED
  • Added MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  • Block unsupported languages in the language selection dialog
  • Cancel button no longer enabled by default on the finish page
  • Reduced flicker caused by MUI_HEADER_TRANSPARENT_TEXT

1.76 - September 23, 2006

  • Added MUI_ABORTWARNING_CANCEL_DEFAULT

1.75 - April 1, 2006

  • Added show function for the start menu page
  • Added MUI_HEADER_TRANSPARENT_TEXT for transparent header texts

1.74 - September 4, 2005

  • Fixed compile error when checkboxes are used on multiple finish page pages

1.73 - August 6, 2005

  • The checkboxes to run an application or show a Readme file can now also be used on an uninstaller finish pages or multiple finish pages

1.72 - November 27, 2004

  • Fixed state of Finish page Cancel button when both an installer and uninstaller page is included

1.71 - October 14, 2004

  • The selected language is only stored in the registry when installation was successful

1.70 - February 6, 2004

  • Improved documentation
  • New Init custom function for Welcome and Finish page

1.69 - January 7, 2004

  • All uninstaller pages work without installer pages
  • Fixed top text on uninstaller license page

1.68 - November 24, 2003

  • New settings for extra space for title and text on Welcome and Finish page.
  • Improved handling of verbose settings. Define MUI_VERBOSE the set the Modern UI verbose level (1-4).
  • Language file string for uninstaller reboot information
  • Setting for folder validation in leave function
  • Fixed finish page text settings for multiple pages

1.67 - November 18, 2003

  • Support for uninstaller Welcome pages and Finish pages
  • Improved and changed text settings
  • ID for Start Menu Folder pages, easier to use multiple pages
  • Renamed a few settings
  • Default header image
  • Support for uninstaller abort warning
  • Setting for 3 line text on Welcome and Finish page (NOTE: New settings have been introduced in version 1.68)
  • Langauge file backwards compatibility: English for missing strings
  • Support for different uninstaller header image
  • Language selection dialog not displayed if installer is silent
  • Cancel button on Finish page when there are options
  • Full RTL support

1.66 - October 7, 2003

  • New system for page settings and custom pages
  • Support for uninstaller components page
  • Support for multiple pages of the same type
  • New position for interface settings
  • Changed macro and setting names
  • Updated langauge system, new language files and settings
  • Removed MUI_BRANDINGTEXT. You can use the standard BrandingText instruction.
  • Removed MUI_PRODUCT and MUI VERSION. You can use the standard Name instruction.

1.65 - July 16, 2003

  • New page configuration system, no different system for installers with custom pages
  • Default windows color for the license text background
  • Example script updates (new format, user variables)
  • Improved registry storage for Start Menu folder
  • ReserveFile macro for StartMenu plug-in
  • Option to always show the language selection dialog (even if a language has been stored in the registry)
  • Checkboxes on Finish page can be used to call a function
  • Support for custom leave functions for Start Menu Folder, Welcome and Finish pages
  • Support for a link on the Finish page
  • New macro to get Start Menu folder in uninstaller
  • Options to disable bitmap stretching
  • Components page description box info text: always displayed when mouse is outside box, disabled style

1.64 - April 27, 2003

  • Support for license page with checkbox or radiobuttons to let the user accept the agreement or not
  • Macros for finish headers don't have to be inserted anymore
  • Language preference stored when installation has completed, no problems anymore when the users selects the wrong language
  • Header text for aborted installation
  • New macros: get language for uninstaller, delete shortcuts
  • Language specific fonts
  • Welcome/Finish page INI files can be modified in pre functions
  • More texts can be customized

1.63 - March 9, 2003

  • Support for a bitmap in the wizard header
  • New defines to change the components page interface
  • MUI_SYSTEM inserted automatically
  • Single macro for language selection dialog
  • Removed page description in window title
  • Easier to customize resource files
  • New system for custom functions
  • Start Menu folder registry key automatically written
  • New InstallOptions macros that do not remove the return value from the stack
  • Support for custom pages before the finish page
  • Renamed Start Menu page defines
  • 'Do not create shortcuts' checkbox can be removed
  • 'MS Shell Dlg' font for header title
  • RTL support
  • Documentation updates
  • Minor fixes

1.62 - February 2, 2003

  • New language strings for Finish page
  • Possibility to let a Modern UI Function call your own function
  • No problems anymore when using both 'Run program' and 'Show Readme' on the Finish page
  • Default state of checkboxes on the finish page can be changed
  • Welcome / Finish page compatible with custom DPI settings
  • Converted Install Options INI files to use dialog units
  • More ReserveFile macros (NOTE: Some of these macros have been removed in later versions)
  • Background color can be changed with a define
  • Support for multilingual branding texts
  • Start Menu / Finish page window titles also work when using custom page commands
  • Language files should be inserted after inserting the MUI_SYSTEM macro (NOTE: The MUI_SYSTEM macro has been removed in version 1.63)
  • Define MUI_MANUALVERBOSE if you don't want the Modern UI to change the verbose settings during compilation (NOTE: This setting has been changed in version 1.68)

1.61 - December 5, 2002

  • modern3.exe UI without description area (NOTE: This setting has been changed in version 1.63)
  • Added define to show uninstall confirm page
  • Added language string for finish page title and continue to uninstall
  • Define for parameters for the application to run on the finish page
  • Minor fixes

1.6 - November 18, 2002

  • Welcome / Finish page
  • Automatic ask for reboot on finish page
  • Create no shortcut option on the Start Menu Folder selection page
  • Customizing GUIInit functions easier
  • Minor font / UI changes

1.5 - November 11, 2002

  • New language file format
  • Language strings can be changed in the script without editing languagefiles
  • Start Menu Folder selection page
  • 'Click Next to continue' and 'Click Install to start the installation' texts automatically change to the page order
  • Install Options macros updated. MUI_INSTALLOPTIONS_DISPLAY is the standard macro now. Use MUI_INSTALLOPTIONS_INITDIALOG and MUI_INSTALLOPTIONS_SHOW if you want to customize dialog controls.
  • No more writing window titles & abort warnings to Install Options INI Files
  • Compatible with updated paging system
  • Renamed macros and defines
  • Minor fixes

1.4 - November 4, 2002

  • Uses new NSIS Page command
  • Macro System updates (smaller)
  • Macro System a lot easier
  • Modern UI Language Files load NLF language files
  • Renamed macros and defines

1.3 - October 27, 2002

  • Easier macro system for basic scripts
  • New MultiLanguage system using Modern UI Language Files
  • New directory structure (header/language files in Contrib\Modern UI)
  • Small bugfixes & typo corrections
  • SetPage function should be set using defines
  • Different NextPage/PrevPage/FinishHeader macros for install/uninstall (NOTE: These macros have been removed in version 1.4)
  • Interface settings can be definend (for example, MUI_ICON), no parameters for MUI_INTERFACE anymore
  • New Install Options macros to read/write IO INI file value

1.21 - September 30, 2002

  • Temp vars set in Modern UI header
  • Currentpage & Install Options vars should be set using parameters of the MUI_INTERFACE and MUI_INSTALLOPTIONS macros (NOTE: The MUI_INTERFACE macro has been removed in version 1.3)
  • MultiLanguage.nsi uses the new language strings

1.2 - September 22, 2002

(NOTE: All macros mentioned here have been removed in version 1.4)

  • Lots of macro system updates & fixes
  • InstallOptions support in macro system
  • Added Modern UI + InstallOptions example (InstallOptions.nsi)
  • MUI_NEXTPAGE_OUTER integrated in MUI_NEXTPAGE
  • No hard-coded function names anymore (you should give MUI_PREVPAGE a parameter with the set page function name (for example, MUI_PREVPAGE SetPage)
  • Examples use ReserveFile for faster startup

1.19 - Semtember 19, 2002

  • Renamed some macros
  • Custom code can be used between page start/stop macros (NOTE: These macros have been removed in version 1.4)

1.18 - Semtember 13, 2002

  • Uses the new Sendmessage string option

1.17 - Semtember 10, 2002

  • Win9x font weight bug fixed (font of title in white rect)

1.16 - Semtember 6, 2002

  • Change text 'Scroll down' on license page to 'Press Page Down', because the RichEdit control has focus by default now

1.15 - Semtember 4, 2002

  • Multilanguage example: changed LangDialog to LangDLL::LangDialog (using the DLL name is now required) (NOTE: A new macro for the language selection dialog has been introduced in version 1.63)

1.14 - Semtember 3, 2002

  • Small grammar fix (thanks eccles)
  • UI files updated by Justin for better RichEdit usage

1.13 - Semtember 2, 2002

  • Added 16 color icons

1.12 - August 30, 2002

  • Verifying installer & Unpacking data dialog has no titlebar anymore

1.11 - August 29, 2002

  • Finish header for uninstaller can also be set using MUI_FINISHHEADER (NOTE: The MUI_FINISHHEADER macro has been removed in version 1.64)

1.1 - August 29, 2002

(NOTE: All settings mentioned here do not exist anymore)

  • Header file with macros, it's now very easy to use the UI in your scripts
  • Added the modern2.exe UI, with an other location of the Description frame, for installers with a lot of subsections (thanks rainwater)
  • Updated example scripts
  • Added Multilanguage.nsi example (Multilanguage & LangDLL)
  • Fixed background color issue with some custom XP themes
  • Removed WS_VISIBLE from black rect for inner dialog (fixes display issues)
  • Changed size of description area
  • Example script: Added instructions for the user on the Description frame
  • Auto sizing branding text
  • Used modern.bmp for the checks (thanks rainwater)
  • Using the new NSIS version, descriptions work using the keyboard and you can give descriptions to subsections
  • Correct font size using High-DPI fonts

1.0 - August 26, 2002

  • Initial release


Autorzy


Stworzył: Joost Verburg.

Ikonki zaprojektował: Nikos Adamamas, aka adni18.

Podziękowania dla Amir Szekely, aka KiCHiK, za jego pracę nad NSIS.


Licencja


Nowoczesny interfejs użytkownika Modern UI rozprowadzany jest na licencji zlib/libpng.


Postanowienia licencji

Copyright © 2002-2009 Joost Verburg

This software is provided 'as-is', without any express or implied warranty. In no event will the
authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial
applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the
    original software. If you use this software in a product, an acknowledgment in the product
    documentation would	be appreciated but is not required.
2. Altered versions must be plainly marked as such, and must not be misrepresented as being the 
    original software.
3. This notice may not be removed or altered from any distribution.