module Iup::CallbackSetter

Public Instance Methods

define_callback(callback, name, type=:plain) click to toggle source
# File lib/wrapped/callback-setter.rb, line 4
def define_callback callback, name, type=:plain
  # use a hash to store callbacks
  @callbacks = {} unless @callbacks
  @callbacks[name] = callback

  case type
  when :d_i
    IupLib.IupSetCallbackD_I @handle, name, callback
  when :ff_i
    IupLib.IupSetCallbackFF_I @handle, name, callback
  when :fiis_i
    IupLib.IupSetCallbackFIIS_I @handle, name, callback
  when :s_i
    IupLib.IupSetCallbackS_I @handle, name, callback
  when :sii_i
    IupLib.IupSetCallbackSII_I @handle, name, callback
  when :i_i
    IupLib.IupSetCallbackI_I @handle, name, callback
  when :i_s
    IupLib.IupSetCallbackI_S @handle, name, callback
  when :ii_i
    IupLib.IupSetCallbackII_I @handle, name, callback
  when :iff_i
    IupLib.IupSetCallbackIFF_I @handle, name, callback
  when :iiff_i
    IupLib.IupSetCallbackIIFF_I @handle, name, callback
  when :iiffi_i
    IupLib.IupSetCallbackIIFFI_I @handle, name, callback
  when :iiffff_i
    IupLib.IupSetCallbackIIFFFF_I @handle, name, callback
  when :is_i
    IupLib.IupSetCallbackIS_I @handle, name, callback
  when :iis_i
    IupLib.IupSetCallbackIIS_I @handle, name, callback
  when :iii_i
    IupLib.IupSetCallbackIII_I @handle, name, callback
  when :iiii_i
    IupLib.IupSetCallbackIIII_I @handle, name, callback
  when :iiis_i
    IupLib.IupSetCallbackIIIS_I @handle, name, callback
  when :iiiis_i
    IupLib.IupSetCallbackIIIIS_I @handle, name, callback
  when :plain
    IupLib.IupSetCallbackPlain @handle, name, callback
  when :plain_v
    IupLib.IupSetCallbackPlain_v @handle, name, callback
  when :p_i
    IupLib.IupSetCallbackP_I @handle, name, callback
  when :pp_i
    IupLib.IupSetCallbackPP_I @handle, name, callback
  when :ss_i
    IupLib.IupSetCallbackSS_I @handle, name, callback
  when :ssi_i
    IupLib.IupSetCallbackSSI_I @handle, name, callback
  when :ssiii_i
    IupLib.IupSetCallbackSSIII_I @handle, name, callback
  else
    raise ArgumentError, "unknown callback type #{type}, name #{name}"
  end
end

Private Instance Methods

num_args(arity) click to toggle source
# File lib/wrapped/callback-setter.rb, line 67
def num_args arity
  result = ""

  arity.times do |i|
    result << "a#{i},"
  end
  result.sub!(/,$/, "")
  return result
end