/* * Copyright (C) 2008,2009,2010 Thorsten Liebig (Thorsten.Liebig@gmx.de) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ #ifndef _QCSPROPEDITOR_H_ #define _QCSPROPEDITOR_H_ #include #include #include #include #include #include #include #include #include #include "ContinuousStructure.h" class QColorPushButton : public QPushButton { Q_OBJECT public: QColorPushButton(const QString & text, QWidget * parent = 0 ); ~QColorPushButton(); void SetColor(RGBa c); RGBa GetColor(); protected slots: void ChangeColor(); protected: QColor Color; }; class QCSPropertyGroupBox; class QCSPropMaterialGB; class QCSPropEditor : public QDialog { Q_OBJECT public: QCSPropEditor(ContinuousStructure *CS, CSProperties* prop, int iSimMode, QWidget* parent=NULL); ~QCSPropEditor() {}; protected slots: void Reset(); void Save(); void Cancel(); void ChangeType(int item); void Fill2EdgeColor(); void Edge2FillColor(); void GetValues(); void SetValues(); protected: QComboBox* TypeCB; QGroupBox* BuildGeneral(); QLayout* BuildButtons(); QVBoxLayout* MainLayout; //QCSPropertyLayout* CSPropEdit; ContinuousStructure *clCS; QLineEdit* Name; QLabel* TypeLbl; QColorPushButton* FCButton; QColorPushButton* ECButton; CSProperties* clProp; CSProperties* saveProp; QCSPropertyGroupBox* BuildPropGroupBox(CSProperties* clProp); QCSPropertyGroupBox* propGB; int GetIndexOfType(); int m_SimMode; }; //dummy class class QCSPropertyGroupBox : public QGroupBox { Q_OBJECT public: virtual ~QCSPropertyGroupBox(); protected: QCSPropertyGroupBox(QWidget *parent=NULL); QString TypeName; QString GetTypeName() {return TypeName;}; public slots: virtual void SetValues(); virtual void GetValues(); signals: void modified(); }; class QCSPropUnknownGB : public QCSPropertyGroupBox { Q_OBJECT public: QCSPropUnknownGB(CSPropUnknown *prop, QWidget *parent=NULL); virtual ~QCSPropUnknownGB(); public slots: virtual void SetValues(); virtual void GetValues(); signals: void modified(); protected: CSPropUnknown* clProp; QLineEdit* Property; }; class QCSPropMaterialGB : public QCSPropertyGroupBox { Q_OBJECT public: QCSPropMaterialGB(CSPropMaterial *prop, QWidget *parent=NULL); virtual ~QCSPropMaterialGB(); public slots: virtual void SetValues(); virtual void GetValues(); signals: void modified(); protected: CSPropMaterial* clProp; }; class QCSPropExcitationGB : public QCSPropertyGroupBox { Q_OBJECT public: QCSPropExcitationGB(CSPropExcitation *prop, QWidget *parent=NULL); virtual ~QCSPropExcitationGB(); public slots: virtual void SetValues(); virtual void GetValues(); protected slots: void TypeChanged(int index); signals: void modified(); protected: CSPropExcitation* clProp; QLineEdit* FctLine[3]; QSpinBox* Number; QComboBox* Type; QLineEdit* Excitation[3]; }; class QCSPropProbeBoxGB : public QCSPropertyGroupBox { Q_OBJECT public: QCSPropProbeBoxGB(CSPropProbeBox *prop, QWidget *parent=NULL); virtual ~QCSPropProbeBoxGB(); public slots: virtual void SetValues(); virtual void GetValues(); signals: void modified(); protected: CSPropProbeBox* clProp; QSpinBox* Number; }; class QCSPropResBoxGB : public QCSPropertyGroupBox { Q_OBJECT public: QCSPropResBoxGB(CSPropResBox *prop, QWidget *parent=NULL); virtual ~QCSPropResBoxGB(); public slots: virtual void SetValues(); virtual void GetValues(); signals: void modified(); protected: CSPropResBox* clProp; QSpinBox* Factor; }; class QCSPropDumpBoxGB : public QCSPropertyGroupBox { Q_OBJECT public: QCSPropDumpBoxGB(CSPropDumpBox *prop, int SimMode, QWidget *parent=NULL); virtual ~QCSPropDumpBoxGB(); public slots: virtual void SetValues(); virtual void GetValues(); signals: void modified(); protected: CSPropDumpBox* clProp; }; #endif //_QCSPROPEDITOR_H_