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. 

Reply via email to