Voici une autre de mes picwin que je viens à peine de réaliser. Si vous connaissez QS (Quick System, dispo ici :
http://www.ircfr.com/codes/QUICK-SYSTEM-BUREAU-SUR-MIRC_36244.aspx), vous y verrez quelques points de ressemblance, notamment le drag&drop.
Lancer le manager en tapant /manager
Il s'agit ici d'un calendrier perpetuel, qui utilise le calcul de temps de l'ordinateur (avec les fonctions $time, $ctime, $date)
Contrairement à la première version, celle-ci présente un calendrier perpetuel.
Les jours sont classées par colonne, la première ne regroupera que des Lundi, la deuxième que des Mardi, ...
Le principe, c'est de voir un calendrier, de cliquer sur un jour, de gérer les évènements (comme par exemple mettre un rendez-vous, mémo, ou tout autre rappel) de ce jour.
Il fonctionne aussi bien dans le passé que dans le futur (il peut donc fonctionner en journal : vous mettez ce que vous avez vécu, ... Utile pour noter un anniversaire) ;)
Il dispose de deux modes d'affichage.
1] Le mode Big
1) Le premier est plus grand que le second et permet d'ajouter une image de fond dans le reste de la fenêtre.
Cette fenêtre est dimensionable via le menu (clic droit)
Vous pourrez également déplacer le calendrier à l'intérieur de la fenêtre, et bouger cette fenêtre par rapport à l'écran.
2) Quand vous cliquez sur un jour, une autre fenêtre vient s'ajouter sur la première. Encore une fois, cette dernière fenêtre peut avoir un fond d'écran configuré.
Une zone de texte (la zone où s'afficheront les évènements du jour en particulier) peut être placée n'importe où sur la fenêtre et peut également prendre la taille souhaitée (permet de ne pas masquer une partie de l'image de fond que vous aimez bien par exemple :p).
Avec cette seconde fenêtre, vous pourrez visionner la fête du jour (à condition d'avoir placé le fichier saint.ini dans le dossier ArKanis placé dans le dossier mIRC)
2] Le mode Alone
1) Le deuxième mode est un mode réduit. Vous ne disposerez pas d'arrière-plan. La fenêtre a la taille du calendrier, que vous pourrez bouger n'importe où.
2) En cliquant sur un jour, vous aurez ici aussi une autre fenêtre qui s'affichera au dessus de la précédente, avec le même fond que dans le I]2). La différence ici est que la zone de texte est agrandie au maximum, et ne peut être redimensionnée.
Ce mode est pratique pour les personnes qui ne veulent pas de fond. Il permet aussi de ne pas prendre beaucoup de place quand la fenêtre est placée en mode on-top (au dessus de tout)
Pour changer de mode, soit vous utiliser le menu, soit vous cliquez sur la barre verticale entre les deux ascenseurs à droite.
Une alarme peut être placée pour chaque jour et se déclenchera à l'heure indiquée le jour même. Pour cela, déplacer la souris en bas à gauche de la case représentant le jour souhaité.
Le jour actuel est coloré en bleu, les jours où un planning/journal existe sont en rouge.
Si vous avez des idées d'amélioration, merci d'en faire part :)
Comme dit tout au début, il est en quelque sorte la suite de QS, j'espère que vous l'apprécierez tout autant :)
Source / Exemple :
;*********************
; Manager by ArKanis
; www.arkanis.eu
; v1.3
;*********************
alias manager {
if ($window(@Manager)) {
if ($1 == -x) window -c @Manager
else window -a @Manager
}
else {
if ($hget(Manager)) hfree Manager
manager.debug
hadd -m Manager Date $date
if ($readini(Config.ini,Manager,Mode) == Alone) {
window -aBCdg0k0pRz +dl @Manager 0 0 265 230 ArKanis/Icones/qs.ico
hadd -m Manager Mode Alone
}
else {
hadd -m Manager Mode Big
var %d = $manager.width, %maxx = $gettok(%d,1,32), %maxy = $gettok(%d,2,32)
window -aBCdg0k0pRz +dl @Manager -1 -1 %maxx %maxy ArKanis/Icones/qs.ico
drawfill -nr @Manager 0 $getdot(@Manager,5,5) 5 5
if ($readini(Config.ini,Manager,Background)) {
var %img = $ifmatch
if ($exists($ifmatch)) drawpic -cnms @Manager 0 0 %maxx %maxy $+(",%img,")
}
}
manager.calendar
drawdot @Manager
manager.copy
.timermanager.heure 0 1 manager.heure
}
}
alias -l manager.calendar {
titlebar @Manager by ArKanis
if ($hget(Manager,Mode) == Alone) var %ox = 0, %oy = 0, %maxx = 370, %maxy = 230
else {
var %d = $manager.width, %maxx = $gettok(%d,1,32), %maxy = $gettok(%d,2,32), %origin = $iif($hget(Manager,Origin),$ifmatch,$readini(Config.ini,Manager,Origin)), %ox = $gettok(%origin,1,32), %oy = $gettok(%origin,2,32)
var %v1 = $calc(%maxx - 7 * 35 -26), %v2 = $calc(%maxy - 6 * 35 -35)
if (!%ox) var %ox = 10
elseif (%ox > %v1) var %ox = %v1
if (!%oy) var %oy = $calc(%maxy - 190)
elseif (%oy > %v2) var %oy = %v2
}
hadd -m Manager Origin %ox %oy
drawrect -frn @Manager 16777215 1 %ox %oy $calc(35*7 -1) $calc(35*6)
drawrect -rn @Manager 0 1 $calc(%ox -1) $calc(%oy -1) $calc(35*7 +1) $calc(35*6 +2)
var %month = $iif($gettok($1,2,47),$ifmatch,$asctime(mm)), %year = $iif($gettok($1,3,47),$ifmatch,$asctime(yyyy))
var %1st = $ctime($+(01/,%month,/,%year)), %y = %oy, %id = 0
var %j = $gettok($manager.translate($+(01/,%month,/,%year)),1,32), %i = $findtok(Lundi-Mardi-Mercredi-Jeudi-Vendredi-Samedi-Dimanche,%j,45), %x = $calc(%ox + %i * 35 -35)
hadd -m Manager 1st %i
var %max = $gettok($+(30-,$iif($manager.bisex(%year),29,28),-31-30-31-30-31-31-30-31-30-31),%month,45)
hadd -m Manager Month $+(01/,%month,/,%year)
while %id < %max {
var %date = $+($base($calc(%id +1),10,10,2),/,$base(%month,10,10,2),/,%year)
drawrect -rn @Manager 0 1 %x %y 35 35
drawrect -frn @Manager $iif(%date == $date,16437970,$iif($lines($+(Manager/,$replace(%date,$chr(47),-),.txt)),12632319,16777215)) 1 $calc(%x +1) $calc(%y +1) 33 33
drawtext -rn @Manager 0 Tahoma 10 $calc(%x + 5) $calc(%y + 5) $gettok(%date,1-2,47)
if (!$hget(ManagerAlarmes)) manager.alarmes
if ($hmatch(ManagerAlarmes,$+(Date:,%date,*),0).data) {
drawline -rn @Manager 255 1 $calc(%x + 4) $calc(%y + 32) $calc(%x + 8) $calc(%y + 24) $calc(%x + 12) $calc(%y + 32) $calc(%x + 2) $calc(%y + 32)
drawfill -srn @Manager 255 $getdot(@Manager,$calc(%x + 6),$calc(%y + 30)) $calc(%x + 6) $calc(%y + 30)
}
drawline -nr @Manager 15767190 1 $calc(%x + 33) $calc(%y + 23) $calc(%x + 33) $calc(%y + 33) $calc(%x + 23) $calc(%y + 33) $calc(%x + 33) $calc(%y + 23)
drawfill -snr @Manager 15767190 $getdot(@Manager,$calc(%x + 32),$calc(%y + 32)) $calc(%x + 32) $calc(%y + 32)
if (7 \\ %i) inc %x 35
else { var %x = %ox | inc %y 35 }
inc %id
inc %i
}
drawrect -frn @Manager 0 1 $calc(%ox + 210) $calc(%oy + 175) 35 35
if ($exists(ArKanis/Icones/engrenage.jpg)) {
drawpic -cnms @Manager $calc(%ox + 211) $calc(%oy + 176) 33 33 ArKanis/Icones/engrenage.jpg
}
else drawrect -frn @Manager 16755370 1 $calc(%ox + 211) $calc(%oy + 176) 33 33
if (stop isin $2-) { if (copy isin $2-) { manager.copy } | return }
var %o1 = $calc(%ox + 7*35 -1), %o2 = $calc(%ox + 7*35), %i = 1, %p1 = $+(%ox,|,$calc(%ox +1),|,%o1,|,%o2,|,%o1,|,%o2,|,%o1,|,%o2,|,%o1,|,%o2)
var %p2 = $+($calc(%oy + 6*35),|,$calc(%oy + 6*35 +1),|,%oy,|,$calc(%oy +20),|,%oy,|,$calc(%oy +1),|,$calc(%oy + 35*6 -20),|,$calc(%oy + 35*6 -19),|,$calc(%oy + 35*6),|,$calc(%oy + 35*6 +1))
var %p3 = 245|243|20|18|20|18|20|18|20|18, %p4 = $+(20|18|,$calc(35*6 +20),|,$calc(6*35),|20|18|20|18|20|18), %p5 = $+(0|12706303|0|16448240|0|16435400|0|16435400|0|1317140,$iif($hget(Manager,Mode) == Alone,1,0))
while %i <= 10 {
drawrect $iif(2 // %i,-frn,-rn) @Manager $gettok(%p5,%i,124) 1 $gettok(%p1,%i,124) $gettok(%p2,%i,124) $gettok(%p3,%i,124) $gettok(%p4,%i,124)
inc %i
}
manager.heure
manager.encoche
if (copy isin $2-) manager.copy
}
;************
; Paramètres
;************
alias -l manager.width {
if ($hget(Manager,Mode) == Alone) return 264 229
if (!$hget(Manager,Width)) hadd -m Manager Width $iif($readini(Config.ini,Manager,Width),$ifmatch,800 600)
var %r = $hget(Manager,Width)
return $iif($gettok(%r,1,32) isnum 600-1600,$ifmatch,800) $iif($gettok(%r,2,32) isnum 400-1200,$ifmatch,600)
}
alias -l manager.copy {
var %w = $manager.width, %w1 = $gettok(%w,1,32), %w2 = $gettok(%w,2,32)
if ($window(@Manager.copy)) window -c @Manager.copy
window -BCg0hk0pRz +dL @Manager.copy 0 0 %w1 %w2
drawcopy @Manager 0 0 %w1 %w2 @Manager.copy 0 0
}
alias -l manager.copy.calendar {
var %w = $hget(Manager,Origin), %w1 = $gettok(%w,1,32), %w2 = $gettok(%w,2,32)
if ($window(@Manager.copy.calendar)) window -c @Manager.copy.calendar
if (!$window(@Manager.copy.calendar)) window -BCg0hk0pRz +dL @Manager.copy.calendar 1 1 265 231
drawcopy @Manager %w1 %w2 265 231 @Manager.copy.calendar 1 1
}
alias -l manager.backup {
if ($hget(Manager,Date) != $date) {
manager -x
manager
}
if (!$window(@Manager.copy)) return
var %w = $manager.width, %w1 = $gettok(%w,1,32), %w2 = $gettok(%w,2,32)
drawcopy -n @Manager.copy 0 0 %w1 %w2 @Manager 0 0
titlebar @Manager by ArKanis
}
;******
; Menu
;******
menu @Manager {
sclick:manager.sclick $mouse.x $mouse.y
mouse:manager.mouse $mouse.x $mouse.y
-
Changer l'Arrière-Plan
.Général:{
if (!$input.request.y.n(Voulez-vous vraiment changer l'arrière plan ?)) return
var %img = $sfile($mircdir,Fichier Image,Sélectionner)
if (!$exists(%img)) { input.request.ok Ce fichier n'existe pas ! | return }
writeini -n Config.ini Manager Background %img
manager -x
manager
input.request.ok L'image de fond a correctement été changée.
}
.Des informations d'un jour:{
if (!$input.request.y.n(Voulez-vous vraiment changer l'arrière plan des informations d'un jour ?)) return
var %img = $sfile($mircdir,Fichier Image,Sélectionner)
if (!$exists(%img)) { input.request.ok Ce fichier n'existe pas ! | return }
writeini -n Config.ini Manager Day %img
input.request.ok L'image de fond a correctement été changée.
}
Changer le mode d'affichage:manager.chgmode
Afficher le calendrier actuel:manager.calendar -3 stop
$iif($hget(Manager,Infos) || $hget(Manager(Config),$style(2)) Changer la date:{
var %i = $input.request(Quelle date voulez-vous visionner ?)
manager.calendar %i stop
}
-
Deplacer $iif($hget(Manager,Infos) || $hget(Manager,Config),la zone de texte,le calendrier):{
var %nom = $iif($hget(Manager,Infos) || $hget(Manager,Config),la zone de texte,le calendrier)
if (!$input.request.y.n(Voulez-vous réellement déplacer %nom ?)) return
input.request.ok Votre prochain clic sur la fenêtre déplacera %nom à cet endroit. Si les calculs indiquent que %nom sortira de la fenêtre, %nom sera déplacé le plus proche possible de l'emplacement souhaité.
hadd -m Manager Clic 1
}
Modifier la taille de la fenêtre:{
if (!$input.request.y.n(Etes-vous sûr(e) de vouloir redimensionner la fenêtre ?)) return
var %x = $iif($input.request(Largeur (horizontale) ?) isnum 600-1600,$ifmatch,800)
var %y = $iif($input.request(Hauteur (Verticale) ?) isnum 400-1200,$ifmatch,600)
writeini -n Config.ini Manager Width %x %y
manager -x
manager
input.request.ok La taille de la fenêtre a changé
}
-
$iif($readini(Manager\Manager.ini,Config,Alarmes),$style(1) Alarmes activées,Alarmes désactivées):writeini -n Manager\Manager.ini Config Alarmes $iif($readini(Manager\Manager.ini,Config,Alarmes),0,1)
-
$iif($hget(Manager,OnTop),$style(1)) On Top:{
if ($hget(Manager,OnTop)) { hdel Manager OnTop | window -u @Manager }
else { hadd -m Manager OnTop 1 | window -o @Manager }
}
-
Fermer:window -c @Manager
}
alias -l manager.sclick {
;echo -a Souris : $mouse.x $mouse.y - $getdot(@Manager,$mouse.x,$mouse.y)
var %r = $manager.width, %maxx = $gettok(%r,1,32), %maxy = $gettok(%r,2,32)
if ($0 < 2) return
if ($hget(Manager,Clic)) {
if ($hget(Manager,Infos) || $hget(Manager,Config)) {
if ($hget(Manager,Clic) == 2) {
writeini -n Config.ini Manager $+($iif($hget(Manager,Config),Alarm,Infos),Origin) $hget(Manager,Memo) $calc($1 - $gettok($hget(Manager,Memo),1,32)) $calc($2 - $gettok($hget(Manager,Memo),2,32))
hdel Manager Memo
hdel Manager Clic
input.request.ok La position de la zone de texte a correctement été modifiée.
if ($hget(Manager,Config)) manager.display.zone.alarmes
else manager.display.day $hget(Manager,DayInfo)
}
else {
hadd -m Manager Memo $1-2
hadd -m Manager Clic 2
input.request.ok Votre second clic déterminera la largeur et la hauteur de la zone de texte.
}
}
else {
writeini -n Config.ini Manager Origin $1-2
manager -x
manager
input.request.ok La position du calendrier a correctement été modifié.
hdel Manager Clic
}
}
elseif ($hget(Manager,Infos)) {
if ($inrect($1,$2,15,$calc(%maxy - 35),100,20)) { manager.backup | manager.calendar $hget(Manager,Month) | hdel Manager Infos | drawdot @Manager }
elseif ($inrect($1,$2,$iif($hget(Manager,Mode) == Alone,120,140),$calc(%maxy -35),80,20)) {
if (!$isdir(Manager)) .mkdir Manager
var %file = $+(Manager/,$replace($gettok($hget(Manager,DayInfo),2,32),$chr(47),-),.txt)
if (!$exists(%file)) write -c %file
var %m = $lines(%file)
if (!%m) var %l = 1, %mode = $null
else {
var %l = $input.request(Quelle est la ligne à modifier ? Ne mettez rien si vous voulez la mettre à la fin.)
if (!%l) unset %mode %l
else var %mode = $iif($input.request.y.n(Souhaitez-vous ajouter une ligne ? Si non : écrire par dessus),il,l)
}
if (%mode == il) var %new = $input.request(Evènement à ajouter sur la ligne %l pour le $gettok($hget(Manager,DayInfo),2,32))
elseif (%mode == l) var %r = $read(%file,%l), %new = $input.request(Evènement à placer sur la ligne %l pour le $gettok($hget(Manager,DayInfo),2,32) - Actuellement $iif(%r,%r,vide))
else var %new = $input.request(Quel est le nouvel évènement à ajouter ?)
if (!$input.request.y.n(Etes-vous sûr(e) de vouloir écrire votre nouvel évènement $iif(%l,sur la ligne %l) ?)) return
if (%l !isnum) var %l = $null, %mode = %l
if ((%l > %m) && (%l isnum) && (%m isnum)) {
if ((%mode == il) || (!%mode)) inc %m
while (%m < %l) {
write %file $crlf
inc %m
}
}
write $iif(%mode,$+(-,$iif((%mode == l) && (!%new),dl,%mode),%l)) %file %new
manager.display.texte $hget(Manager,Liste) $hget(Manager,Line)
drawdot @Manager
}
else {
var %x = $1, %y = $2
tokenize 32 $hget(Manager,Asc1)
if ($inrect(%x,%y,$1,$2,$3,$4)) {
if ($hget(Manager,Line) <= 0) return
hdec Manager Line 2
hdel Manager AscBloque
manager.display.texte $hget(Manager,Liste) $hget(Manager,Line)
drawdot @Manager
}
tokenize 32 $hget(Manager,Asc2)
if ($inrect(%x,%y,$1,$2,$3,$4)) {
if ($hget(Manager,AscBloque)) return
hinc Manager Line 2
manager.display.texte $hget(Manager,Liste) $hget(Manager,Line)
drawdot @Manager
}
tokenize 32 $hget(Manager,Liste)
if ($inrect(%x,%y,$1,$2,$3,$4)) {
var %n = 1, %max = $hget(ManagerListe,0).item, %i = 0
while %n <= %max {
if ($hget(ManagerListe,%n).item <= %y) {
var %o = $hget(ManagerListe,$ifmatch), %last = $iif(%last > %o,%last,%o)
}
else var %i = %last
inc %n
}
if (!%i) var %i = $hget(ManagerListe,0).item
if (!%i) return
if (!$input.request.y.n(Voulez-vous opérer une opération de nettoyage sur la ligne %i ?)) return
if (!$isdir(Manager)) .mkdir Manager
var %file = $+(Manager/,$replace($gettok($hget(Manager,DayInfo),2,32),$chr(47),-),.txt)
if (!$exists(%file)) write -c %file
write $+(-,$iif($input.request.y.n(Effacer la ligne ? Si non : la vider),d),l,%i) %file
manager.display.texte $hget(Manager,Liste) $hget(Manager,Line)
}
drawdot @Manager
}
}
elseif ($hget(Manager,Config)) {
var %x = $1, %y = $2
tokenize 32 $hget(Manager,Asc1)
if ($inrect(%x,%y,$1,$2,$3,$4)) {
if ($hget(Manager,Line) <= 1) return
hdec Manager Line 3
if ($hget(Manager,Line) <= 0) hadd -m Manager Line 1
hdel Manager AscBloque
manager.display.alarmes $hget(Manager,Liste) $hget(Manager,Line)
drawdot @Manager
}
tokenize 32 $hget(Manager,Asc2)
if ($inrect(%x,%y,$1,$2,$3,$4)) {
if ($hget(Manager,AscBloque)) return
hinc Manager Line 3
manager.display.alarmes $hget(Manager,Liste) $hget(Manager,Line)
drawdot @Manager
}
if ($inrect(%x,%y,15,$calc(%maxy - 35),145,20)) { hsave -i ManagerListe Manager\Manager.ini Hebdo | manager.alarmes | manager.backup | manager.calendar $hget(Manager,Month) | hdel Manager Config | drawdot @Manager }
elseif ($inrect(%x,%y,200,$calc(%maxy -35),42,20)) {
var %n = $replace($input.request(Quel sera le nom de l'alarme ?),$chr(32),$chr(165))
var %h = $input.request(Quelle sera l'heure de son déclenchement ?)
if (!$regex(%h,^([0-1][0-9]|[0-9]|2[0-4]):([0-6][0-9])$)) { input.request.ok Heure invalide | return }
var %file = Manager\Manager.ini, %nb = $calc($readini(%file,Config,Id) +1)
writeini -n %file Config Id %nb
hadd -m ManagerListe %nb $+(Heure:,%h) $+(Objet:,%n)
manager.display.alarmes $hget(Manager,Liste) $hget(Manager,Line)
drawdot @Manager
}
elseif ($inrect(%x,%y,40,50,$calc(%maxx - 80),$calc(%maxy - 100))) {
var %n = 1, %max = $hget(ManagerList,0).item, %i = 0, %last = 67
while %n <= %max {
var %1 = $gettok($hget(ManagerList,%n).item,1,45), %2 = $gettok($hget(ManagerList,%n).item,2,45)
if (%y isnum $+(%1,-,%2)) {
var %old = %last, %last = $hget(ManagerList,%n).item, %i = $hget(ManagerList,%last)
}
inc %n
}
var %x1 = $gettok($hget(Manager,Liste),1,32), %x2 = $gettok($hget(Manager,Liste),3,32), %y1 = $gettok($hget(Manager,Liste),2,32), %y2 = $gettok($hget(Manager,Liste),4,32), %j = $calc(%x2 + %x1), %jo = 8
while %x <= %j {
dec %j 60
dec %jo
}
if (%i) {
var %j = $gettok(L-M-W-J-V-S-D,%jo,45)
if ((%jo >= 1) && ($getdot(@Manager,%x,%y) != 0)) {
var %read = $hget(ManagerListe,%i), %r = $regex(%read,Jours:([^\s]+)), %r = $regml(1), %r2 = $regsub(%read,Jours:([^\s]+),,%re)
var %mm = $calc(%last - %old), %ll = 59
if (%jo = 7) dec %ll 3
if (%j isin %r) {
var %r = $remtok(%r,%j,1,45), %d = $calc(%x2 - 17 - (7 - %jo) * 60)
drawfill -nr @Manager 16777215 0 %x %y
hadd -m ManagerListe %i %re $iif(%r,$+(Jours:,%r))
}
else {
var %r = $addtok(%r,%j,45), %d = $calc(%x2 - 17 - (7 - %jo) * 60)
drawfill -nr @Manager 16752800 0 %x %y
hadd -m ManagerListe %i %re $+(Jours:,%r)
}
}
elseif (%jo <= 0) {
var %read = $hget(ManagerListe,%i), %r = $regex(%read,Status:([^\s]+)), %r = $regml(1), %r2 = $regsub(%read,Status:([^\s]+),,%re)
if ($getdot(@Manager,%x,%y) == 255) {
var %h = $regex(%read,Heure:([^\s]+)), %h = $regml(1)
var %o = $regex(%read,Objet:([^\s]+)), %o = $regml(1)
if (!$input.request.y.n(Voulez-vous supprimer l'alerte se déclenchant à %h concernant %o ?)) return
hdel ManagerListe %i
}
else {
hadd -m ManagerListe %i %re $+(Status:,$iif(%r != 0,0,1))
}
manager.display.alarmes $hget(Manager,Liste) $hget(Manager,Line)
}
}
drawdot @Manager
}
}
elseif ($manager.case($1,$2)) {
var %i = $ifmatch, %d = $hget(Manager,Month)
if (%i == Prev) {
var %month = $calc($gettok(%d,2,47) -1), %y = $gettok(%d,3,47)
if (%month <= 0) var %month = 12, %y = $calc(%y -1)
manager.calendar $+(01/,%month,/,%y) copy stop
}
elseif (%i == Next) {
var %month = $calc($gettok(%d,2,47) +1), %y = $gettok(%d,3,47)
if (%month >= 13) var %month = 1, %y = $calc(%y +1)
manager.calendar $+(01/,%month,/,%y) copy stop
}
elseif ($gettok(%i,1,32) == Alarme) {
var %date = $gettok(%i,3,32)
if (!$isdir(Manager)) .mkdir Manager
if (!$hget(ManagerAlarmes)) manager.alarmes
if ($hmatch(ManagerAlarmes,$+(Date:,%date,*),0).data) {
var %m = $ifmatch, %i = 1
while %i <= %m {
var %hm = $hmatch(ManagerAlarmes,$+(Date:,%date,*),%i).data, %j = $hget(ManagerAlarmes,%hm)
var %a = $regex(%j,Heure:([\S]+)), %heure = $regml(1)
if ($input.request.y.n(Voulez-vous désactiver l'alarme du %date $iif(%heure,se déclenchant à $+(%heure,$chr(41))) ?)) { remini Manager\Manager.ini Alarmes %hm | hdel ManagerAlarmes %hm }
inc %i
}
}
else {
var %u = $+($r(a,z),$r(a,z),$r(a,z),$r(a,z),$r(0,9))
writeini -n Manager\Manager.ini Alarmes %u $+(Date:,%date) $+(Heure:,$input.request(A quelle heure doit-elle sonner ?)) $+(Nom:,$iif($input.request(Quelle nom donner à l'alarme ?),$ifmatch,1))
hadd -m ManagerAlarmes %u $readini(Manager\Manager.ini,Alarmes,%u)
manager.alarmes
}
manager.calendar $hget(Manager,Month)
}
elseif ($gettok(%i,1,32) == Config) manager.display.zone.alarmes
elseif ($gettok(%i,1,32) == Texte) {
if (!$isdir(Manager)) .mkdir Manager
var %txt = $+(Manager\,$replace($gettok(%i,3-,32),$chr(47),-),.txt)
if (!$exists(%txt)) write -c %txt
run %txt
}
elseif ($numtok(%i,32) > 1) manager.display.day %i
}
elseif ($getdot(@Manager,$1,$2) == 13171400) {
manager.copy.calendar
.timermove.calendar -h 0 50 manager.move.calendar $1 $2
}
elseif ($getdot(@Manager,$1,$2) == 16448240) manager.chgmode
elseif ($inpoly($1,$2,$calc(%maxx - 21),%maxy,%maxx,%maxy,%maxx,$calc(%maxy - 21))) .timermove.manager -h 0 0 move.manager $1 $2
}
alias -l manager.mouse {
if (($timer(move.manager)) || ($timer(move.calendar))) return
if ($0 < 2) return
if (!$hget(Manager,Infos) && !$hget(Manager,Config)) {
if ($manager.case($1,$2)) {
var %donnees = $ifmatch, %ox = $gettok($hget(Manager,Origin),1,32), %oy = $gettok($hget(Manager,Origin),2,32)
if (%donnees == Prev) var %nom = Cliquez ici pour voir le mois précédent
elseif (%donnees == Next) var %nom = Cliquez ici pour voir le mois suivant
elseif ($gettok(%donnees,1,32) == Alarme) {
if (!$hget(ManagerAlarmes)) manager.alarmes
var %nom = $iif($hmatch(ManagerAlarmes,$+(Date:,$gettok(%donnees,3,32),*)).data,Désactiver l'alarme du,Mettre une alarme pour le) $manager.translate($gettok(%donnees,3-,32))
}
elseif ($gettok(%donnees,1,32) == Config) var %nom = Configurer l'alarme quotidienne
elseif ($gettok(%donnees,1,32) == Texte) var %nom = Lancer le fichier texte du $manager.translate($gettok(%donnees,3-,32))
elseif ($gettok(%donnees,2,32)) {
var %nom = $iif($manager.compare($ifmatch,$date),Planifier la journée du,Consulter le journal du) $manager.translate($gettok(%donnees,2,32))
}
drawrect -frn @Manager 12706303 1 $calc(%ox +1) $calc(%oy + 6*35 +1) 243 18
if (%nom) drawtext -crn @Manager 0 Tahoma 10 $calc(%ox +5) $calc(%oy + 6*35 +5) 235 15 %nom
else manager.heure force
drawdot @Manager
hadd -m Manager Help 1
}
elseif ($getdot(@Manager,$1,$2) == 13171400) {
var %ox = $gettok($hget(Manager,Origin),1,32), %oy = $gettok($hget(Manager,Origin),2,32)
drawrect -frn @Manager 12706303 1 $calc(%ox +1) $calc(%oy + 6*35 +1) 243 18
drawtext -crn @Manager 0 Tahoma 10 $calc(%ox +5) $calc(%oy + 6*35 +5) 235 15 Cliquez ici pour déplacer la fenêtre
drawdot @Manager
hadd -m Manager Help 1
}
elseif ($getdot(@Manager,$1,$2) == 16448240) {
var %ox = $gettok($hget(Manager,Origin),1,32), %oy = $gettok($hget(Manager,Origin),2,32)
drawrect -frn @Manager 12706303 1 $calc(%ox +1) $calc(%oy + 6*35 +1) 243 18
drawtext -crn @Manager 0 Tahoma 10 $calc(%ox +5) $calc(%oy + 6*35 +5) 235 15 Changer le mode d'apparence
drawdot @Manager
hadd -m Manager Help 1
}
elseif ($hget(Manager,Help)) {
if (!$window(@Manager.copy)) return
var %ox = $gettok($hget(Manager,Origin),1,32), %oy = $gettok($hget(Manager,Origin),2,32)
drawrect -frn @Manager 12706303 1 $calc(%ox +1) $calc(%oy + 6*35 +1) 243 18
drawtext -crn @Manager 0 Tahoma 10 $calc(%ox +5) $calc(%oy + 6*35 +5) 235 15 $manager.translate($date) - $time
drawdot @Manager
hdel Manager Help
}
}
}
;******************
; Calculs de temps
;******************
alias -l manager.case {
if ($0 < 2) return
var %ox = $gettok($hget(Manager,Origin),1,32), %oy = $gettok($hget(Manager,Origin),2,32)
if ($inrect($1,$2,$calc(%ox + 210),$calc(%oy + 175),35,35)) return Config %id %e
elseif (($1 isnum $+(%ox,-,$calc(%ox + 35 * 7))) && ($2 isnum $+(%oy,-,$calc(%oy + 35 * 6)))) {
var %casex = $gettok($calc(($1 - %ox)/35),1,46), %casey = $gettok($calc(($2 - %oy)/35),1,46), %id = $calc(%casey * 7 + %casex - $hget(Manager,1st) +1)
var %year = $gettok($hget(Manager,Month),3,47), %month = $gettok($hget(Manager,Month),2,47)
var %max = $calc($gettok($+(30-,$iif($manager.bisex(%year),29,28),-31-30-31-30-31-31-30-31-30-31),%month,45) -1)
if (%id !isnum $+(0-,%max)) return
var %d = $+($base($calc(%id + 1),10,10,2),/,$base(%month,10,10,2),/,$base(%year,10,10,2))
var %x = $calc(%ox + 35 * %casex), %y = $calc(%oy + 35 * %casey), %e = $iif($gettok(%d,2,47) == %month,%d)
if ($getdot(@Manager,$1,$2) == 255) return Alarme %id %e
if ($inpoly($1,$2,$calc(%x + 4),$calc(%y + 32),$calc(%x + 8),$calc(%y + 24),$calc(%x + 12),$calc(%y + 32),$calc(%x + 2),$calc(%y + 32))) return Alarme %id %e
if ($getdot(@Manager,$1,$2) == 15767190) return Texte %id %e
if ($inpoly($1,$2,$calc(%x + 23),$calc(%y + 33),$calc(%x + 33),$calc(%y + 33),$calc(%x + 33),$calc(%y + 23))) {
;Ce procédé est utile pour ceux qui ont des vieux PC ne pouvant pas correctement récupérer une couleur (comme Wims :D)
return Texte %id %e
}
return %id %e
}
elseif ($1 isnum $+($calc(%ox + 35 * 7),-,$calc(%ox + 35 * 7 +19))) {
if ($2 isnum $+(%oy,-,$calc(%oy +20))) return Prev
elseif ($2 isnum $+($calc(%oy + 6 * 35 -20),-,$calc(%oy + 6 * 35))) return Next
}
}
alias -l manager.bisex {
if (!$1) return
if (4 // $1) {
if (100 // $1) {
if (400 // $1) return 1
return 0
}
return 1
}
return 0
}
alias -l manager.translate {
if (!$1) return
var %j = $gettok($1,1,47), %m = $gettok($1,2,47), %a = $gettok($1,3,47)
if (%m < 3) var %n = $calc($int($calc(365.25*(%a - 1))) + $int($calc(30.6*(%m + 13))) + %j - 621049)
else var %n = $calc($int($calc(365.25 * %a)) + $int($calc(30.6*(%m +1))) + %j - 621049)
var %d = $calc(%n % 7)
if (%d == 0) var %d = 7
return $gettok(Lundi-Mardi-Mercredi-Jeudi-Vendredi-Samedi-Dimanche,%d,45) $int(%j) $gettok(Janvier-Février-Mars-Avril-Mai-Juin-Juillet-Août-Septembre-Octobre-Novembre-Décembre,$int(%m),45) $int(%a)
}
alias -l manager.compare {
if ($0 < 2) return
tokenize 47 $+($1,/,$2)
if ($3 < $6) return 0
elseif ($3 > $6) return 1
else {
if ($2 < $5) return 0
elseif ($2 > $5) return 1
else {
if ($1 < $4) return 0
return 1
}
}
}
;***********************
; Draw (avec option -n)
;***********************
alias -l manager.button {
if ($0 < 4) return
drawrect -rn @Manager 0 1 $1-
drawrect -frn @Manager 12706303 1 $calc($1 +1) $calc($2 +1) $calc($3 -2) $calc($4 -2)
if (($5 isnum) && ($6-)) drawtext -crn @Manager 0 Tahoma $5 $calc($1 +4) $calc($2 +4) $calc($3 -8) $calc($4 -8) $6-
}
alias -l manager.display.day {
if (!$0) return
hadd -m Manager DayInfo $1-
unset %img
var %r = $manager.width, %maxx = $gettok(%r,1,32), %maxy = $gettok(%r,2,32), %donnees = $1-
if ($readini(Config.ini,Manager,Day)) var %img = $ifmatch
if (!$exists(%img)) {
drawrect -rn @Manager 0 1 5 5 $calc(%maxx - 10) $calc(%maxy - 10)
drawrect -frn @Manager 16777215 1 11 11 $calc(%maxx - 22) $calc(%maxy - 22)
}
else drawpic -cnms @Manager 10 10 $calc(%maxx - 20) $calc(%maxy - 20) $+(",%img,")
var %texte = $iif($manager.compare($gettok(%donnees,2,32),$date),Planning,Journal) du $manager.translate($gettok(%donnees,2-,32)), %width = $width(%texte,Tahoma,12)
manager.button $calc(%maxx / 2 - %width / 2 -6) 20 $calc(%width +11) 25 12 %texte
drawline -rn @Manager 0 1 $calc(%maxx / 2 - %width / 2 -2) 38 $calc(%maxx / 2 + %width /2) 38
manager.button $iif($hget(Manager,Mode) == Alone,120,140) $calc(%maxy -35) 80 20 10 Ajouter/Effacer
manager.button 15 $calc(%maxy -35) 100 20 10 Retour au calendrier
if ($hget(Manager,Mode) != Alone) {
var %saint = Saint(e) $readini(ArKanis/saint.ini,$gettok($gettok(%donnees,2,32),2,47),$gettok($gettok(%donnees,2,32),1,47))
manager.button 245 $calc(%maxy - 35) $calc($width(%saint,Tahoma,10) +8) 20 10 %saint
if ($readini(Config.ini,Manager,InfosOrigin)) var %x1 = $gettok($ifmatch,1,32), %y1 = $gettok($ifmatch,2,32), %x2 = $gettok($ifmatch,3,32), %y2 = $gettok($ifmatch,4,32)
var %v1 = $calc(%maxx - 120), %b1 = $calc(%maxy - 120)
if (!%x1) var %x1 = 50
if (!%x2) var %x2 = 150
if (!%y1) var %y1 = 75
if (!%y2) var %y2 = 300
if (%x1 < 25) var %x1 = 25
elseif (%x1 > %v1) var %x1 = %v1
if (%y1 < 50) var %y1 = 50
elseif (%y1 > %b1) var %y1 = %b1
var %v2 = $calc(%maxx - %x1 - 40), %b2 = $calc(%maxy - %y1 - 45)
if (%x2 > %v2) var %x2 = %v2
if (%x2 < 95) var %x1 = $calc(%x1 - 95 + %x2), %x2 = 95
if (%y2 > %b2) var %y2 = %b2
if (%y2 < 95) var %y1 = $calc(%y1 - 95 + %y2), %y2 = 95
}
else var %x1 = 15, %x2 = $calc(%maxx - 45), %y1 = 47, %y2 = 140
drawrect -nr @Manager 0 1 %x1 %y1 %x2 %y2
drawrect -nr @Manager 0 1 $calc(%x1 + %x2 -1) %y1 15 %y2
drawrect -fnr @Manager 15180752 1 $calc(%x1 + %x2) $calc(%y1 +1) 13 $calc(%y2 -2)
hadd -m Manager Asc1 $calc(%x1 + %x2 -1) %y1 15 15
drawrect -nr @Manager 0 1 $hget(Manager,Asc1)
drawrect -fnr @Manager 16240098 1 $calc(%x1 + %x2) $calc(%y1 +1) 13 13
hadd -m Manager Asc2 $calc(%x1 + %x2 -1) $calc(%y1 + %y2 -15) 15 15
drawrect -nr @Manager 0 1 $hget(Manager,Asc2)
drawrect -fnr @Manager 16240098 1 $calc(%x1 + %x2) $calc(%y1 + %y2 -14) 13 13
hadd -m Manager Liste %x1 %y1 %x2 %y2
hadd -m Manager Line 1
manager.display.texte %x1 %y1 %x2 %y2 1
titlebar @Manager - $gettok(%donnees,2,32)
drawdot @Manager
hadd -m Manager Infos 1
}
alias -l manager.display.texte {
if ($0 < 5) return
var %x1 = $1, %y1 = $2, %x2 = $3, %y2 = $4, %nb = $5
drawrect -fnr @Manager 16777215 1 $calc(%x1 +1) $calc(%y1 +1) $calc(%x2 -2) $calc(%y2 -2)
if (!$isdir(Manager)) .mkdir Manager
if ($hget(ManagerListe)) hfree ManagerListe
var %file = $+(Manager/,$replace($gettok($hget(Manager,DayInfo),2,32),$chr(47),-),.txt), %l = $lines(%file), %posy = $calc(%y1 + 2), %width = $calc(%x2 - 6), %posx = $calc(%x1 + 3), %max = $calc(%y1 + %y2 -10)
if (%nb <= 0) var %nb = 1
while ((%posy <= %max) && (%nb <= %l)) {
var %text = %nb - $read(%file,%nb), %n2 = 0
if (!%text) inc %posy 10
while ((%text) && (%posy <= %max)) {
var %n = 2, %m = $len(%text)
while (($width($left(%text,$calc(%n +1)),Tahoma,10) <= $calc(%width - $iif(%n2 > 0,5,0))) && (%n <= %m)) inc %n
drawtext -nr @Manager 0 Tahoma 10 $calc(%posx + $iif(%n2 > 0,5,0)) %posy $left(%text,%n)
if (%n2 == 0) hadd -m ManagerListe %posy %nb
inc %posy 10
var %text = $right(%text,$+(-,%n))
inc %n2
}
inc %nb
}
if (%nb > %l) hadd -m Manager AscBloque 1
}
alias -l manager.encoche {
var %d = $manager.width, %maxx = $gettok(%d,1,32), %maxy = $gettok(%d,2,32), %i = 21
while %i >= 3 {
drawline -rn @Manager 0 1 $calc(%maxx - %i) %maxy %maxx $calc(%maxy - %i)
dec %i 3
}
}
alias -l manager.heure {
var %r = $hget(Manager,Origin), %ox = $gettok(%r,1,32), %oy = $gettok(%r,2,32)
if ($1 != force) {
if (!$window(@Manager)) { .timermanager.heure off | return }
if (($timer(manager.move)) || ($timer(manager.calendar))) return
if (($hget(Manager,Infos)) || ($hget(Manager,Config))) return
if ($getdot(@Manager,$mouse.x,$mouse.y) == 13171400) return
if ($inrect($mouse.x,$mouse.y,%ox,%oy,$calc(10*35 +20),$calc(6*35))) return
}
drawrect -frn @Manager 12706303 1 $calc(%ox +1) $calc(%oy + 6*35 +1) 243 18
drawtext -crn @Manager 0 Tahoma 10 $calc(%ox +5) $calc(%oy + 6*35 +5) 235 15 $manager.translate($date) - $time
drawdot @Manager
}
alias -l manager.chgmode {
writeini -n Config.ini Manager Mode $iif($readini(Config.ini,Manager,Mode) != Alone,Alone,Big)
manager -x
manager
}
;******
; Move
;******
alias -l move.manager {
var %x = $mouse.dx, %y $mouse.dy
if (!$window(@Manager)) .timermove.manager off
if ($mouse.key & 1) {
hadd -m Manager Move 1
.timermove.manager -h 0 0 move.manager $1-
window @Manager $calc(%x - $1) $calc(%y - $2)
}
elseif ($hget(Manager,Move)) { hdel Manager Move | .timermove.manager off }
}
alias -l manager.move.calendar {
if (!$window(@Manager.copy.calendar)) return
var %x = $calc($mouse.dx - $window(@Manager).dx - 7*35 -10), %y = $calc($mouse.dy - $window(@Manager).dy - 6*35 - 10)
if ($mouse.key & 1) {
var %d = $manager.width, %maxx = $gettok(%d,1,32), %maxy = $gettok(%d,2,32)
drawrect -frn @Manager 16777215 1 0 0 %maxx %maxy
if ($readini(Config.ini,Manager,Background)) {
var %img = $ifmatch
if ($exists(%img)) drawpic -cnms @Manager 0 0 %maxx %maxy $+(",%img,")
}
var %v1 = $calc(%maxx - 7 * 35 -26), %v2 = $calc(%maxy - 6 * 35 -35)
if (!%x) var %x = 10
elseif (%x > %v1) var %x = %v1
elseif (%x < 5) var %x = 5
if (!%y) var %y = $calc(%maxy - 190)
elseif (%y > %v2) var %y = %v2
elseif (%y < 5) var %y = 5
hadd -m Manager Origin %x %y
drawcopy -n @Manager.copy.calendar 1 1 265 231 @Manager %x %y
manager.encoche
drawdot @Manager
}
else { .timermove.calendar off | manager.copy | writeini -n Config.ini Manager Origin $hget(Manager,Origin) }
}
;*********
; Alarmes
;*********
on *:start:{
.timermanager.alarmes -o 0 7200 manager.alarmes
manager.alarmes Prevenir
}
alias -l manager.alarmes {
if (!$hget(ManagerAlarmes)) hmake ManagerAlarmes 10
hload -i ManagerAlarmes Manager\Manager.ini Alarmes
var %max = $hmatch(ManagerAlarmes,$+(Date:,$date,*),0).data, %i = 1
while %i <= %max {
unset %heure %nom %du
var %hm = $hmatch(ManagerAlarmes,$+(Date:,$date,*),%i).data, %j = $hget(ManagerAlarmes,%hm)
var %a = $regex(%j,Heure:([\S]+)), %heure = $regml(1), %c = $ctime(%heure $date)
if (%c >= $ctime) var %du = $duration($calc(%c - $ctime))
else {
remini Manager\Manager.ini %hm
hdel ManagerAlarmes %hm
unset %heure
}
var %a = $regex(%j,Nom:([\S]+)), %nom = $regml(1)
if ($1 == Prevenir) input.request.ok Vous avez une alarme aujourd'hui $iif(%heure,à %heure (dans $+(%du,$chr(41)))) ! $iif(%nom,$+($chr(40),$ifmatch,$chr(41)))
.timeralarme. $+ %i %heure 1 0 manager.alarmes.declencher %hm %nom
inc %i
}
if (!$hget(ManagerListe)) { hmake ManagerListe 20 | hload -i ManagerListe Manager\Manager.ini Hebdo }
var %i = 1, %max = $hget(ManagerListe,0).item
while %i <= %max {
var %r = $hget(ManagerListe,%i).data
if ($regex(%r,Jours:([^\s]+))) {
var %j = $regml(1), %j2 = $gettok(L-M-W-J-V-S-D,$findtok(Mon-Tue-Wed-Thu-Fri-Sat-Sun,$asctime(ddd),45),45)
if (%j2 isin %j) {
unset %e %o %s
var %e = $regex(%r,Heure:([^\s]+)), %e = $regml(1), %s = $regex(%r,Status:([^\s]+)), %s = $regml(1), %o = $regex(%r,Objet:([^\s]+)), %o = $regml(1)
if ((%e) && (%s != 0)) {
var %c = $ctime(%e $date)
if (%c > $ctime) {
var %du = $duration($calc(%c - $ctime))
.timeralarmehebdo. $+ %i %e 1 0 manager.alarmes.declencher $hget(ManagerListe,%i).item %o
if ($1 == Prevenir) input.request.ok Vous avez une alarme aujourd'hui $iif(%e,à %e (dans $+(%du,$chr(41)))) ! $iif(%o,$+($chr(40),$ifmatch,$chr(41)))
}
}
}
}
inc %i
}
}
alias -l manager.alarmes.declencher {
if (!$readini(Manager\Manager.ini,Config,Alarmes)) return
if ($hget(ManagerAlarmes,$1)) hdel ManagerAlarmes $1
remini Manager\Manager.ini Alarmes %hm
manager.beep Alarme déclenchée : il est $asctime(HH:nn) $iif($2,$+($chr(40),$2-,$chr(41)))
if (($window(@Manager)) && (!$hget(Manager,Infos))) manager.calendar $hget(Manager,Month)
}
alias -l manager.beep {
beep 5 1
if ($0) hadd -mu5 Manager Temp $1-
if ($dialog(manager.beep)) dialog -v manager.beep
if (!$dialog(manager.beep)) dialog -rmdao manager.beep manager.beep
}
dialog manager.beep {
title Alarme
size -1 -1 150 50
option dbu
icon ArKanis/Icones/qs.ico
button "Alarme" 11, 1 0 149 50, ok default
}
on *:dialog:manager.beep:init:*:if ($hget(Manager,Temp)) did -o $dname 11 1 $ifmatch
alias -l manager.display.zone.alarmes {
if ($hget(Manager,Mode) == Alone) {
writeini -n Config.ini Manager Mode Big
manager -x
manager
.timer -h 1 1 manager.display.zone.alarmes
}
unset %img
var %r = $manager.width, %maxx = $gettok(%r,1,32), %maxy = $gettok(%r,2,32)
if ($readini(Config.ini,Manager,Day)) var %img = $ifmatch
if (!$exists(%img)) {
drawrect -rn @Manager 0 1 5 5 $calc(%maxx - 10) $calc(%maxy - 10)
drawrect -frn @Manager 16777215 1 11 11 $calc(%maxx - 22) $calc(%maxy - 22)
}
else drawpic -cnms @Manager 10 10 $calc(%maxx - 20) $calc(%maxy - 20) $+(",%img,")
var %texte = Alarmes hebdomadaires, %width = $width(%texte,Tahoma,12)
manager.button $calc(%maxx / 2 - %width / 2 -6) 20 $calc(%width +11) 25 12 %texte
drawline -rn @Manager 0 1 $calc(%maxx / 2 - %width / 2 -2) 38 $calc(%maxx / 2 + %width /2) 38
manager.button 200 $calc(%maxy -35) 42 20 10 Ajouter
manager.button 15 $calc(%maxy -35) 145 20 10 Sauvegarder les changements
var %x1 = 40, %y1 = 50, %x2 = $calc(%maxx - 80), %y2 = $calc(%maxy - 100)
drawrect -nr @Manager 0 1 %x1 %y1 %x2 %y2
drawrect -nr @Manager 0 1 $calc(%x1 + %x2 -1) %y1 15 %y2
drawrect -fnr @Manager 15180752 1 $calc(%x1 + %x2) $calc(%y1 +1) 13 $calc(%y2 -2)
hadd -m Manager Asc1 $calc(%x1 + %x2 -1) %y1 15 15
drawrect -nr @Manager 0 1 $hget(Manager,Asc1)
drawrect -fnr @Manager 16240098 1 $calc(%x1 + %x2) $calc(%y1 +1) 13 13
hadd -m Manager Asc2 $calc(%x1 + %x2 -1) $calc(%y1 + %y2 -15) 15 15
drawrect -nr @Manager 0 1 $hget(Manager,Asc2)
drawrect -fnr @Manager 16240098 1 $calc(%x1 + %x2) $calc(%y1 + %y2 -14) 13 13
hadd -m Manager Liste %x1 %y1 %x2 %y2
hadd -m Manager Line 1
if ($hget(ManagerListe)) hfree ManagerListe
hmake ManagerListe 20
hload -i ManagerListe Manager\Manager.ini Hebdo
manager.display.alarmes %x1 %y1 %x2 %y2 1
titlebar @Manager - Alarmes hebdomadaires
hadd -m Manager Config 1
drawdot @Manager
}
alias -l manager.display.alarmes {
if ($0 < 5) return
var %x1 = $1, %y1 = $2, %x2 = $3, %y2 = $4, %nb = $5
drawrect -fnr @Manager 16777215 1 $calc(%x1 +1) $calc(%y1 +1) $calc(%x2 -2) $calc(%y2 -2)
var %l = $hget(ManagerListe,0).item, %posy = $calc(%y1 + 17), %width = $calc(%x2 - 6), %posx = $calc(%x1 + 3), %max = $calc(%y1 + %y2 -10)
var %1 = $calc(%x1 + %x2 -58), %2 = $calc(%y1 + %y2), %min = $calc(%x1 + %x2 - 7 * 60), %j = 7
drawtext -nr @Manager 0 Tahoma 10 $calc(%x1 + 10) $calc(%y1 + 2) Nom de l'alarme
drawline -nr @Manager 0 1 %x1 $calc(%y1 + 16) $calc(%x1 + %x2) $calc(%y1 + 16)
while %1 >= %min {
drawtext -nr @Manager 0 Tahoma 10 $calc(%1 + 5) $calc(%y1 + 2) $gettok(Lundi-Mardi-Mercredi-Jeudi-Vendredi-Samedi-Dimanche,%j,45)
drawline -nr @Manager 0 1 %1 %y1 %1 %2
dec %1 60
dec %j
}
if ($hget(ManagerList)) hfree ManagerList
hmake ManagerList 15
var %nb = $hget(Manager,Line)
if (!%nb) var %nb = 1
drawline -nr @Manager 0 1 $calc(%x1 + 14) $calc(%y1 +17) $calc(%x1 + 14) %2
while ((%posy <= %max) && (%nb <= %l)) {
var %i = $hget(ManagerListe,%nb).item, %text = $hget(ManagerListe,%i), %n2 = 0
if (!%text) inc %posy 10
unset %r %s
var %d = %posy
while ((%text) && (%posy <= %max)) {
if ($regex(%text,Jours:([^\s]+))) var %r = $regml(1)
if ($regex(%text,Status:([^\s]+))) var %s = $regml(1)
var %e = $regsub(%text,Jours:([^\s]+),,%text), %e = $regsub(%text,Status([^\s]+),,%text), %text = $replace(%text,$chr(165),$chr(32))
var %n = 2, %m = $len(%text)
while (($width($left(%text,$calc(%n +1)),Tahoma,10) <= $calc(%x2 - 7*60 - $iif(%n2 > 0,5,0))) && (%n <= %m)) inc %n
if (%s == 0) drawrect -fnr @Manager 11184810 0 $calc(%x1 +15) $calc(%posy + $iif(%posy > 68,1,0)) $calc(%1 +5) $iif(%posy > 68,11,12)
drawrect -fnr @Manager 255 1 $calc(%x1 +1) $calc(%posy + $iif(%posy > 68,1,0)) 13 $iif(%posy > 68,11,12)
drawtext -nr @Manager 0 Tahoma 10 $calc(%posx + 15+ $iif(%n2 > 0,5,0)) %posy $left(%text,%n)
inc %posy 10
var %text = $right(%text,$+(-,%n))
inc %n2
}
hadd -m ManagerList $+(%d,-,$calc(%posy +2)) %i
inc %nb
drawline -nr @Manager 0 1 %x1 $calc(%posy + 2) $calc(%x2 + %x1) $calc(%posy + 2)
var %ii = 1, %te = L-M-W-J-V-S-D
while %ii <= 7 {
if ($gettok(%te,%ii,45) isin %r) drawfill -snr @Manager 16752800 16777215 $calc(%x1 + %x2 - (8 - %ii) * 60 + 5) $calc(%posy - 6)
inc %ii
}
inc %posy 2
}
if (%nb > %l) hadd -m Manager AscBloque 1
}
;********
; Others
on *:load:{
if (!$isalias(input.request.ok)) alias input.request.ok return $input($1-,o)
if (!$isalias(input.request.y.n)) alias input.request.y.n return $input($1-,y)
if (!$isalias(input.request)) alias input.request return $input($1-)
if ($exists(ArKanis/Icones/backgroundManager.jpg)) writeini -n Config.ini Manager Background ArKanis/Icones/backgroundManager.jpg
if ($exists(ArKanis/Icones/backgroundDay.jpg)) writeini -n Config.ini Manager Day ArKanis/Icones/backgroundDay.jpg
}
on *:unload:{
.timermanager.* off
if ($window(@Manager)) window -c @Manager
if ($window(@Manager.copy)) window -c @Manager.copy
if ($window(@Manager.copy.calendar)) window -c @Manager.copy.calendar
}
alias manager.debug {
if ($script(Script-ArKanis.mrc)) .disable #inputrequest
else .enable #inputrequest
return Manager debuggué
}
#inputrequest off
alias input.request.ok {
if ($script(Script-ArKanis.mrc)) return
return $input($1-,o)
}
alias input.request.y.n {
if ($script(Script-ArKanis.mrc)) return
return $input($1-,y)
}
alias input.request {
if ($script(Script-ArKanis.mrc)) return
return $input($1-,e)
}
#inputrequest end
;End Of File
Conclusion :
Je pense très prochainement l'implémenter dans mon add-on Script-ArKanis disponible sur www.arkanis.eu
QS y est déjà.
Si vous disposez de Script-ArKanis, les questions qui vous seront posées seront dans des boîtes de dialogue autres que celles avec $input
D'autres screens de ce Manager :
http://www.arkanis.eu/?page=screen
Pour charger le .mrc, mettez le dossier ArKanis dans votre dossier mIRC et tapez /load -rs ArKanis/Manager.mrc
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.