00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-03-21 19:27:37 +0100 (Sa, 21 Mrz 2009) $ 00006 Version: $Revision: 16719 $ 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 #ifndef _QMITKMITKSURFACEMATERIALEDITORVIEW_H_INCLUDED 00019 #define _QMITKMITKSURFACEMATERIALEDITORVIEW_H_INCLUDED 00020 00021 #include <QmitkFunctionality.h> 00022 #include <berryISelectionListener.h> 00023 #include <berryIStructuredSelection.h> 00024 #include <string> 00025 00026 #include "ui_QmitkMITKSurfaceMaterialEditorViewControls.h" 00027 00028 /* 00029 #include <QtCore/QVariant> 00030 #include <QtGui/QAction> 00031 #include <QtGui/QApplication> 00032 #include <QtGui/QButtonGroup> 00033 #include <QtGui/QVBoxLayout> 00034 #include <QtGui/QWidget> 00035 #include "QtGui/QMenubarUpdatedEvent" 00036 */ 00037 00038 #include "QmitkRenderWindow.h" 00039 #include "mitkCommon.h" 00040 #include "mitkDataStorage.h" 00041 #include "mitkDataNode.h" 00042 #include "mitkShaderProperty.h" 00043 #include "mitkSurface.h" 00044 #include "vtkRenderer.h" 00045 #include "vtkTextActor.h" 00046 00054 class QmitkMITKSurfaceMaterialEditorView : public QObject, public QmitkFunctionality 00055 { 00056 00057 // this is needed for all Qt objects that should have a MOC object (everything that derives from QObject) 00058 Q_OBJECT 00059 00060 public: 00061 00062 static const std::string VIEW_ID; 00063 00064 QmitkMITKSurfaceMaterialEditorView(); 00065 virtual ~QmitkMITKSurfaceMaterialEditorView(); 00066 00067 virtual void CreateQtPartControl(QWidget *parent); 00068 00070 virtual void CreateConnections(); 00071 00073 virtual void Activated(); 00074 00075 virtual void Deactivated(); 00076 00077 virtual void StdMultiWidgetAvailable (QmitkStdMultiWidget &stdMultiWidget); 00078 virtual void StdMultiWidgetNotAvailable(); 00079 virtual void OnSelectionChanged(std::vector<mitk::DataNode*> nodes); 00080 00081 protected slots: 00082 00083 void SurfaceSelected(); 00084 00085 protected: 00086 00087 Ui::QmitkMITKSurfaceMaterialEditorViewControls* m_Controls; 00088 00089 QmitkStdMultiWidget* m_MultiWidget; 00090 00091 private: 00092 00093 mitk::Surface::Pointer m_Surface; 00094 mitk::DataStorage::Pointer m_DataTree; 00095 mitk::DataNode::Pointer m_DataNode; 00096 mitk::DataNode::Pointer m_SelectedDataNode; 00097 00098 std::list<std::string> fixedProperties; 00099 std::list<std::string> shaderProperties; 00100 00101 unsigned long observerIndex; 00102 bool observerAllocated; 00103 mitk::ShaderProperty::Pointer observedProperty; 00104 00105 void InitPreviewWindow(); 00106 00107 int usedTimer; 00108 00109 void timerEvent( QTimerEvent *e ); 00110 00111 void RefreshPropertiesList(); 00112 00113 void postRefresh(); 00114 00115 void shaderEnumChange(const itk::Object *caller, const itk::EventObject &event); 00116 00117 berry::IStructuredSelection::ConstPointer m_CurrentSelection; 00118 berry::ISelectionListener::Pointer m_SelectionListener; 00119 }; 00120 00121 00122 00123 00124 #endif // _QMITKMITKSURFACEMATERIALEDITORVIEW_H_INCLUDED 00125