
; ================================================================================
;					 Gestion de la Fenêtre de Configuration
; ================================================================================
ConfigWindow:
{
	; l'ini est chargé automatiquement => s_FWIniFile
	s_ListTempCat := ini_getAllValues(s_FWIniFile,"CATEGORIES")
	s_ListTempLicense := ini_getAllValues(s_FWIniFile,"LICENSES")
	s_ListTempLang := ini_getAllValues(s_FWIniFile,"LANGUAGES")
	s_ListTempBranch := ini_getAllValues(s_FWIniFile,"BRANCHES")
	; Définition de la GUI
	Gui, 2:+owner1 -SysMenu
	Gui, +Disabled
	Gui, 2:Add, Button, x6 y252 w310 h30 vb_ConfigSave gConfigSave, Enregistrer les préférences et Quitter
	Gui, 2:Add, Button, x326 y252 w80 h30 vb_ConfigClose gConfigClose, Annuler
	Gui, 2:Add, Tab, x6 y2 w400 h240 , Général|Catégories|Licences|Langues|Branches
	Gui, 2:Tab, Général
	{
		Gui, 2:Add, Text, x16 y32 w380 h20 , Dossier contenant les utilitaires du pack de portabilisation :
		Gui, 2:Add, Edit, x16 y52 w280 h20 vp_PackFolder, %p_FramaDevDir%
		Gui, 2:Add, Button, x296 y52 w100 h20 vb_SPF gSelectPackFolder, Parcourir ...
		Gui, 2:Add, Text, x16 y92 w380 h20 , Chemin vers l'éditeur de texte :
		Gui, 2:Add, Edit, x16 y112 w280 h20 vp_EditorPath, %p_FramaEditor%
		Gui, 2:Add, Button, x296 y112 w100 h20 vb_SE gSelectEditor, Parcourir ...
		Gui, 2:Add, Text, x16 y152 w380 h20 , Chemin vers le compilateur :
		Gui, 2:Add, Edit, x16 y172 w280 h20 vp_CompilerPath, %p_FramaCompiler%
		Gui, 2:Add, Button, x296 y172 w100 h20 vb_SC gSelectCompiler, Parcourir ...
		Gui, 2:Add, Text, x16 y202 w380 h30 , Note : Les chemins seront automatiquement convertis en relatif par rapport à l'emplacement de FramaWizard.
	}
	Gui, 2:Tab, Catégories
	{
		Gui, 2:Add, Text, x16 y32 w380 h20 , Vous pouvez ajouter`, supprimer ou modifier les catégories ci-dessous.
		Gui, 2:Add, Edit, x16 y62 w380 h170 vs_NewCatList, %s_ListTempCat%
	}
	Gui, 2:Tab, Licences
	{
		Gui, 2:Add, Text, x16 y32 w380 h20 , Vous pouvez ajouter`, supprimer ou modifier les Licences ci-dessous.
		Gui, 2:Add, Edit, x16 y62 w380 h170 vs_NewLicList, %s_ListTempLicense%
	}
	Gui, 2:Tab, Langues
	{
		Gui, 2:Add, Text, x16 y32 w380 h20 , Vous pouvez ajouter`, supprimer ou modifier les langues ci-dessous.
		Gui, 2:Add, Edit, x16 y62 w380 h170 vs_NewLngList, %s_ListTempLang%
	}
	Gui, 2:Tab, Branches
	{
		Gui, 2:Add, Text, x16 y32 w380 h20 , Vous pouvez ajouter`, supprimer ou modifier les branches ci-dessous.
		Gui, 2:Add, Edit, x16 y62 w380 h170 vs_NewBchList, %s_ListTempBranch%
	}
	; Generated using SmartGUI Creator 4.0
	Gui, 2:Show, Center h290 w412, Préférences
Return
}

SelectPackFolder:
{
	Gui +OwnDialogs  ; Désactive la possibilité d'interagir avec la GUI principale
	FileSelectFolder, p_PackFolder, %A_ScriptDir%, 0, Sélectionnez le dossier contenant les utilitaires du pack de portabilisation
	GuiControl, 2:, p_PackFolder, %p_PackFolder%
Return
}

