Class: Button_clone
Instance Method Summary collapse
- #command(cmd = Proc.new) ⇒ Object
-
#initialize(*args) ⇒ Button_clone
constructor
A new instance of Button_clone.
- #invoke ⇒ Object
Constructor Details
#initialize(*args) ⇒ Button_clone
Returns a new instance of Button_clone.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'sample/binding_sample.rb', line 6 def initialize(*args) @command = nil if args[-1].kind_of?(Hash) keys = _symbolkey2str(args.pop) @command = keys.delete('command') keys['highlightthickness'] = 1 unless keys.key?('highlightthickness') keys['padx'] = '3m' unless keys.key?('padx') keys['pady'] = '1m' unless keys.key?('pady') keys['relief'] = 'raised' unless keys.key?('relief') args.push(keys) end super(*args) @press = false self.bind('Enter', proc{self.background(self.activebackground)}) self.bind('Leave', proc{ @press = false self.background(self.highlightbackground) self.relief('raised') }) self.bind('ButtonPress-1', proc{@press = true; self.relief('sunken')}) self.bind('ButtonRelease-1', proc{ self.relief('raised') @command.call if @press && @command @press = false }) end |