1# label.rb 2# 3# This demonstration script creates a toplevel window containing 4# several label widgets. 5# 6# label widget demo (called by 'widget') 7# 8 9# toplevel widget 10if defined?($label_demo) && $label_demo 11 $label_demo.destroy 12 $label_demo = nil 13end 14 15# demo toplevel widget 16$label_demo = TkToplevel.new {|w| 17 title("Label Demonstration") 18 iconname("label") 19 positionWindow(w) 20} 21 22base_frame = TkFrame.new($label_demo).pack(:fill=>:both, :expand=>true) 23 24# label 25msg = TkLabel.new(base_frame) { 26 font $font 27 wraplength '4i' 28 justify 'left' 29 text "Five labels are displayed below: three textual ones on the left, and a bitmap label and a text label on the right. Labels are pretty boring because you can't do anything with them." 30} 31msg.pack('side'=>'top') 32 33# frame 34TkFrame.new(base_frame) {|frame| 35 TkButton.new(frame) { 36 text 'Dismiss' 37 command proc{ 38 tmppath = $label_demo 39 $label_demo = nil 40 tmppath.destroy 41 } 42 }.pack('side'=>'left', 'expand'=>'yes') 43 44 TkButton.new(frame) { 45 text 'See Code' 46 command proc{showCode 'label'} 47 }.pack('side'=>'left', 'expand'=>'yes') 48 49}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m') 50 51# label demo 52f_left = TkFrame.new(base_frame) 53f_right = TkFrame.new(base_frame) 54[f_left, f_right].each{|w| w.pack('side'=>'left', 'expand'=>'yes', 55 'padx'=>10, 'pady'=>10, 'fill'=>'both')} 56 57# label 58[ TkLabel.new(f_left, 'text'=>'First label'), 59 TkLabel.new(f_left, 'text'=>'Second label, raised', 60 'relief'=>'raised'), 61 TkLabel.new(f_left, 'text'=>'Third label, sunken', 'relief'=>'sunken') 62].each{|w| w.pack('side'=>'top', 'expand'=>'yes', 'pady'=>2, 'anchor'=>'w')} 63 64# TkLabel.new(f_right) { 65Tk::Label.new(f_right) { 66 bitmap('@' + [$demo_dir,'..','images','face.xbm'].join(File::Separator)) 67 borderwidth 2 68 relief 'sunken' 69}.pack('side'=>'top') 70 71TkLabel.new(f_right) { text 'Tcl/Tk Proprietor' }.pack('side'=>'top') 72 73