Module: RubyCurses::EventHandler
- Included in:
- Action, ComboBox, DefaultListSelectionModel, DefaultTableColumnModel, DefaultTableModel, Form, ListDataModel, OLDDefaultListSelectionModel, PopupList, TabbedWindow, TableColumn, Widget
- Defined in:
- lib/rbcurse/rwidget.rb
Instance Method Summary collapse
-
#bind(event, *xargs, &blk) ⇒ Object
(also: #add_binding)
bind an event to a block, optional args will also be passed when calling.
-
#fire_handler(event, object) ⇒ Object
Fire all bindings for given event e.g.
-
#fire_property_change(text, oldvalue, newvalue) ⇒ Object
added on 2009-01-08 00:33 goes with dsl_property Need to inform listeners - done 2010-02-25 23:09.
Instance Method Details
#bind(event, *xargs, &blk) ⇒ Object Also known as: add_binding
bind an event to a block, optional args will also be passed when calling
274 275 276 277 278 279 280 281 282 283 284 |
# File 'lib/rbcurse/rwidget.rb', line 274 def bind event, *xargs, &blk #$log.debug "#{self} called EventHandler BIND #{event}, args:#{xargs} " @handler ||= {} @event_args ||= {} #@handler[event] = blk #@event_args[event] = xargs @handler[event] ||= [] @handler[event] << blk @event_args[event] ||= [] @event_args[event] << xargs end |
#fire_handler(event, object) ⇒ Object
Fire all bindings for given event e.g. fire_handler :ENTER, self currently object usually contains self which is perhaps a bit of a waste, could contain an event object with source, and some relevant methods or values
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 |
# File 'lib/rbcurse/rwidget.rb', line 295 def fire_handler event, object $log.debug " def fire_handler evt:#{event}, o: #{object.class}, hdnler:#{@handler}" if !@handler.nil? #blk = @handler[event] ablk = @handler[event] if !ablk.nil? aeve = @event_args[event] ablk.each_with_index do |blk, ix| #$log.debug "#{self} called EventHandler firehander #{@name}, #{event}, obj: #{object},args: #{aeve[ix]}" $log.debug "#{self} called EventHandler firehander #{@name}, #{event}" blk.call object, *aeve[ix] end end # if end # if end |
#fire_property_change(text, oldvalue, newvalue) ⇒ Object
added on 2009-01-08 00:33 goes with dsl_property Need to inform listeners - done 2010-02-25 23:09
313 314 315 316 317 318 319 320 321 322 |
# File 'lib/rbcurse/rwidget.rb', line 313 def fire_property_change text, oldvalue, newvalue #$log.debug " FPC #{self}: #{text} #{oldvalue}, #{newvalue}" if @pce.nil? @pce = PropertyChangeEvent.new(self, text, oldvalue, newvalue) else @pce.set( self, text, oldvalue, newvalue) end fire_handler :PROPERTY_CHANGE, @pce @repaint_required = true # this was a hack and shoudl go, someone wanted to set this so it would repaint (viewport line 99 fire_prop end |