00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2010-06-15 17:15:21 +0200 (Di, 15 Jun 2010) $ 00006 Version: $Revision: 23776 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 #ifndef MITKOVERLAYCONTROLLER_H_HEADER_INCLUDED_C1E77191 00020 #define MITKOVERLAYCONTROLLER_H_HEADER_INCLUDED_C1E77191 00021 00022 // MITK-Stuff 00023 #include "mitkCommon.h" 00024 #include "mitkPropertyList.h" 00025 #include "QmitkOverlay.h" 00026 00027 #include <QObject> 00028 00029 #include <string> 00030 00031 #include "OverlaysExports.h" 00032 00033 00034 class QmitkRenderWindow; 00035 00060 class Overlays_EXPORT QmitkOverlayController : public QObject 00061 { 00062 Q_OBJECT 00063 00064 public: 00065 00069 QmitkOverlayController( QmitkRenderWindow* rw, mitk::PropertyList* pl = NULL ); 00070 virtual ~QmitkOverlayController(); 00071 00079 void AddOverlay( QmitkOverlay* ); 00080 00081 void RemoveOverlay( QmitkOverlay* ); 00082 00086 void SetOverlayVisibility( bool visible ); 00087 00091 mitk::PropertyList* GetPropertyList(); 00092 00096 void SetPropertyList( mitk::PropertyList* ); 00097 00098 00099 public slots : 00106 void AdjustOverlayPosition(); 00107 00108 void UpdateAllOverlays(); 00109 00110 00111 protected: 00112 00121 void InitializeOverlayLayout(); 00122 00126 virtual void AlignOverlays(); 00127 00131 void InitializeWidget( QmitkOverlay::DisplayPosition pos ); 00132 00133 void RestackOverlays( QmitkOverlay::DisplayPosition pos ); 00134 00135 void UpdateOverlayData( QmitkOverlay* overlay ); 00136 00137 typedef std::map< QmitkOverlay::DisplayPosition, QWidget* > OverlayPositionMap; 00138 typedef std::vector< QmitkOverlay* > OverlayVector; 00139 00143 OverlayVector m_AllOverlays; 00144 00148 OverlayPositionMap m_PositionedOverlays; 00149 00153 QmitkRenderWindow* m_RenderWindow; 00154 00158 mitk::PropertyList::Pointer m_PropertyList; 00159 00160 }; 00161 00162 00163 #endif /* MITKOVERLAYCONTROLLER_H_HEADER_INCLUDED_C1E77191 */