#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author:         Xenon

 Script Function:   Changes the settings for the ScreenLock script.

#ce ----------------------------------------------------------------------------


#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <Process.au3>

; Variablen
Global $sSettingsIni = @ScriptDir & "\Settings.ini"
Global $nColor = Dec(StringReplace(IniRead ($sSettingsIni, "ScreenLock", "Color", "0x00FF00"), "0x", ""))
Global $nTempColor = 0
Global $nTransparency = IniRead ($sSettingsIni, "ScreenLock", "Transparency", 125)
Global $nCirclesPerRow = IniRead ($sSettingsIni, "ScreenLock", "Circles", 3)
Global $sCode = IniRead ($sSettingsIni, "ScreenLock", "Code", "")
#Region ### GUI

$hGUI = GUICreate("ScreenLock - Optionen", 553, 492, 192, 124)
$hLabel1 = GUICtrlCreateLabel("Transparenz des Sperrbildschirms:", 16, 40, 198, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$hTransparency = GUICtrlCreateSlider(40, 72, 425, 41)
GUICtrlSetLimit(-1, 255, 1)
GUICtrlSetData(-1, $nTransparency)
$hLabel2 = GUICtrlCreateLabel("Transparent", 24, 120, 61, 17)
$hLabel3 = GUICtrlCreateLabel("Nicht transparent", 416, 120, 85, 17)
$hLabel4 = GUICtrlCreateLabel("Muster:", 16, 160, 46, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$hColor = GUICtrlCreateButton("Farbe ändern", 325, 250, 129, 33)
$hCode = GUICtrlCreateButton("Muster ändern", 325, 315, 129, 33)
$hLabel5 = GUICtrlCreateLabel ("Anzahl der Kreise je Reihe bzw. Spalte:", 20, 200)
$hCircles = GUICtrlCreateSlider (210, 197, 250, 30)
GUICtrlSetLimit(-1, 7, 2)
GUICtrlSetData(-1, $nCirclesPerRow)
$hLabel6 = GUICtrlCreateLabel (GUICtrlRead($hCircles), 470, 200)
$hLabel7 = GUICtrlCreateLabel("Farbe der Kreise:", 20, 260)
$hLabel8 = GUICtrlCreateLabel("Muster:", 20, 320)
$hSave = GUICtrlCreateButton("OK", 145, 432, 121, 33)
$hExit = GUICtrlCreateButton("Abbrechen", 275, 432, 121, 33)
$hShowColor = GUICtrlCreateGraphic(150, 255, 150, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion


GUICtrlSetBkColor($hShowColor, $nColor)
GUICtrlSetData ($hTransparency, $nTransparency)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $hExit
			Exit
		Case $hColor
			; Farbe wählen
			$nTempColor = _ChooseColor (2, $nColor, 2, $hGUI)
			If $nTempColor <> -1 And $nTempColor <> 0x000000 Then
				$nColor = $nTempColor
				GUICtrlSetBkColor($hShowColor, $nColor)
			EndIf
		Case $hCode

			IniWrite ($sSettingsIni, "ScreenLockSettings", "Color", "0x" & Hex($nColor, 6))
			IniWrite ($sSettingsIni, "ScreenLockSettings", "Transparency", GUICtrlRead($hTransparency))
			IniWrite ($sSettingsIni, "ScreenLockSettings", "Circles", GUICtrlRead($hCircles))

			If FileExists (@ScriptDir & "\ScreenLock.au3") Then
				_RunDos (@ScriptDir & "\ScreenLock.au3 ChangeCode")
			ElseIf FileExists (@ScriptDir & "\ScreenLock.exe") Then
				Run (@ScriptDir & "\ScreenLock.exe ChangeCode")
			Else
				MsgBox (16, "ScreenLock", "Es wurde im Skriptverzeichnis keine Datei" & @CRLF & "'ScreenLock.au3' bzw. 'ScreenLock.exe'" & @CRLF & "gefunden. Muster ändern nicht möglich!", 0, $hGUI)
			EndIf

			$sCode = IniRead ($sSettingsIni, "ScreenLockSettings", "Code", "")

		Case $hSave
			If $sCode = "" Then
				MsgBox (16, "ScreenLock", "Es wurde kein Code angegeben!", 0, $hGUI)
			Else
				IniWrite ($sSettingsIni, "ScreenLock", "Color", "0x" & Hex($nColor, 6))
				IniWrite ($sSettingsIni, "ScreenLock", "Transparency", GUICtrlRead($hTransparency))
				IniWrite ($sSettingsIni, "ScreenLock", "Circles", GUICtrlRead($hCircles))
				IniWrite ($sSettingsIni, "ScreenLock", "Code", $sCode)
				Exit
			EndIf

		Case $hCircles
			GUICtrlSetData ($hLabel6, GUICtrlRead($hCircles))

	EndSwitch
WEnd






