Difference between revisions of "2006 Project Week MIT SlicerUI"
Line 21: | Line 21: | ||
[http://www.slicer.org/slicerWiki/index.php/Slicer3:UserFeedbackAndFeatureRequests Slicer3 Feature Requests] and | [http://www.slicer.org/slicerWiki/index.php/Slicer3:UserFeedbackAndFeatureRequests Slicer3 Feature Requests] and | ||
− | [ | + | [http://www.slicer.org/slicerWiki/index.php/Slicer3:EventBindings#Mouse_Modes_and_Actions Proposed Mouse and Keyboard Behavior]. |
== Specific Programming Topics == | == Specific Programming Topics == |
Revision as of 21:58, 5 November 2008
Home < 2006 Project Week MIT SlicerUIContents
Abstract
Design and implement the UI for Slicer3; develop infrastructure for adding Module GUIs.
Discussion
Slicer3's Data and Logic layers are independent of the GUI layer, so that Slicer's base and modules are scriptable and easy to test. Infrastructure for developing module GUIs is in place and we'll describe that this week.
We'll also give an overview of Slicer3's new GUI design: the main GUI is coarsely blocked out at present and we'll go over the next steps in the design process. Further implementation and design will benefit from this week's feature request and usability discussion.
Slide
File:2006 Summer Project Week Slicer3UI.ppt
Project Page
Please see:
Proposed Mouse and Keyboard Behavior.
Specific Programming Topics
- Getting access to Interactor events
- Cross-platform behavior (linux vs windows)
FIXED: (probably) the vtkKWGenericRenderWinderInteractor was not Tcl wrapped. Give it a shot (fix vtkSlicerSliceViewer::GetRenderWindowInteractor first) - how to get the alt key as a mouse event modifier
In VTK CVS for Win32 now, Unix version to come (This page mentions only ShiftMask and ControlMask. After googling, Mod1Mask seems to do the trick...) - ConfigureEvents not going to all slice viewer RenderWidgets
FIXED: update KWWidgets, there was a de-sync between an interactor ivar, or the fact that the interactor could be reset on the vtkRenderWindow directly. And also, a vtkRenderWindowInteractor was created and assigned implicitly by Slicer, instead of a vtkGenericRenderWindowInteractor... Update: still broken, weird stuff happening.
- Cross-platform behavior (linux vs windows)
- Event Loop Management
- How to set up event driven control of command line modules so the application doesn't freeze when they run --> make a Tcl_Channel from the stdin/out/errs from the kwsys calls
Solution for command line modules running as processes is to generate file events for them, but now that they can be loaded as dll's that won't work. We need to figure out a way to keep the application from freezing
- Can launcher have a splash screen (so user knows something is happening while libraries load). Ties into question of whether a launcher is needed for releases.
- Avoiding Extra Renders
- Avoid 'jerky' display behavior
- need to handle widgets and render windows
- involves both window system events and vtk internal events
- VTK 3D Widgets
- Providing additional visible feedback for when handle are 'hot' during mouseover
- Tying together 2D and 3D Widgets
- Catalog and Prioritize which of the 3D Widgets will be used in Slicer3
- KWWidget Creation/Usage
- how to make vtkSlicerSliceControllerWidget expand when it's frame expands?
FIXED: grid does not expand by default, you need to use grid columnconfigure 0 -weight 1 - for easier debugging, make the autogenerated widget names include the class (e.g. .vtkKWToplevel706.vtkSlicerSliceControllerWidget707 instead of .706.707)
FIXED: use new vtkKWWidget::SetUseClassNameInWidgetName method - Any way to set a maximum screen size (font size) for corner annotations?
FIXED: use new vtkCornerAnnotation::SetMaximumFontSize method - Use new tkcon with extra binding
Steve to send Sebastien the binding to include in KWWidgets's TkCon
- how to make vtkSlicerSliceControllerWidget expand when it's frame expands?
Participants
- Wendy Plesniak - Core 2
- Sebastien Barre - Core 2
- Steve Pieper - Core 2
- Mathieu Malaterre - Core 2
- Randy Gollub - Core 5
- Michael Halle - Core 2
- Will Schroeder - Core 2