15 #ifndef niftkMultiViewerWidget_h
16 #define niftkMultiViewerWidget_h
18 #include <niftkDnDDisplayExports.h>
25 #include <mitkBaseProperty.h>
26 #include <mitkRenderingManager.h>
42 class QmitkRenderWindow;
52 class MultiViewerControls;
80 MagnificationBinding = 4,
81 WindowLayoutBinding = 8,
90 mitk::RenderingManager* renderingManager,
91 QWidget* parent = 0, Qt::WindowFlags
f = 0);
99 void RequestUpdateAll();
102 void SetViewerNumber(
int viewerRows,
int viewerColumns);
109 int GetBindingOptions()
const;
112 void SetBindingOptions(
int bindingOptions);
115 void SetBackgroundColour(QColor backgroundColour);
124 void SetDefaultSingleWindowLayout(
WindowLayout windowLayout);
133 void SetShowDropTypeControls(
bool visible);
136 bool AreShowOptionsVisible()
const;
139 void SetShowOptionsVisible(
bool visible);
142 bool AreWindowLayoutControlsVisible()
const;
145 void SetWindowLayoutControlsVisible(
bool visible);
148 bool AreViewerNumberControlsVisible()
const;
151 void SetViewerNumberControlsVisible(
bool visible);
154 void SetShowMagnificationSlider(
bool visible);
157 bool IsCursorVisible()
const;
160 void SetCursorVisible(
bool visibile);
164 bool GetCursorDefaultVisibility()
const;
168 void SetCursorDefaultVisibility(
bool visibile);
171 bool AreDirectionAnnotationsVisible()
const;
174 void SetDirectionAnnotationsVisible(
bool visible);
177 bool IsIntensityAnnotationVisible()
const;
180 void SetIntensityAnnotationVisible(
bool visible);
183 bool GetShow3DWindowIn2x2WindowLayout()
const;
186 void SetShow3DWindowIn2x2WindowLayout(
bool enabled);
189 void SetRememberSettingsPerWindowLayout(
bool rememberSettingsPerWindowLayout);
192 void SetSliceTracking(
bool tracking);
195 void SetTimeStepTracking(
bool tracking);
198 void SetMagnificationTracking(
bool tracking);
201 void SetTimeStep(
int timeStep);
204 void SetSelectedWindowTo3D();
207 virtual bool ToggleCursorVisibility();
210 bool GetThumbnailMode()
const;
213 void SetThumbnailMode(
bool thumbnailMode);
224 virtual QmitkRenderWindow* GetSelectedRenderWindow()
const;
229 virtual QHash<QString,QmitkRenderWindow*> GetRenderWindows()
const;
234 virtual QmitkRenderWindow* GetRenderWindow(
const QString&
id)
const;
240 mitk::Point3D GetSelectedPosition(
const QString&
id = QString())
const;
246 virtual void SetSelectedPosition(
const mitk::Point3D& pos,
const QString&
id = QString());
251 virtual bool IsLinkedNavigationEnabled()
const;
256 virtual void EnableLinkedNavigation(
bool enabled);
265 virtual bool eventFilter(QObject*
object, QEvent*
event);
269 void BindingOptionsChanged(
int bindingOptions);
274 void OnSelectedSliceControlChanged(
int selectedSlice);
277 void OnTimeStepControlChanged(
int timeStep);
280 void OnMagnificationControlChanged(
double magnification);
283 void OnCursorVisibilityControlChanged(
bool visible);
286 void OnShowDirectionAnnotationsControlsChanged(
bool visible);
289 void OnShowIntensityAnnotationControlsChanged(
bool visible);
292 void OnShow3DWindowControlChanged(
bool visible);
295 void OnWindowLayoutControlChanged(
WindowLayout windowLayout);
298 void OnWindowCursorBindingControlChanged(
bool);
301 void OnWindowMagnificationBindingControlChanged(
bool);
304 void OnViewerNumberControlChanged(
int rows,
int columns);
307 void OnViewerPositionBindingControlChanged(
bool bound);
310 void OnViewerCursorBindingControlChanged(
bool bound);
313 void OnViewerWindowLayoutBindingControlChanged(
bool bound);
316 void OnViewerMagnificationBindingControlChanged(
bool bound);
319 void OnViewerGeometryBindingControlChanged(
bool bound);
325 void OnDropAccumulateControlChanged(
bool checked);
328 void OnFocusChanged();
332 void OnSelectedPositionChanged(
const mitk::Point3D& selectedPosition);
336 void OnTimeStepChanged(
int timeStep);
339 void OnCursorPositionChanged(
WindowOrientation orientation,
const mitk::Vector2D& cursorPosition);
348 void OnTimeGeometryChanged(
const mitk::TimeGeometry* timeGeometry);
351 void OnCursorPositionBindingChanged(
bool bound);
354 void OnScaleFactorBindingChanged(
bool bound);
357 void OnCursorVisibilityChanged(
bool visible);
360 void OnDirectionAnnotationsVisibilityChanged(
bool visible);
363 void OnIntensityAnnotationVisibilityChanged(
bool visible);
366 void OnPopupOpened(
bool opened);
369 void OnPinButtonToggled(
bool checked);
379 void Update2DCursorVisibility();
382 void UpdateBoundGeometry(
bool isBoundNow);
385 void SetSelectedRenderWindow(
int selectedViewerIndex, QmitkRenderWindow* selectedRenderWindow);
390 QGridLayout* m_TopLevelLayout;
391 QGridLayout* m_LayoutForRenderWindows;
394 QToolButton* m_PinButton;
395 ctkPopupWidget* m_PopupWidget;
398 static const int m_MaxViewerRows = 5;
399 static const int m_MaxViewerColumns = 5;
402 QList<SingleViewerWidget*> m_Viewers;
407 mitk::RenderingManager* m_RenderingManager;
410 int m_SelectedViewerIndex;
413 int m_ViewerRowsInNonThumbnailMode;
414 int m_ViewerColumnsInNonThumbnailMode;
415 bool m_Show3DWindowIn2x2WindowLayout;
416 bool m_CursorDefaultVisibility;
417 QColor m_BackgroundColour;
418 bool m_RememberSettingsPerWindowLayout;
419 bool m_ThumbnailMode;
420 bool m_LinkedNavigationEnabled;
421 double m_Magnification;
425 int m_BindingOptions;
429 unsigned long m_FocusManagerObserverTag;
WindowOrientation
Describes the different types of orientation, axial, sagittal, coronal, that can be achieved in the D...
Definition: niftkDnDDisplayEnums.h:29
DnDDisplayDropType
Describes the different modes that can be used when drag and dropping into the DnD Display window...
Definition: niftkDnDDisplayEnums.h:163
GLenum GLsizei const GLuint GLboolean enabled
Definition: glew.h:2537
Control panel for the DnD display.
Definition: niftkMultiViewerControls.h:35
itk::SpatialOrientation::ValidCoordinateOrientationFlags GetOrientation(ImageType::Pointer image)
Definition: niftkBreastDensityFromMRIsGivenMaskAndImage.cxx:146
WindowLayout
Describes the different render window layouts. So one WindowLayout could have multiple windows of dif...
Definition: niftkDnDDisplayEnums.h:49
GLenum GLenum GLvoid GLvoid * column
Definition: glew.h:4074
DnDDisplayInterpolationType
Describes what the interpolation type should be set to when an image is dropped.
Definition: niftkDnDDisplayEnums.h:174
GLuint const GLchar * name
Definition: glew.h:1798
GLenum GLenum GLvoid * row
Definition: glew.h:4074
cl_event event
Definition: glew.h:3231
Maintains a list of SingleViewerWidgets and coordinates visibility properties by listening to AddNode...
Definition: niftkMultiViewerVisibilityManager.h:61
Definition: niftkExceptionObject.h:21
GLclampf f
Definition: glew.h:3136