Page MenuHomePhabricator

Send event in RenderingManager if the RenderWindow focus has changed
Closed, ResolvedPublic

Description

add send event in void RenderingManager::SetRenderWindowFocus(vtkRenderWindow *focusWindow)
-> mitkRenderingManager.cpp

Event Timeline

User kolbch has pushed new remote branch:

bug-19697-AddEventToFocusChangeInRenderingManager

User kolbch has pushed new remote branch:

bug-19697-FocusEventListenerExample

What's the thing with the two branches?

TODOs:

  • I would prefer to see the FocusChangedEvent in its own header/cpp.
  • Why is m_RenderWindow protected instead of private?
  • Always suspicious when the assignment operator is "deleted" but the cctor is not? Also, we prefer the signature that returns a reference to the class instead of void.
  • Is an ITK event object really supposed to be uncopyable? And if it is, isn't that already done by the base class maybe?
  • I would prefer to delete all the virtuals and mark the class with the final keyword.

The second branch contains an example, where the FocusChangedEvent is used in the ScreenshotMakerView in order to indicate which RenderWindow has the focus.

The renderwindow parameter was removed since the focused renderwindow can also be obtained by calling RenderingManager::GetFocusedRenderWindow.
The new event is much simpler and is created by macro.

[49319d]: Merge branch 'bug-19697-AddEventToFocusChangeInRenderingManager'

Merged commits:

2016-05-19 17:11:07 Christoph Kolb [507f3b]
remove unnecessary includes


2016-05-19 13:27:59 Christoph Kolb [793495]
use itkEventMacroDeclaration and definition for the FocusChangedEvent


2016-05-18 16:12:20 Christoph Kolb [51f282]
invoke event when focus is changed