Module pour les serveurs favorits

Description

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).

Codes Sources

A voir également

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.