; ----------------------------------------------------------------------------
;
; AutoIt-Version: v3.1.1.133 (beta)
;
; Programmname:   Installations-Assistent
; Version:        1.00
;
; Autor:          Manuel Kübler
; Mail:           mk-software@gmx.de
;
; Skript Function:
;    ...
;
; ----------------------------------------------------------------------------


; ============================================================================
; ----------------------------------------
; AutoIT Options
; ----------------------------------------
Opt("GUIOnEventMode", 1)  ; Macht Dinge bei einem so großen Skript wesentlich einfacher


; ----------------------------------------
; Include
; ----------------------------------------
#include <GUIConstants.au3>


; ----------------------------------------
; Variablen-Deklarationen
; ----------------------------------------
Global $PROGRAMM_NAME = "Galenda" ; Galenda ist nur ein Beispiel ; 
Global $PROGRAMM_VERSION = "2.00" ; 2.00 ist auch nur ein Beispiel ; 
; ============================================================================


; ============================================================================
; ----------------------------------------
; GUIs
; ----------------------------------------
; ----------------------------------------------------------------------------

; ----------------------------------------
; StartGUI
; ----------------------------------------
$GUI_Setup_Start = GUICreate($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", 500, 370)
GUISetOnEvent(-3, "_setup_close")

$id_label1 = GUICtrlCreateLabel("Willkommen zum " & $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & @CRLF & "Installations-Assistent", 180, 20, 260, 100)
GUICtrlSetFont(-3, 14, 400)
$id_label2 = GUICtrlCreateLabel("Willkommen im Installationsprogramm für " & $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & ". Dieses Programm installiert " & $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & " auf Ihrem Computer." & @CRLF & @CRLF & "Wir empfehlen nachdrücklich, vor Ausführen dieses Installationsprogramms alle Windows-Programme zu beenden." & @CRLF & @CRLF & "Auf Abbrechen klicken, um die Installation zu beenden und alle laufenden Programme zu schließen. Auf Weiter klicken, um mit dem Installationsprogramm zu beginnen.", 180, 80, 260, 160)
$id_pic1 = GUICtrlCreatePic("modern-wizard.bmp", 0, 0, 164, 314)
$id_label3 = GUICtrlCreateLabel("AutoIT Installer v1.0", 20, 330, 260, 160)
GUICtrlsetState(-1, $GUI_DISABLE)
$id_button1 = GUICtrlCreateButton("&Weiter >", 274, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_next")
$id_button2 = GUICtrlCreateButton("&Abbrechen", 387, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_close")

; ----------------------------------------
; StartGUI anzeigen
; ----------------------------------------
GUISetState(@SW_SHOW, $GUI_Setup_Start)
; ----------------------------------------------------------------------------

; ----------------------------------------
; LicenseGUI
; ----------------------------------------
$GUI_Setup_License = GUICreate($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", 500, 370)
GUISetOnEvent(-3, "_setup_close")

$id_label4 = GUICtrlCreateLabel("Lizenzvereinbarung", 20, 10, 200, 40)
GUICtrlSetFont(-1, 14, 100)
$id_label5 = GUICtrlCreateLabel("Bitte lesen Sie die nachfolgende Lizenzvereinbarung sorgfältig durch.", 20, 40, 400, 40)
$id_edit1 = GUICtrlCreateEdit(FileRead("license.txt"), 20, 70, 460, 190, $WS_VSCROLL)
$id_label6 = GUICtrlCreateLabel('Sind Sie mit allen Bedingungen der Lizenzvereinbarung einverstanden? Wenn Sie "Abbrechen" wählen, wird Setup beendet. Um O&O BlueCon XXL zu installieren, müssen Sie die Lizenzvereinbarung akzeptieren.', 20, 274, 400, 40)
$id_label7 = GUICtrlCreateLabel("AutoIT Installer v1.0", 20, 330, 260, 160)
GUICtrlsetState(-1, $GUI_DISABLE)
$id_button3 = GUICtrlCreateButton("< &Zurück", 161, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_back")
$id_button4 = GUICtrlCreateButton("&Ja", 274, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_agree")
$id_button5 = GUICtrlCreateButton("&Abbrechen", 387, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_close")

; ----------------------------------------
; LicenseGUI anzeigen
; ----------------------------------------
GUISetState( @SW_SHOW, $GUI_Setup_License)
; ----------------------------------------------------------------------------

; ----------------------------------------
; FolderGUI
; ----------------------------------------
$GUI_Setup_Folder = GUICreate($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", 500, 370)
GUISetOnEvent(-3, "_setup_close")

$id_label8 = GUICtrlCreateLabel("Zielpfad wählen", 20, 10, 200, 40)
GUICtrlSetFont(-1, 14, 100)
$id_label9 = GUICtrlCreateLabel("Wählen Sie den Ordner aus, in den das Programm installiert werden soll." & @CRLF & @CRLF & 'Setup installiert ' &$PROGRAMM_NAME & " " & $PROGRAMM_VERSION & ' in den folgenden Ordner.' & @CRLF & @CRLF & 'Klicken Sie auf "Weiter", um in diesen Ordner zu installieren. Um in einen anderen Ordner zu installieren, klicken Sie auf "Durchsuchen" und wählen Sie einen anderen Ordner.', 20, 40, 400, 100)
GuiCtrlCreateGroup("Zielordner", 20, 257, 460, 60)
$id_label10 = GUICtrlCreateLabel("", 30, 285, 200, 20)
$id_button6 = GUICtrlCreateButton("Durchsuchen", 370, 275, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_search")
$id_label11 = GUICtrlCreateLabel("AutoIT Installer v1.0", 20, 330, 260, 160)
GUICtrlsetState(-1, $GUI_DISABLE)
$id_button7 = GUICtrlCreateButton("< &Zurück", 161, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_back")
$id_button8 = GUICtrlCreateButton("&Weiter >", 274, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_next")
$id_button9 = GUICtrlCreateButton("&Abbrechen", 387, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_close")

; ----------------------------------------
; FolderGUI anzeigen
; ----------------------------------------
GUISetState(@SW_SHOW, $GUI_Setup_Folder)
; ----------------------------------------------------------------------------

; ----------------------------------------
; InstallGUI
; ----------------------------------------
$GUI_Setup_Install = GUICreate($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", 500, 370)
GUISetOnEvent(-3, "_setup_close")

$id_label12 = GUICtrlCreateLabel("Installiere " & $PROGRAMM_NAME & " " & $PROGRAMM_VERSION, 20, 10, 200, 40)
GUICtrlSetFont(-3, 14, 100)
GuiCtrlCreateProgress(20, 80, 460, 20)
GuiCtrlSetData(-1, 60)
$id_label13 = GUICtrlCreateLabel("AutoIT Installer v1.0", 20, 330, 260, 160)
GUICtrlsetState(-1, $GUI_DISABLE)
$id_button10 = GUICtrlCreateButton("&Abbrechen", 387, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_close")


; ----------------------------------------
; InstallGUI anzeigen
; ----------------------------------------
GUISetState( @SW_SHOW, $GUI_Setup_Install)
; ----------------------------------------------------------------------------

; ----------------------------------------
; EndGUI
; ----------------------------------------
$GUI_Setup_End = GUICreate($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", 500, 370)
GUISetOnEvent(-3, "_setup_close")

$id_label14 = GUICtrlCreateLabel("Die Installation von " & $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & @CRLF & "wird abgeschlossen", 180, 20, 280, 100)
GUICtrlSetFont(-3, 14, 400)
$id_label15 = GUICtrlCreateLabel($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & " wurde auf Ihrem Computer installiert." & @CRLF & @CRLF & 'Klicken Sie auf "Fertig stellen", um den Installations-Assistenten zu schließen.', 180, 80, 260, 160)
GUICtrlCreateCheckbox($PROGRAMM_NAME & " " & $PROGRAMM_VERSION & " ausführen", 180, 150, 140, 20)
GUICtrlSetState(-3, $GUI_CHECKED) ; $GUI_UNCHECKED ; $GUI_CHECKED
$id_pic1 = GUICtrlCreatePic("modern-wizard.bmp", 0, 0, 164, 314)
$id_label6 = GUICtrlCreateLabel("AutoIT Installer v1.0", 20, 330, 260, 160)
GUICtrlsetState(-1, $GUI_DISABLE)
$id_button11 = GUICtrlCreateButton("&Fertg stellen", 274, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_ready")
$id_button12 = GUICtrlCreateButton("&Abbrechen", 387, 327, 100, 30)
GUICtrlSetOnEvent(-1, "_setup_close")

; ----------------------------------------
; EndGUI anzeigen
; ----------------------------------------
GUISetState(@SW_SHOW, $GUI_Setup_End)
; ----------------------------------------------------------------------------

; ----------------------------------------
; Buttons aktivieren
; ----------------------------------------
Func _button_enablen()
	
	GUICtrlSetState($id_button1,  $GUI_ENABLE)
	GUICtrlSetState($id_button2,  $GUI_ENABLE)
	GUICtrlSetState($id_button3,  $GUI_ENABLE)
	GUICtrlSetState($id_button4,  $GUI_ENABLE)
	GUICtrlSetState($id_button5,  $GUI_ENABLE)
	GUICtrlSetState($id_button6,  $GUI_ENABLE)
	GUICtrlSetState($id_button8,  $GUI_ENABLE)
	GUICtrlSetState($id_button9,  $GUI_ENABLE)
	GUICtrlSetState($id_button10, $GUI_ENABLE)
	GUICtrlSetState($id_button11, $GUI_ENABLE)
	GUICtrlSetState($id_button12, $GUI_ENABLE)

EndFunc   ;==>_button_enablen

; ----------------------------------------
; Buttons deaktivieren
; ----------------------------------------
Func _button_disablen()
	
	GUICtrlSetState($id_button1,  $GUI_DISABLE)
	GUICtrlSetState($id_button2,  $GUI_DISABLE)
	GUICtrlSetState($id_button3,  $GUI_DISABLE)
	GUICtrlSetState($id_button4,  $GUI_DISABLE)
	GUICtrlSetState($id_button5,  $GUI_DISABLE)
	GUICtrlSetState($id_button6,  $GUI_DISABLE)
	GUICtrlSetState($id_button8,  $GUI_DISABLE)
	GUICtrlSetState($id_button9,  $GUI_DISABLE)
	GUICtrlSetState($id_button10, $GUI_DISABLE)
	GUICtrlSetState($id_button11, $GUI_DISABLE)
	GUICtrlSetState($id_button12, $GUI_DISABLE)

EndFunc   ;==>_button_disablen
; ============================================================================


; ============================================================================
; ----------------------------------------
; Funktionen
; ----------------------------------------
; ----------------------------------------------------------------------------

; ----------------------------------------
; StartGUI
; ----------------------------------------
; Weiter >
Func _setup_next()
	
	; Verstecke StartGUI und aktiviere LicenseGUI
	MsgBox(320, "Weiter >", "Diese Schaltfläche hat keine Funktion.")
	
EndFunc   ;==>_setup_next
; ----------------------------------------------------------------------------

; ----------------------------------------
; LicenseGUI
; ----------------------------------------
; < Zurück
Func _setup_back()
	
	; Verstecke LicenseGUI und aktiviere StartGUI
	MsgBox(320, "Zurück", "Diese Schaltfläche hat keine Funktion.")
	
EndFunc   ;==>_setup_back

; Ja
Func _setup_agree()
	
	; Verstecke LicenseGUI und aktiviere FolderGUI
	MsgBox(320, "Ja", "Diese Schaltfläche hat keine Funktion.")
	
EndFunc   ;==>_setup_agree
; ----------------------------------------------------------------------------

; ----------------------------------------
; FolderGUI
; ----------------------------------------
; Durchsuchen
Func _setup_search()
	
	$target = FileSelectFolder("Ordner auswählen", @ProgramFilesDir, 5)
	
EndFunc   ;==>_setup_search

; < Zurück
Func _setup_back()
	
	; Verstecke FolderGUI und aktiviere InstallGUI
	MsgBox(320, "Zurück", "Diese Schaltfläche hat keine Funktion.")
	
EndFunc   ;==>_setup_back

; Weiter >
Func _setup_next()
	
	; Verstecke FolderGUI und aktiviere LicenseGUI
	MsgBox(320, "Weiter >", "Diese Schaltfläche hat keine Funktion.")
	
EndFunc   ;==>_setup_next
; ----------------------------------------------------------------------------

; ----------------------------------------
; InstallGUI
; ----------------------------------------

; siehe Abbrechen

; ----------------------------------------------------------------------------

; ----------------------------------------
; EndGUI
; ----------------------------------------
; Fertig stellen
Func _setup_ready()
	
	Exit
	
EndFunc   ;==>_setup_ready
; ----------------------------------------------------------------------------

; ----------------------------------------
; Abbrechen
; ----------------------------------------
; Abbrechen
Func _setup_close()
	
	_button_disablen()
	
	If MsgBox(52, $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", "Möchten Sie das " & $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup wirklich verlassen?") = 6 Then
		MsgBox(64, $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup", $PROGRAMM_NAME & " " & $PROGRAMM_VERSION & "-Setup wurde abgebrochen." & @CRLF & @CRLF & @CRLF & "Um die Installation später abzuschließen, führen Sie Setup erneut aus.")
		Exit
	Else
		_button_enablen()
	EndIf
	
EndFunc   ;==>_setup_close
; ============================================================================