Class: BLT_Calendar_sample
Constant Summary collapse
- @@monthInfo =
[ nil, # dummy ['January', 31], ['February', 28], ['March', 31], ['April', 30], ['May', 31], ['June', 30], ['July', 31], ['August', 31], ['Septembar', 30], ['October', 31], ['November', 30], ['December', 31] ]
- @@abbrDays =
[ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ]
Instance Method Summary collapse
-
#initialize ⇒ BLT_Calendar_sample
constructor
A new instance of BLT_Calendar_sample.
Constructor Details
#initialize ⇒ BLT_Calendar_sample
Returns a new instance of BLT_Calendar_sample.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File '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 |