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