Skip to content
  • Utkarsh Ayachit's avatar
    make vtkOutputWindow easier to subclass/use · f156dd4e
    Utkarsh Ayachit authored
    This addresses the following issues with vtkOutputWindow.
    
    1. `vtkOutputWindow::DisplayText` method gets called for all types of
       messages and fired vtkCommand::MessageEvent. With no ability to
       determine the type of message in DisplayText overrides or
       MessageEvent handlers, this has little utility and one always ended
       up handling/overriding other `Display.*` methods. There was still a
       problem: it was challenging to determine if `DisplayText` was
       directly being called for output messages rather than via any of the
       other `Display.*` methods.
    
       This is fixed by adding `vtkOutputWindow::GetCurrentMessageType`
       protected method. Subclasses can use that in
       `vtkOutputWindow::DisplayText` overrides to determine message type.
    
       Additionally, a new `vtkCommand::TextEvent` is fired by
       `vtkOutputWindow::DisplayText` when the method is directly invoked.
    
    2. vtkOutputWindow presented all messages to `cerr`. It should put
       `vtkOutputWindow::DisplayText` to `cout` as those are not exceptions.
       Added `UseStdErrorForAllMessages` (defaults to same behavior as
       before) to change this.
    f156dd4e