Methods
- N
Class Public methods
new()
Link
# File ext/tk/sample/tkextlib/blt/calendar.rb, line 50 def initialize() today = Date.today if TkComm.bool(Tk.info(:commands, '.calendar')) Tk.destroy('.calendar') end cal = Tk::BLT::Tile::Frame.new(:widgetname=>'.calendar', :classname=>'Calendar', :width=>'3i', :height=>'3i') mon = Tk::BLT::Tile::Label.new(cal, :font=>'Courier 14 bold', :text=>"#{@@monthInfo[today.month][0]} " + "#{today.year}") Tk::BLT::Table.add(cal, mon, [1, 0], :cspan=>7, :pady=>10) week_f = Tk::BLT::Tile::Frame.new(cal, :widgetname=>'weekframe', :relief=>:sunken, :borderwidth=>1) Tk::BLT::Table.add(cal, week_f, [2, 0], :columnspan=>7, :fill=>:both) @@abbrDays.each_with_index{|dayName, idx| Tk::BLT::Table.add(cal, Tk::BLT::Tile::Label.new(cal, :text=>dayName, :font=>'Helvetica 12'), [2, idx], :pady=>2, :padx=>2) } Tk::BLT::Table.itemconfigure(cal, 'c*', 'r2', :pad=>4) numDays = @@monthInfo[today.month][1] week = 0 cnt = 1 wkday = today.wday - ((today.day - 1) % 7) wkday += 7 if wkday < 0 while cnt <= numDays Tk::BLT::Table.add(cal, Tk::BLT::Tile::Label.new(cal, :text=>cnt){ self.configure(:borderwidth=>1, :relief=>:sunken) if cnt == today.day }, [week+3, wkday], :fill=>:both, :ipadx=>10, :ipady=>4) cnt += 1 wkday += 1 if wkday == 7 week += 1 wkday = 0 end end Tk::BLT::Tile::Frame.new(cal, :borderwidth=>1, :relief=>:sunken){|f| Tk::BLT::Table.add(f, Tk::BLT::Tile::Button.new(f, :widgetname=>'button', :command=>proc{exit}, :borderwidth=>2, :text=>'Quit'), :padx=>4, :pady=>4) Tk::BLT::Table.add(cal, f, [week+4, 5], :cspan=>2, :pady=>4) } Tk::BLT::Table.add(Tk.root, cal, :fill=>:both) Tk::BLT::Table.itemconfigure(cal, 'r0', :resize=>:none) end