<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-06-17 13:16 GMT+02:00 Andrea Borsic <span dir="ltr"><<a href="mailto:aborsic@ne-scientific.com" target="_blank">aborsic@ne-scientific.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><span class="">
    <br>
    <div dir="ltr">
      <div class="gmail_extra">
        <div class="gmail_quote"><span></span>
          <div>In C++, a callback can return "true" to stop event
            propagation:</div>
          <div><br>
          </div>
          <div>  // Description:</div>
          <div>  // This method invokes an event and return whether the
            event was</div>
          <div>  // aborted or not. If the event was aborted, the return
            value is 1,</div>
          <div>  // otherwise it is 0.</div>
          <div>  int InvokeEvent(unsigned long event, void *callData);</div>
          <div>  int InvokeEvent(unsigned long event);</div>
          <div><br>
          </div>
          <div>When this feature was added for C++, it wasn't added to
            vtkPythonCommand.cxx (an oversight), so vtkPythonCommand.cxx
            would have to be modified to add this behavior for Python.</div>
          <div><br>
          </div>
          <div>Regarding calldata, see the following merge request (now
            merged):</div>
          <div><a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/1543/commits" target="_blank">https://gitlab.kitware.com/vtk/vtk/merge_requests/1543/commits</a><br>
          </div>
          <div>If Hasting happens to be reading this, please note that
            commit messages should be a wee bit more descriptive...</div>
          <div><br>
          </div>
          <div>I can't say much about the rest.  The interactors aren't
            my favorite part of VTK.</div>
        </div>
      </div>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <div>I'm also curious, if you don't mind me asking: Have you
              used a lot of PyQt+VTK? If so, did you use the interactor
              style system or did you forego using it completely?<br>
              <br>
            </div>
            <div>Elvis<br>
            </div>
            <div><br>
            </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div dir="ltr">
                <div class="gmail_extra">
                  <div class="gmail_quote"><span><font color="#888888">
                        <div><br>
                        </div>
                        <div> - David</div>
                      </font></span></div>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
    </blockquote>
    <br>
    <br></span>
    Hi Elvis,<br>
    <br>
    I am not entirely sure this answer is relevant.  One can customize
    the response to particular events in this way:<br>
    <br>
    1) by registering a call back command with a higher priority w.r.t.
    to default observers, with a statement like:<br>
    <br>
    cmd_id = interactor.AddObserver("LeftButtonPressEvent",
    self.MouseButtonCallback, 0.5) # use a priority of 0.5 which should
    be higher than default observers (0.0)<br>
    <br>
    2) by inspecting / acting on the event within the call back command,
    and if further processing of the event by other observers (for
    example the default interactor) needs to be prevented, by using
    something like:<br>
     <br>
    command = interactor.GetCommand(cmd_id)<br>
    command.SetAbortFlag(1)<br>
    <br>
    the above should stop any further handling of the event.<br>
    <br>
    This is therefore a possible way of overriding the default behavior
    of the interactor associated with render window.<br>
    <br>
    I am not entirely sure though whether this was the behavior your
    were looking for.<br></div></blockquote><div><br></div><div>Thanks a lot. I think in a way this is as close as I'm going to get to what I wanted, but for one thing: I wanted to be able to modify the event (say the x/y of a mouse event) before "passing it on" for further processing, which I don't think is possible.<br><br></div><div>But I think I've realized now that this is probably a bad way of anchieving my goal, and I'm not working on a completely custom interactor style instead (using vtkInteractorStyleUser).<br><br></div><div>Elvis<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    Best,<br>
    <br>
    Andrea<br>
  </div>

<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div></div>