module Responder
Public Instance Methods
FXMAPFUNC(type, id, func)
click to toggle source
Define one function
# File lib/fox16/responder.rb, line 67 def FXMAPFUNC(type, id, func) addMapEntry(Fox.MKUINT(id, type), Fox.MKUINT(id, type), func) end
FXMAPFUNCS(type, keylo, keyhi, func)
click to toggle source
Define range of functions
# File lib/fox16/responder.rb, line 62 def FXMAPFUNCS(type, keylo, keyhi, func) addMapEntry(Fox.MKUINT(keylo, type), Fox.MKUINT(keyhi, type), func) end
FXMAPTYPE(type, func)
click to toggle source
Define one function type
# File lib/fox16/responder.rb, line 57 def FXMAPTYPE(type, func) addMapEntry(Fox.MKUINT(Fox::MINKEY, type), Fox.MKUINT(Fox::MAXKEY, type), func) end
FXMAPTYPES(typelo, typehi, func)
click to toggle source
Define range of function types
# File lib/fox16/responder.rb, line 52 def FXMAPTYPES(typelo, typehi, func) addMapEntry(Fox.MKUINT(Fox::MINKEY, typelo), Fox.MKUINT(Fox::MAXKEY, typehi), func) end
addMapEntry(lo, hi, func)
click to toggle source
Add new or replace existing map entry
# File lib/fox16/responder.rb, line 41 def addMapEntry(lo, hi, func) func = func.intern if func.is_a? String currIndex = assocIndex(lo, hi) if currIndex < 0 messageMap.push([lo, hi, func]) else messageMap[currIndex] = [lo, hi, func] end end
assocIndex(lo, hi)
click to toggle source
Look up array index of this message map entry
# File lib/fox16/responder.rb, line 29 def assocIndex(lo, hi) currIndex = -1 assocs = messageMap assocs.each_index do |i| if assocs[i][0] == lo && assocs[i][1] == hi currIndex = i end end currIndex end
identifier(*ids)
click to toggle source
Generates identifiers as class constants. Originally submitted by Sean O’Halpin, slightly modified by Lyle.
# File lib/fox16/responder.rb, line 9 def identifier(*ids) ids << :ID_LAST base = self.class.superclass::ID_LAST vals = enum(base, ids.size) ids.each_index do |i| unless self.class.const_defined?(ids[i]) self.class.class_eval("#{ids[i].id2name} = #{vals[i]}") end end end
messageMap()
click to toggle source
Return the array of (selector -> func) associations
# File lib/fox16/responder.rb, line 21 def messageMap unless instance_variables.include?("@assocs") || instance_variables.include?(:@assocs) @assocs = [] end @assocs end