19 #include <QHBoxLayout> 20 #include <QVBoxLayout> 25 : QObject(), m_RenderWindow(rw), m_PropertyList(pl)
68 #if !defined(_WIN32) || defined(_WIN64) 88 QPalette p = QPalette();
89 p.setColor(QPalette::Window, Qt::transparent);
99 layout->setDirection(QBoxLayout::TopToBottom);
100 layout->setAlignment(Qt::AlignLeft);
108 layout->setDirection(QBoxLayout::TopToBottom);
109 layout->setAlignment(Qt::AlignCenter);
110 layout->setAlignment(Qt::AlignLeft);
118 layout->setDirection(QBoxLayout::TopToBottom);
119 layout->setAlignment(Qt::AlignRight);
127 layout->setDirection(QBoxLayout::LeftToRight);
128 layout->setAlignment(Qt::AlignLeft);
129 layout->setSpacing(3);
136 layout->setDirection(QBoxLayout::RightToLeft);
137 layout->setAlignment(Qt::AlignRight);
138 layout->setSpacing(3);
145 layout->setDirection(QBoxLayout::BottomToTop);
146 layout->setAlignment(Qt::AlignLeft);
153 layout->setDirection(QBoxLayout::BottomToTop);
154 layout->setAlignment(Qt::AlignCenter);
161 layout->setDirection(QBoxLayout::BottomToTop);
162 layout->setAlignment(Qt::AlignRight);
187 switch (displayPosition)
201 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
204 widget->move(pos.x() - widget->size().width() / 2, pos.y());
212 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
215 widget->move(pos.x() - widget->size().width(), pos.y());
223 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
226 widget->move(pos.x(), pos.y() - widget->size().height() / 2);
234 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
237 widget->move(pos.x() - widget->size().width(), pos.y() - widget->size().height() / 2);
245 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
248 widget->move(pos.x(), pos.y() - widget->size().height());
256 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
259 widget->move(pos.x() - widget->size().width() / 2, pos.y() - widget->size().height());
267 widget->setFixedWidth(
std::max(widget->width(), size.width() * 2));
270 widget->move(pos.x() - widget->size().width(), pos.y() - widget->size().height());
279 OverlayPositionMap::iterator overlayIter;
284 (overlayIter->second)->show();
288 (overlayIter->second)->hide();
292 OverlayVector::iterator allOverlaysIter;
297 (*allOverlaysIter)->GetWidget()->show();
301 (*allOverlaysIter)->GetWidget()->hide();
315 if (overlay !=
nullptr)
342 if (overlay !=
nullptr)
353 overlay->
GetWidget()->setParent(
nullptr);
355 overlay->deleteLater();
363 if (overlay !=
nullptr)
373 overlay->
GetWidget()->setParent(
nullptr);
388 overlay->deleteLater();
407 OverlayVector::iterator overlayIter;
415 if ((*overlayIter)->GetPosition() != pos)
423 unsigned int layer = (*overlayIter)->GetLayer();
425 if (!layout->isEmpty())
441 layout->insertWidget(stackLayer, (*overlayIter)->GetWidget(), 0, Qt::AlignLeft);
450 layout->insertWidget(stackLayer, (*overlayIter)->GetWidget(), 0, Qt::AlignCenter);
462 layout->insertWidget(stackLayer, (*overlayIter)->GetWidget(), 0, Qt::AlignRight);
487 width =
std::max(width, overlaySize.width());
488 height =
std::max(height, overlaySize.height());
492 QSize result(width, height);
void UpdateOverlayData(QmitkOverlay *overlay)
void InitializeOverlayLayout()
setting up the widgets that will hold all overlays
OverlayVector m_AllOverlays
all QmitkOverlays that are currently added
void RestackOverlays(QmitkOverlay::DisplayPosition pos)
void AdjustAllOverlayPosition()
adjusts the position of all overlays to the position of the RenderWindow
Abstract base class for all overlay-objects in MITK.
virtual void AlignOverlays()
re-aligning the overlays - not implemented yet
void AdjustOverlayPosition(QmitkOverlay::DisplayPosition displayPosition)
virtual DisplayPosition GetPosition()
getter for the display-position
Key-value list holding instances of BaseProperty.
DisplayPosition
enumeration of all possible display positions
QmitkOverlayController(QmitkRenderWindow *rw, mitk::PropertyList *pl=nullptr)
constructor with mandatory QmitkRenderWindow and optional mitk::PropertyList
virtual void GenerateData(mitk::PropertyList::Pointer)
abstract method to internally setup the overlay
virtual QWidget * GetWidget()
returns the internally handled QWidget
mitk::PropertyList::Pointer m_PropertyList
PropertyList for RenderWindow-specific properties.
void AddOverlay(QmitkOverlay *)
adds an instance of QmitkOverlay to the RenderWindow
void InitializeWidget(QmitkOverlay::DisplayPosition pos)
initializes one QWidget - internally used by InitializeOverlayLayout()
static RenderingManager * GetInstance()
virtual QSize GetNeededSize()=0
MITK implementation of the QVTKWidget.
void SetOverlayVisibility(bool visible)
setting the visibility of all overlays
QSize GetMinimumSizeForWidget(QmitkOverlay::DisplayPosition displayPosition)
OverlayPositionMap m_PositionedOverlays
all possible positions and the QWidgets representing the corresponding QmitkOverlays ...
void RemoveOverlay(QmitkOverlay *)
mitk::PropertyList * GetPropertyList()
getter for the RenderWindow-specific PropertyList
~QmitkOverlayController() override
QmitkRenderWindow * m_RenderWindow
RenderWindow that all Overlays will be added to.