> But some callbacks have additional parameters! And in C example code for the 
> library they just cast the different callback signatures with (Icallback).

In this case you have no other choice then to use cast to call the C functions 
and it's completly justified. I don't know much about iup, though you could try 
something like that to make it safer:
    
    
    proc setCallbackClick(ih: PtrIHandle, handler: proc (arg: PtrIhandle, 
mousebutton: cint): cint {.cdecl.}) =
      ih.setCallback("CLICK", cast[Icallback](handler))
    
    
    Run

Reply via email to