I am trying to use `x11/xlib` from `occt` but I am facing this error:
In the following code:
...
proc processMessage*(this: var XwWindow; theListener: var
AIS_ViewController;
theMsg: var XEvent): bool {.cdecl, importcpp:
"ProcessMessage".} # <-------------
proc main =
var aViewer:OcctAisHello
(aViewer.myContext, aViewer.myView) = getContextAndView()
# X11 event loop
var aWindow:Handle[Xw_Window] = newHandle( cast[ptr Xw_Window](
get(window( *aViewer.view() )) ) )
var aDispConn:Handle[Aspect_DisplayConnection] =
getDisplayConnection(*driver( *viewer(*aViewer.view() )))
var display = getDisplayAspect( *aDispConn )
var event: XEvent # <--------------
var anDisplay = cast[ptr Display](display)
while true:
discard XNextEvent(anDisplay, event.addr)
discard (*aWindow).processMessage(aViewer, event) # <--------------
main()
Run
y get the error:
/home/jose/.cache/nim/viewer04_d/@mviewer04.nim.cpp: In function 'void
main__viewer4852_467()':
/home/jose/.cache/nim/viewer04_d/@mviewer04.nim.cpp:1031:68: error: cannot
convert 'tyObject_XEvent__EZvRvOUywFnBp4PzilZBoA' to 'XEvent&' {aka '_XEvent&'}
1031 | (void)((* aWindow).ProcessMessage(aViewer,
event));
|
^~~~~
| |
|
tyObject_XEvent__EZvRvOUywFnBp4PzilZBoA
In file included from
/home/jose/.cache/nim/viewer04_d/@mviewer04.nim.cpp:19:
/usr/include/opencascade/Xw_Window.hxx:129:56: note: initializing
argument 2 of 'virtual bool
Xw_Window::ProcessMessage(Aspect_WindowInputListener&, XEvent&)'
129 | XEvent& theMsg);
| ~~~~~~~~^~~~~~
Error: execution of an external compiler program 'g++ -c -std=gnu++14
-funsigned-char -w -fmax-errors=3 -fpermissive -I/usr/include/opencascade/
-I/usr/import/opencascade/ -I/home/jose/.choosenim/toolchains/nim-1.6.6/lib
-I/home/jose/src/nimlang/occt.nim/examples -o
/home/jose/.cache/nim/viewer04_d/@mviewer04.nim.cpp.o
/home/jose/.cache/nim/viewer04_d/@mviewer04.nim.cpp' failed with exit code: 1
Run
`processMessage` has the argument: `theMsg: var XEvent` and later I define `var
event: XEvent`. I don't understand why, when I call `discard
(*aWindow).processMessage(aViewer, event)` it looks like if the were different
types.