Input dialog
Un formulaire multi-champs, au clavier et asynchrone — attends les valeurs soumises en un seul appel.
Un formulaire multi-champs, au clavier et asynchrone — attends les valeurs soumises en un seul appel.
lib.inputDialog affiche un formulaire et bloque jusqu'à la soumission ou l'annulation. Il
renvoie un tableau ordonné de valeurs — ou nil si annulé.
local result = lib.inputDialog('Renommer', {
{ type = 'text', label = 'Nouveau nom', required = true, placeholder = 'ex : Pack nuit' },
})
if result then rename(result[1]) endlib.inputDialog(heading, rows) — heading est le titre du formulaire, rows la liste des
champs. Renvoie un tableau où result[i] est la valeur du champ i, ou nil si annulé.
Un row string brut est un raccourci pour { type = 'text', label = <string> }.
| Type | Détail |
|---|---|
text | Texte libre. password = true le masque. |
number | Numérique, min / max / step. Renvoie une string — utilise tonumber. |
select | Liste déroulante depuis options[] ({ value, label }) ; renvoie option.value. |
checkbox | Toggle booléen ; renvoie true / false. |
slider | min / max / step — plus visuel que number. |
color | Sélecteur de couleur ; renvoie une string couleur. |
textpassword = true le masque.numbermin / max / step. Renvoie une string — utilise tonumber.selectoptions[] ({ value, label }) ; renvoie option.value.checkboxtrue / false.slidermin / max / step — plus visuel que number.colorChaque row accepte : label (requis), placeholder?, default?, required?, disabled?, min?, max?, step?, options?.
local result = lib.inputDialog('Configurer', {
{ type = 'select', label = 'Couleur', required = true, options = {
{ value = 'red', label = 'Rouge' },
{ value = 'blue', label = 'Bleu' },
}},
{ type = 'checkbox', label = 'Visible', default = true },
{ type = 'slider', label = 'Volume', min = 0, max = 100, step = 5, default = 50 },
})
if result then
local color, visible, volume = result[1], result[2], tonumber(result[3])
endlib.closeInputDialog() ferme le dialogue actif depuis le code (résolu comme une annulation).
result == nil = annulé ; un champ vide soumis vaut '', pas nil. number et slider reviennent en string — tonumber dessus. required est front-only, donc re-valide en Lua. Un seul dialogue à la fois.