une horloge dans le tray

 

dc 03/06/08 : etcl (décidément !) contient une petite bibliothèque sympathique [Tktray] [1]. Celle-ci permet de positionner une icône dans le tray (zone de notification ?) sous X11 sous des environnements comme [Gnome] ou encore [KDE] (je n'ai pas testé ce dernier).

Couplée avec pixane, [Tktray] permet donc d'élaborer une petite horloge (je suis monomaniaque !) dans le tray. Bon en même temps, une horloge n'a pas trop sa place dans un tray.

 package require Tk
 package require pixane
 package require tktray

 namespace eval hntray {
     variable police
     variable hauteur
     variable largeur
 }

 proc hntray::creePolice {famille taille} {
     variable police
     variable hauteur
     variable largeur

     set police [pixfont create -builtin $famille]
     lassign [pixfont measure $police $taille "00:00.00"] largeur a d
     set hauteur [expr {$a+$d}]
 }

 proc hntray::afficheHeure {taille couleur} {
     variable police
     variable hauteur
     variable largeur

     lassign [clock format [clock seconds] -format "%H %M %S"] h m s
     #
     set p [pixane create]
     pixane resize $p $largeur $hauteur
     pixane blank $p
     pixane color $p $couleur
     pixane text $p 0 $hauteur -text "$h:$m.$s" -font $police -size $taille
     #
     .icoTray configure -image [pixcopy $p]
     #
     pixane delete $p
     #
     after 1000 [list hntray::afficheHeure $taille $couleur]
 }

 proc hntray::robert {famille taille couleur} {

     hntray::creePolice $famille $taille
     tktray::icon .icoTray
     # faudra bien viser !!
     bind .icoTray <1> exit
     hntray::afficheHeure $taille $couleur
     #
     wm withdraw .
 }

 hntray::robert "sans-serif bold" 10 white