ulis, 2006-11-29. Un package pour faire une barre d'outils.
Pourquoi
Parce que c'est facile et utile.
Comment
Bin avec un widget frame et des boutons !
Heu... Les séparateurs c'est des widgets label.
Description
# ==================================== # usage : # # toolsbar .tb # foreach img {new open save} \ # { .tb add -image $img -command p$img } # .tb add -separ 1 # ==================================== # opérations du package pour les options de la barre : # # toolsbar ?create? path ?-default value?... # crée une barre et la configure # toolsbar get -default # retourne la valeur par défaut # toolsbar set ?-default value?... # modifie les valeurs par défaut # ==================================== # opérations du package pour les options des boutons : # # toolsbar itemget -default # retourne la valeur par défaut # toolsbar itemset ?-default value?... # modifie les valeurs par défaut # ==================================== # opérations pour une barre : # # path add ?-itemoption value?... # crée un bouton ou un séparateur et le configure # path cget -option # retourne la valeur de l'option # path config ?-default value?... # modifie les valeurs des options # ==================================== # opérations pour un bouton : # # path itemcget tagid -option # retourne la valeur de l'option # path itemconfig tagid ?-default value?... # modifie les valeurs des options # ==================================== # options pour la barre : # # les options modifiables du widget frame # et : # -delay1 délai avant d'afficher un ballon d'aide # -delay2 délai avant de supprimer un ballon d'aide # -padx largeur de la bordure des boutons # -pady hauteur de la bordure des boutons # ==================================== # options pour les boutons : # # les options d'un widget button pour les boutons # les options d'un widget label pour les séparateurs # et : # -after indice de l'item d'avant # -before indice de l'item d'après # -img image du bouton (synonyme de -image) # -separ booléen indiquant si l'item est un séparateur # -tags liste des tags de l'item # -tip texte de la bulle d'aide # ====================================
Configuration
Installation
Utilisation
package require ToolsBar
Script pkgIndex.tcl
package ifneeded ToolsBar 1.0 [list source [file join $dir ToolsBar.tcl]]
Démo
# ================ # # démo # # ================ package require ToolsBar package require http wm geometry . +200+200 grid [toolsbar .t] -sticky new grid rowconfig . 1 -weight 1 grid columnconf . 0 -weight 1 foreach name {new import export copy paste undo redo hint} \ { if {![file exists $name.gif]} \ { if {![winfo exists .down]} \ { toplevel .down -bg gold -padx 10 -pady 20 wm geometry .down +100+100 label .down.l -bg gold grid .down.l } .down.l config -text "Downloading $name.gif" raise .down update set img [image create photo -width 32 -height 32] set fp [open $name.gif w] fconfigure $fp -translation binary set url http://wfr.tcl.tk/fichiers/images/ulis puts -nonewline $fp [http::data [http::geturl $url/$name.gif]] close $fp } set img [image create photo -width 32 -height 32 -file $name.gif] .t add -img $img -tip $name } if {[winfo exists .down]} { destroy .down } .t add -separ 1 -after 2 -padx 5 .t add -separ 1 -after 5 grid [frame .f -bg white -bd 1 -relief groove] -sticky nsew wm geometry . =400x200 raise .
Voir Aussi
Discussion
Catégorie Paquet | Catégorie Interface utilisateur