Tout d'abord merci à SornDrixer pour l'aide.
Ce module s'inspire du menu "connection" de mIRC. Il aura pe l'avantage d'être en francais et de ne s'occuper que des serveurs.
Je l'ai fait pcq moi ca m'interessait mais si ca peut aider qqun tant mieux.
Ce sera la premiere "vrai" source que je posterais, les precedentes n'etant que des traductions d'evenements.
Source / Exemple :
dialog GServ1 {
title "Gestion des serveurs"
size -1 -1 195 150
option dbu
list 1, 5 20 85 120, size
text "Liste des serveurs", 2, 7 7 85 10
button "Joindre", 3, 100 20 90 12, ok
button "Ajouter", 4, 100 40 90 12
button "Editer", 5, 100 60 90 12
button "Supprimer", 6, 100 80 90 12
box "Mode de connection", 7, 100 100 90 40
radio "Dans la fenêtre active", 8, 112 110 69 10
radio "Dans une autre fenêtre", 9, 112 125 69 10
}
dialog GServ2 {
title "Ajout d'un serveur"
size -1 -1 120 106
option dbu
text "Nom du serveur", 1, 12 5 80 8
edit "", 2, 10 15 100 12, autohs
text "Adresse du serveur", 3, 12 30 80 8
edit "", 4, 10 40 100 12, autohs
text "Port du serveur", 5, 12 55 80 8
edit "", 6, 10 65 100 12, autohs
button "Ajouter", 7, 10 85 45 12, ok
button "Annuler", 8, 65 85 45 12, cancel
}
dialog GServ3 {
title "Edition du serveur"
size -1 -1 120 106
option dbu
text "Nom du serveur", 1, 12 5 80 8
edit "", 2, 10 15 100 12, autohs
text "Adresse du serveur", 3, 12 30 80 8
edit "", 4, 10 40 100 12, autohs
text "Port du serveur", 5, 12 55 80 8
edit "", 6, 10 65 100 12, autohs
button "Editer", 7, 10 85 45 12, ok
button "Annuler", 8, 65 85 45 12, cancel
}
dialog GServ4 {
title "Supprimer un serveur"
size -1 -1 130 46
option dbu
text "Etes-vous sûr de vouloir effacer ce serveur ?", 1, 10 10 109 10
button "Confirmer", 2, 10 25 45 12, ok
button "Anuller", 3, 72 25 45 12, cancel
}
dialog GServError {
title "Erreur"
size -1 -1 200 70
text "Tous les champs doivent être remplis", 1, 10 15 180 15
button "Ok", 2, 65 40 70 20, cancel
}
on *:dialog:GServ1:*:*: {
if ($devent == init) {
if ($exists(GServ.ini)) {
var %GServ.nbr 1
while (%GServ.nbr <= $ini(GServ.ini,Descript,0)) {
did -a GServ1 1 $ini(GServ.ini,Descript,%GServ.nbr)
inc %GServ.nbr
}
}
did -b GServ1 3,5,6
did -c GServ1 8
}
elseif ($devent == sclick) {
if ($did == 1) { did -e GServ1 3,5,6 | set %GServ.sel $did(GServ1,1).seltext }
if ($did == 3) {
if ($did(8).state == 1) { server $readini(GServ.ini,Addr,%GServ.sel) $readini(GServ.ini,Port,%GServ.sel) }
elseif ($did(9).state == 1) { server -m $readini(GServ.ini,Addr,%GServ.sel) $readini(GServ.ini,Port,%GServ.sel) }
}
if ($did == 4) { dialog -m GServ2 GServ2 }
if ($did == 5) { dialog -m GServ3 GServ3 }
if ($did == 6) { dialog -m GServ4 GServ4 }
}
}
on *:dialog:GServ2:*:*: {
if ($devent == init ) {
did -a GServ2 6 6667
}
elseif ($devent == sclick) {
if ($did == 7) {
if (!$did(2)) || (!$did(4)) || (!$did(6)) {
dialog -m GServError GServError
}
else {
writeini -n GServ.ini Descript $did(2) $did(2)
writeini -n GServ.ini Addr $did(2) $did(4)
writeini -n GServ.ini Port $did(2) $did(6)
did -a GServ1 1 $did(GServ2,2)
}
}
}
}
on *:dialog:GServ3:*:*: {
if ($devent == init) {
if (%GServ.sel) {
did -a GServ3 2 $readini(GServ.ini,Descript,%GServ.sel)
did -a GServ3 4 $readini(GServ.ini,Addr,%GServ.sel)
did -a GServ3 6 $readini(GServ.ini,Port,%GServ.sel)
}
}
elseif ($devent == sclick) {
if ($did == 7) {
if (!$did(2)) || (!$did(4)) || (!$did(6)) {
dialog -m GServError GServError
}
else {
writeini -n GServ.ini Descript $did(2) $did(2)
writeini -n GServ.ini Addr $did(2) $did(4)
writeini -n GServ.ini Port $did(2) $did(6)
}
}
}
}
on *:dialog:GServ4:sclick:2: {
remini GServ.ini Descript %GServ.sel
remini GServ.ini Addr %GServ.sel
remini GServ.ini Port %GServ.sel
did -r Gserv1 1
var %GServ.nbr 1
while (%GServ.nbr <= $ini(GServ.ini,Descript,0)) {
did -a GServ1 1 $ini(GServ.ini,Descript,%GServ.nbr)
inc %GServ.nbr
}
}
Conclusion :
Voila je modifierais p-e encore un truc ou l'autre mais pour l'instant, il me semble que ca fonctionne très bien.
PS : j'ai mis niveau 2 pas pour me faire mousser mais uniquement pcq ca me semble faire appel à des connaissances que les débutants n'ont pas nécessairement (ce qui etait mon cas avant de me lancer dans sa conception).
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.