SelectEditor:
{
	Gui +OwnDialogs  ; Désactive la possibilité d'interagir avec la GUI principale
	FileSelectFile, p_EditorPath, 1, %A_ScriptDir%, Sélectionnez l'éditeur à utiliser pour les fichiers NSIS, Exécutables (*.exe)
	SplitPath, p_EditorPath, f_EditorExe
	p_EditorPath := CalcrelPath(A_ScriptDir, p_EditorPath) . f_EditorExe
	GuiControl, 2:, p_EditorPath, %p_EditorPath%
Return
}

SelectCompiler:
{
	Gui +OwnDialogs  ; Désactive la possibilité d'interagir avec la GUI principale
	FileSelectFile, p_CompilerPath, 1, %A_ScriptDir%, Sélectionnez le compilateur à utiliser pour les fichiers NSIS, Exécutables (*.exe)
	SplitPath, p_CompilerPath, f_CompilerExe
	p_CompilerPath := CalcrelPath(A_ScriptDir, p_CompilerPath) . f_CompilerExe
	GuiControl, 2:, p_CompilerPath, %p_CompilerPath%
Return
}

ConfigSave:
{
	Gui, 2:Submit, NoHide
	; on récrit les Sections des listes
	s_NewCat := CreateSection("CATEGORIES", s_NewCatList)
	s_NewLic := CreateSection("LICENSES", s_NewLicList)
	s_NewLng := CreateSection("LANGUAGES", s_NewLngList)
	s_NewBch := CreateSection("BRANCHES", s_NewBchList)
	ini_replaceSection(s_FWIniFile, "CATEGORIES", s_NewCat)
	ini_replaceSection(s_FWIniFile, "LICENSES", s_NewLic)
	ini_replaceSection(s_FWIniFile, "LANGUAGES", s_NewLng)
	ini_replaceSection(s_FWIniFile, "BRANCHES", s_NewBch)
	; on récrit les valeurs de la section DEVELOPMENT
	p_FramaDevDir := p_PackFolder
	ini_replaceValue(s_FWIniFile, "DEVELOPMENT", "FramaKeyDir", p_FramaDevDir)
	p_FramaEditor := p_EditorPath
	ini_replaceValue(s_FWIniFile, "DEVELOPMENT", "FramaEditeur", p_FramaEditor)
	p_FramaCompiler := p_CompilerPath
	ini_replaceValue(s_FWIniFile, "DEVELOPMENT", "FramaCompilateur", p_FramaCompiler)
	; on enregistre le tout
	IniSaveUTF(s_FWIniFile, s_ScriptName . ".ini")
	; on renvoie vers la Gui principale
	GuiControlGet, s_OldCat, 1:, s_Category
	GuiControlGet, s_OldLic, 1:, s_License
	GuiControlGet, s_OldLng, 1:, s_Lang
	GuiControlGet, s_OldBch, 1:, s_Branch
	s_ListCategory := StringReplace(var := ini_getAllValues(s_FWIniFile,"CATEGORIES"), "`n", "|", "All")
	s_ListLicense := StringReplace(var := ini_getAllValues(s_FWIniFile,"LICENSES"), "`n", "|", "All")
	s_ListLang := StringReplace(var := ini_getAllValues(s_FWIniFile,"LANGUAGES"), "`n", "|", "All")
	s_ListBranch := StringReplace(var := ini_getAllValues(s_FWIniFile,"BRANCHES"), "`n", "|", "All")
	MsgBox % s_OldCat . ":" . s_ListCategory
	GuiControl, 1:, s_Category, |%s_ListCategory%
	GuiControl, 1:, s_License, |%s_ListLicense%
	GuiControl, 1:, s_Lang, |%s_ListLang%
	GuiControl, 1:, s_Branch, |%s_ListBranch%
	GuiControl, 1:ChooseString, s_Category, %s_OldCat%
	GuiControl, 1:ChooseString, s_License, %s_OldLic%
	GuiControl, 1:ChooseString, s_Lang, %s_OldLng%
	GuiControl, 1:ChooseString, s_Branch, %s_OldBch%
	Gosub ConfigClose
Return
}

ConfigClose:
{
	Gui, 1:-Disabled
	Gui, Destroy
Return
}
