I am currently designing a number of widgets for an application. I try to follow the principles I find in the widgets that are part of the vtk library. I had a closer look at vtkBorderRepresentation
and found, that while a manual change of the PositionCoordinate
(i.e. a call to SetPositionCoordinate( ... )
), which determines a geometric feature of the widget is considered in the MTime
calculation, it does not invoke a Modified
event. An interaction with said geometric features does however trigger said event. So does a call to another manual geometric function (SetWindowLocation( ... )
). On the other hand, changing colors, does also not invoke a Modified
event.
It seems like all the manual changes that are set up via the vtk macros do just omit the invocation of the Modified
event, while manually set up functions do explicitly call the InvokeEvent
function. From a user perspective, this seems to produce inconsistent behavior.
I guess my question is: When does the user expect my widget to invoke a Modified
event?