00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-02-13 14:07:17 +0100 (Mi, 13 Feb 2008) $ 00006 Version: $Revision: 13599 $ 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 QmitkPropertyListPopuph_included_dingeling 00019 #define QmitkPropertyListPopuph_included_dingeling 00020 00022 //#include <Q3PopupMenu> 00023 #include "QmitkExtExports.h" 00024 #include <QMenu> 00026 00027 //#include "QmitkMaterialEditor.h" // by Max 00028 //#include "mitkMaterialProperty.h" 00029 00030 #include "mitkPropertyList.h" 00031 #include "mitkProperties.h" 00032 00033 class QmitkMaterialEditor; 00034 00048 class QmitkExt_EXPORT QmitkPropertyListPopup : public QObject 00049 { 00050 Q_OBJECT 00051 00052 public: 00053 00054 QmitkPropertyListPopup( mitk::PropertyList*, QObject* parent = 0, bool disableBoolProperties = false, bool fillMenuImmediatelty = true, const char* name = 0 ); 00055 00056 virtual ~QmitkPropertyListPopup(); 00057 00059 //void popup( const QPoint& pos, int indexAtPoint = -1 ); 00060 void popup( const QPoint& pos, QAction* action = 0 ); 00062 00063 void fillPopup(); 00064 00065 signals: 00066 00067 void propertyListChangesDone(); 00068 00069 protected slots: 00070 00071 void onNameClicked(); 00072 void onVisibleClicked(); 00073 void onColorClicked(); 00074 void onBoolPropertyClicked(int); 00075 virtual void MaterialEditorChangesAccepted(QmitkMaterialEditor* ed); 00076 virtual void popupAboutToHide(); 00078 //void popupMenuItemHighlighted(int id); 00079 void popupMenuItemHovered(QAction* action); 00081 00082 protected: 00083 00084 virtual bool AddMaterialPopup(); 00085 virtual void UpdateNodeMaterialOnPopupHiding( bool& changes ); 00087 QIcon createColorIcon(QColor color); 00090 //Q3PopupMenu* m_PopupMenu; 00091 QMenu* m_PopupMenu; 00093 00094 mitk::PropertyList::Pointer m_PropertyList; 00095 std::vector<mitk::BoolProperty::Pointer> m_BoolProperties; 00096 00098 //Q3PopupMenu* m_PopupMenu; 00099 QMenu* m_InfoPopup; 00101 00102 // QmitkMaterialEditor* m_MaterialEditor; 00103 00105 //int m_NameMenuID; 00106 //int m_VisibleMenuID; 00107 //int m_ColorMenuID; 00108 //int m_MaterialMenuID; 00109 //int m_OpacityMenuID; 00110 QAction* m_NameMenuAction; 00111 QAction* m_VisibleMenuAction; 00112 QAction* m_ColorMenuAction; 00113 QAction* m_MaterialMenuAction; 00114 QAction* m_OpacityMenuAction; 00116 00117 bool m_AcceptOnHide; 00118 00119 // mitk::MaterialProperty::Pointer m_OriginalMaterial; 00120 mitk::FloatProperty::Pointer m_OriginalOpacity; 00121 00122 bool m_DisableBoolProperties; 00123 }; 00124 00125 #endif 00126