Module: Iup::CallbackSetter

Included in:
Timer, Widget
Defined in:
lib/wrapped/callback-setter.rb

Instance Method Summary collapse

Instance Method Details

#define_callback(callback, name, type = :plain) ⇒ Object



4
5
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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