# poToolbar.tcl # Simple package to implement a toolbar. # Paul Obermeier, 2001. package provide poToolbar 1.0 namespace eval ::poToolbar { namespace export AddGroup namespace export AddButton namespace export AddCheckButton variable groupNum } proc ::poToolbar::Init {} { variable groupNum set groupNum 1 } proc ::poToolbar::AddGroup { w } { variable groupNum if { ![info exists groupNum]} { Init } set newFrame $w.fr$groupNum frame $newFrame -relief raised -borderwidth 1 pack $newFrame -side left -fill y incr groupNum return $newFrame } proc ::poToolbar::AddButton { btnName bmpData cmd str args } { variable groupNum if { ![info exists groupNum]} { Init } if { [string compare $bmpData ""] == 0 } { eval button $btnName -relief flat -takefocus 0 \ -command [list $cmd] $args } else { set img [image create bitmap -data $bmpData] eval button $btnName -image $img -relief flat \ -takefocus 0 \ -command [list $cmd] $args } ::poToolhelp::AddBinding $btnName $str pack $btnName -side left } proc ::poToolbar::AddCheckButton { btnName bmpData cmd str args } { variable groupNum if { ![info exists groupNum]} { Init } if { [string compare $bmpData ""] == 0 } { eval checkbutton $btnName -relief flat -indicatoron 0 \ -takefocus 0 -command [list $cmd] $args } else { set img [image create bitmap -data $bmpData] eval checkbutton $btnName -image $img -relief flat -indicatoron 0 \ -takefocus 0 -command [list $cmd] $args } ::poToolhelp::AddBinding $btnName $str pack $btnName -side left } catch {puts "Loaded Package poToolbar (File [info script])"}