25 #include <vtkQImageToImageSource.h> 31 : m_MultiWidget(multiWidget)
32 , m_LogoAnnotation(
mitk::LogoAnnotation::New())
47 SetupLogo(qPrintable(
":/org.mitk.gui.qt.stdmultiwidgeteditor/defaultWatermark.png"));
53 bool logoFound =
false;
54 foreach(
const QString& key, currentNode->
Keys())
56 if (key ==
"DepartmentLogo")
59 QString departmentLogoLocation = currentNode->
Get(
"DepartmentLogo",
"");
60 if (!departmentLogoLocation.isEmpty())
62 SetupLogo(qPrintable(departmentLogoLocation));
94 if (
nullptr == m_MultiWidget)
149 QStringList decorations;
158 m_LogoAnnotation->SetOpacity(0.5);
161 m_LogoAnnotation->SetOffsetVector(offset);
162 m_LogoAnnotation->SetRelativeSize(0.25);
163 m_LogoAnnotation->SetCornerPosition(1);
164 vtkSmartPointer<vtkImageData> vtkLogo = GetVtkLogo(path);
172 if (
nullptr != renderWindowWidget)
174 m_LogoAnnotation->SetVisibility(show);
175 renderWindowWidget->RequestUpdate();
179 MITK_ERROR <<
"Logo can not be shown for an unknown widget.";
184 return m_LogoAnnotation->IsVisible();
194 float white[3] = { 1.0f, 1.0f, 1.0f };
203 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
204 if (
nullptr != renderWindowWidget)
206 renderWindowWidget->SetDecorationColor(color);
210 MITK_ERROR <<
"Decoration color can not be set for an unknown widget.";
216 for (
const auto& renderWindowWidget : renderWindowWidgets)
218 renderWindowWidget.second->SetDecorationColor(color);
224 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
225 if (
nullptr != renderWindowWidget)
227 return renderWindowWidget->GetDecorationColor();
230 MITK_ERROR <<
"Decoration color can not be retrieved for an unknown widget. Returning black color!";
231 float black[3] = { 0.0f, 0.0f, 0.0f };
237 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
238 if (
nullptr != renderWindowWidget)
240 renderWindowWidget->ShowColoredRectangle(show);
244 MITK_ERROR <<
"Colored rectangle can not be set for an unknown widget.";
250 for (
const auto& renderWindowWidget : renderWindowWidgets)
252 renderWindowWidget.second->ShowColoredRectangle(show);
258 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
259 if (
nullptr != renderWindowWidget)
261 return renderWindowWidget->IsColoredRectangleVisible();
264 MITK_ERROR <<
"Colored rectangle visibility can not be retrieved for an unknown widget. Returning 'false'.";
272 for (
const auto& renderWindowWidget : renderWindowWidgets)
274 allTrue = allTrue && renderWindowWidget.second->IsColoredRectangleVisible();
282 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
283 if (
nullptr != renderWindowWidget)
285 renderWindowWidget->SetGradientBackgroundColors(upper, lower);
289 MITK_ERROR <<
"Background color gradient can not be set for an unknown widget.";
295 for (
const auto& renderWindowWidget : renderWindowWidgets)
297 renderWindowWidget.second->SetGradientBackgroundColors(upper, lower);
303 float black[3] = { 0.0f, 0.0f, 0.0f };
309 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
310 if (
nullptr != renderWindowWidget)
312 renderWindowWidget->ShowGradientBackground(show);
316 MITK_ERROR <<
"Background color gradient can not be shown for an unknown widget.";
322 for (
const auto& renderWindowWidget : renderWindowWidgets)
324 renderWindowWidget.second->ShowGradientBackground(show);
330 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
331 if (
nullptr != renderWindowWidget)
333 return renderWindowWidget->GetGradientBackgroundColors();
336 MITK_ERROR <<
"Background color gradient can not be retrieved for an unknown widget. Returning black color pair.";
337 float black[3] = { 0.0f, 0.0f, 0.0f };
343 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
344 if (
nullptr != renderWindowWidget)
346 return renderWindowWidget->IsGradientBackgroundOn();
349 MITK_ERROR <<
"Background color gradient flag can not be retrieved for an unknown widget. Returning 'false'.";
357 for (
const auto& renderWindowWidget : renderWindowWidgets)
359 allTrue = allTrue && renderWindowWidget.second->IsGradientBackgroundOn();
367 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
368 if (
nullptr != renderWindowWidget)
370 renderWindowWidget->SetCornerAnnotationText(cornerAnnotation);
374 MITK_ERROR <<
"Corner annotation text can not be retrieved for an unknown widget.";
379 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
380 if (
nullptr != renderWindowWidget)
382 return renderWindowWidget->GetCornerAnnotationText();
385 MITK_ERROR <<
"Corner annotation text can not be retrieved for an unknown widget.";
391 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
392 if (
nullptr != renderWindowWidget)
394 renderWindowWidget->ShowCornerAnnotation(show);
398 MITK_ERROR <<
"Corner annotation can not be set for an unknown widget.";
404 for (
const auto& renderWindowWidget : renderWindowWidgets)
406 renderWindowWidget.second->ShowCornerAnnotation(show);
412 std::shared_ptr<QmitkRenderWindowWidget> renderWindowWidget = m_MultiWidget->
GetRenderWindowWidget(widgetID);
413 if (
nullptr != renderWindowWidget)
415 return renderWindowWidget->IsCornerAnnotationVisible();
418 MITK_ERROR <<
"Corner annotation visibility can not be retrieved for an unknown widget. Returning 'false'.";
426 for (
const auto& renderWindowWidget : renderWindowWidgets)
428 allTrue = allTrue && renderWindowWidget.second->IsCornerAnnotationVisible();
437 vtkSmartPointer<vtkImageData> QmitkMultiWidgetDecorationManager::GetVtkLogo(
const char* path)
439 QImage* qimage =
new QImage(path);
440 vtkSmartPointer<vtkQImageToImageSource> qImageToVtk;
441 qImageToVtk = vtkSmartPointer<vtkQImageToImageSource>::New();
443 qImageToVtk->SetQImage(qimage);
444 qImageToVtk->Update();
445 vtkSmartPointer<vtkImageData> vtkLogo = qImageToVtk->GetOutput();
449 void QmitkMultiWidgetDecorationManager::SetLogo(vtkSmartPointer<vtkImageData> vtkLogo)
452 if (
nullptr != renderWindowWidget && m_LogoAnnotation.IsNotNull())
455 m_LogoAnnotation->SetLogoImage(vtkLogo);
457 m_LogoAnnotation->Update(renderer);
458 renderWindowWidget->RequestUpdate();
462 MITK_ERROR <<
"Logo can not be set for an unknown widget.";
static BaseRenderer * GetInstance(vtkRenderWindow *renWin)
Organizes the rendering process.
DataCollection - Class to facilitate loading/accessing structured data.
static const QString DECORATION_MENU
virtual QStringList Keys() const =0
virtual IPreferences::Pointer Parent() const =0
static const QString DECORATION_CORNER_ANNOTATION
itk::RGBPixel< float > Color
Color Standard RGB color typedef (float)
static void AddAnnotation(Annotation *Annotation, const std::string &rendererID)
virtual QString Get(const QString &key, const QString &def) const =0
static const QString DECORATION_BORDER
static const QString DECORATION_LOGO
static const QString DECORATION_BACKGROUND
ObjectType * GetPointer() const