MinD
Mini Dialogues
MinD 1.1.2

Pourquoi MinD ?

MinD fournit un outil léger à divers langages de script pour mettre en oeuvre simplement l'interface graphique native de Windows ou l'interface GTK sous Linux.

MinD prend en entrée un fichier texte décrivant un dialogue et génère en sortie un fichier texte attribuant aux variables les valeurs choisies par l'utilisateur.

Exemple d'une boîte de dialogue simple :

DIALOG (BUTTONSET AT 160 120) (EDIT TO "VariableEdit" AT 20 50 DEFAULT "EditBox")

Ce descriptif produit la boîte de dialogue suivante :

MinD_simple.png

Exemple d'une boîte de dialogue complexe présentant les différents contrôles possibles :

DIALOG (DIALOG TITLE "DialogBox 2" WIDTH 271 HEIGHT 247)
(BUTTONSET TITLE "&OK;&Abandon;&Précédent" AT 12 216 DEFAULT 3 HORZ)
(DROPDOWN TITLE "DropDown 1;DropDown 2;DropDown 3;" TO "VariableDD" AT 108 12 WIDTH 155 HEIGHT 20 DEFAULT 2)
(TEXT TITLE "StaticText :" AT 12 16 WIDTH 74 HEIGHT 20 CENTER)
(CHECKBOX TITLE "Checkbox A" TO "VariableA" AT 168 120)
(CHECKBOX TITLE "Checkbox B" TO "VariableB" AT 168 144 CHECKED)
(RADIOBUTTON TITLE "Radiobutton 1;Radiobutton 2;Radiobutton 3" TO "Variable123" AT 12 120 DEFAULT 3)
(EDIT TO "VariableEdit2" AT 12 72 DEFAULT "Edit 2")
Note
Un descriptif peut contenir autant de boîtes de dialogue DIALOG que nécessaire, soit autant de lignes que de boîtes de dialogue et une seule ligne par dialogue.

Ce descriptif produit la boîte de dialogue suivante :

MinD_big.png

Si les valeurs ne sont pas modifiées, ce dialogue produira le fichier de sortie suivant :

VariableEdit2 = "Edit 2"
VariableA = F
VariableB = T
VariableDD = "DropDown 2"
Variable123 = 3

Comment utiliser MinD ?

Après avoir rédigé un fichier de dialogue, par exemple en copiant l'exemple de dialogue ci-dessus dans un fichier nommé testScript.mind (l'extension .mind est facultative), il suffit de lancer MinD avec le fichier en argument pour afficher le(s) dialogue(s).

  • Sous Windows :
MinD testScript.mind
  • Sous Linux :
./MinD testScript.mind
MinD_big_GTK3.png

Si aucun argument n'est fourni à MinD lors de son lancement, par exemple s'il est lancé directement par l'utilisateur en cliquant dessus, alors MinD affiche une boîte de dialogue permettant de choisir le fichier de dialogue à ouvrir.

Bien sûr, pour prendre en compte les choix de l'utilisateur, il faut aussi gérer le fichier de sortie, nommé MinD.out et généré dans le répertoire du fichier de dialogue. Ainsi, pour utiliser MinD, il faut lancer le fichier de dialogue, en mode synchrone, puis traiter les lignes du fichier MinD.out en sortie pour assigner les valeurs choisies aux variables adéquates. Selon le langage de script, la méthode sera différente, et il existe diverses solutions. Dans les exemples suivants, MinD est lancé avec le dialogue simple, soit la sortie suivante par défaut :

VariableEdit = "Edit Box"

Exemple d'utilisation dans un script batch (.bat) :

@ECHO OFF
START /B /WAIT MinD.exe testScript.mind
IF NOT EXIST MinD.out EXIT
FOR /F "tokens=1,2*" %%i IN (MinD.out) DO SET %%i%%j%%~k
ERASE MinD.out
ECHO %VariableEdit%
PAUSE

Exemple d'utilisation dans un script Perl :

Note
Dans cet exemple, une fonction MinDFunction est définie permettant si besoin un usage multiple et répété de MinD avec plus de facilité et de clarté.
use strict;
use warnings;
my $VariableEdit = "";
MinDFunction("testScript.mind");
print $VariableEdit;
sub MinDFunction
{
my $result = system "MinD.exe " . $_[0];
if ($result == 0)
{
open(FILE, "< MinD.out") or die "Aucun fichier de sortie MinD.out";
while (defined (my $line = <FILE>))
{
eval "\$" . $line;
}
close(FILE);
unlink("MinD.out");
}
}

Exemple d'utilisation dans un script ACL (Audit Command Language) :

DELETE ALL OK
EXECUTE "MinD testScript.mind"
DELETE BATCH MinD OK
IF (RETURN_CODE = 0) DO SCRIPT "MinD.out"
DELETE "MinD.out" OK
DELETE BATCH MinD OK
PAUSE "%VariableEdit%"

Où télécharger MinD ?

Code source : MinDSrc.zip

Exemples d'utilisation : MinDTest.zip

Exécutable compilé : MinDExe.zip

Note
L'exécutable 32 bits contenu dans ce zip correspond à la cible release du projet Code::Blocks présent dans l'archive du code source. Il a été compilé statiquement dans Code::Blocks 17.12 avec MinGW-64 8.1.0 i686-posix-dwarf.

Mentions légales

Copyright (C) 2017, 2019 Denis MARTIN mind@.nosp@m.musa.nosp@m.rdise.nosp@m.s.fr


Ce fichier fait partie de MinD.

MinD est un logiciel libre : il peut être redistribué et/ou modifié selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la licence ou toute version ultérieure.

MinD est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de VALEUR MARCHANDE ou d'ADEQUATION AVEC UN BUT PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails.

Une copie de la Licence Publique Générale GNU devrait être fournie avec MinD. Si ce n'est pas le cas, voir http://www.gnu.org/licenses/.


This file is part of MinD.

MinD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

MinD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with MinD. If not, see http://www.gnu.org/licenses/.