Générateur d'aide contextuelle

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 097 fois - Téléchargée 32 fois

Contenu du snippet

Code servant à afficher une aide contextuelle avec le contenu que vous donnez.
Pour affiner la qualité de votre aide, vous pouvez mettre de la mise en forme grâce aux codes mIRC BURK (gras, souligné, inversé, couleur) et vous pouvez également insérer des images.

Source / Exemple :


;/contexthelp <texte>
;$chr(127) pour les sauts de ligne
;Ex: /contexthelp Bonjour toi&#127;p'tit gars!
;Pour laisser une ligne blanche, mettez un espace
;Les codes de contrôles (BURK) de mIRC sont acceptés
;Ex: /contexthelp Ouvre le fichier&#127; &#127;7Ferme l'ancien
;Pour insérer une image à la position courante, vous devez insérer un balise <[img]> où img est un fichier image
;Seules les images au format bmp, jpg et png sont acceptées
;Si l'image n'a pas pu être affichée, la balise sera affichée
;Ex /contexthelp Voici une image: <[mon image.bmp]>

;Ferme l'aide contextuelle si l'utilisateur a appuyé sur une touche
on *:keydown:@contexthelp:*:window -c @contexthelp
alias contexthelp {
  ;Initialisation des variables
  var %v = 0, %w = 0, %i = 1 , %cnt = $$1- , %match = "" , %wesp = $width($chr(32),verdana,11), %cur_width = 0
  tokenize 127 $replace($1-,$chr(32),$chr(160))
  ;Fenêtre cachée de même dimensions que le desktop
  window -ph @context_tmp 0 0 $window(-1).w $window(-1).h
  ;Fond jaunâtre
  drawrect -rf @context_tmp $rgb(255,255,233) 1 0 0 $window(@context_tmp).w $window(@context_tmp).h
  while ($ [ $+ [ %i ] ]) {
    %match = $ifmatch
    %cur_width = $width(%match,verdana,11)
    if (%match) {
      if (!$regex(%match,/<\[([^\?\*"<>\|]+.(?:bmp|jpg|png))\]>/gi)) {
        drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 1 %v %match
        inc %v 14
      }
      else {
        ;party time
        var %z = 1 , %a = 1 , %l = 1 , %bas = 0 , %cont = 1 , %r = $replace($regml(%z),$chr(160),$chr(32)), %pos = $regml(%z).pos , %iw , %ih , %temp
        while (%cont) {
          if ($calc(%pos - 2) > %a) {
            var %tmp = $calc($ifmatch +1), %str = $mid(%match,%a,$calc(%tmp - %a - 1))
            drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 %l %v %str
            inc %l $width(%str,verdana,11)
            if (14 > %bas) %bas = 14
            inc %a $len(%str)
          }
          if ($pic(%r)) {
            %iw = $pic(%r).width | %ih = $pic(%r).height
            drawpic @context_tmp %l %v " $+ %r $+ "
            inc %l %iw
            inc %a $len($+(<[,%r,]>))
            if (%ih > %bas) %bas = $calc(%ih + 2)

          }
          elseif (%cont == 1) {
            drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 %l %v <[ $+ $regml(%z) $+ ]>
            inc %l $width($+(<[,%r,]>),verdana,11)
            inc %a $len($+(<[,%r,]>))
            if (14 > %bas) %bas = 14
          }
          inc %z
          if ($regml(%z)) {
            %r = $replace($ifmatch,$chr(160),$chr(32))
            %pos = $regml(%z).pos

            %cont = 1
          }
          elseif ($calc($len(%match) - %a) >= 0) {
            var %temp = $mid(%match,%a)
            drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 %l %v %temp
            inc %l $width(%temp,verdana,11)
            if (14 > %bas) %bas = 14
            %cont = 0
          }
          else %cont = 0
        }
        %cur_width = %l - 1
        inc %v %bas
      }
      if (%cur_width > %w) %w = $ifmatch
    }
    inc %i
  }
  inc %w 5
  inc %v 3
  ;Création de la fenêtre d'aide contextuelle
  window -phkod +b @contexthelp $calc($mouse.dx +8) $mouse.dy %w %v
  drawcopy @context_tmp 0 0 %w %v @contexthelp 0 0
  window -c @context_tmp
  window -a @contexthelp
  .timerwincheck 0 0 contexthelp.check
}
;Ferme l'aide contextuelle si elle n'est pas la fenêtre active.
alias contexthelp.check { if (!$window(@contexthelp)) .timerwincheck off | if (!$appactive) || $active != @contexthelp { .timerwincheck off | window -c @contexthelp } }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
43
Date d'inscription
samedi 16 octobre 2004
Statut
Membre
Dernière intervention
14 août 2005

je trouve ca tres util une bonne idée !
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
hum oui c'est de ma faute j'avais pas mis le double /
:X
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Oui bonne idée, je pense que j'ajouterais ça.

Sinon le $chr(127) sert à sauter une ligne.
Ex: //contexthelp Première ligne $+ $chr(127) $+ Deuxième ligne
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
utile, bien fais, ca manque un peu de configuration peut etre la couleur de fond etc ...
il faudrai un alias du genre
/contexthelp 2 (couleur de fond) 3 (couleur d'écriture)
etc ...
et le $chr(127) ca fait rien chez moi
bug ?
en tout cas super bien
clap clap clap clap

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.