• Main Page
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

C:/Users/David/Documents/QtProjects/visualsc/scdatamodel/transitionattributes.h

Go to the documentation of this file.
00001 /*
00002     visualsc - Visual State Chart Editing for SCXML State Engines
00003     Copyright (C) 2011  David W. Drell (david@davidwdrell.net) and
00004     Contributing Authors:
00005 
00006 
00007     This program is free software: you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation, either version 3 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program.  If not, see <http://www.gnu.org/licenses/>.
00019 */
00020 
00021 #ifndef TRANSISTIONATTRIBUTES_H
00022 #define TRANSISTIONATTRIBUTES_H
00023 
00024 #include <QList>
00025 #include <QPointF>
00026 #include <QString>
00027 #include "iattribute.h"
00028 
00029 #include "scdatamodel_global.h"
00030 #include <QMetaType>
00031 
00032 
00042 class  SCDATAMODELSHARED_EXPORT TransitionAttributes: public IAttributeContainer
00043 {
00044 public:
00045 
00046     TransitionAttributes(QObject * parent, QString key);
00047     TransitionAttributes( const TransitionAttributes& ta);
00048     TransitionAttributes();
00049     ~TransitionAttributes();
00050 
00051     virtual void setAttributes(const IAttributeContainer& sourceAttrList);
00052 
00053 
00054     class SCDATAMODELSHARED_EXPORT  TransitionPathAttribute : public  IAttribute
00055     {
00056         //<path d="M 100 100 L 300 100 L 200 300 z" />
00057 
00058     public:
00059         TransitionPathAttribute(QObject * parent, QString key, QList<QPointF>& initPath);
00060         TransitionPathAttribute(const TransitionPathAttribute & pathAttributes );
00061         TransitionPathAttribute();
00062         ~TransitionPathAttribute();
00063 
00064         TransitionPathAttribute& operator=( QList<QPointF>& path );
00065 
00066         virtual QString         asString();
00067         virtual QList<QPointF>  asQPointFList();
00068 
00069         virtual void setValue(const QString value)  ;
00070 
00071         virtual void setValue(QList<QPointF>& path )  ;
00072 
00073     private:
00074 
00075         QList<QPointF>  _pathPoints;
00076     };
00077 
00078 
00079 
00080     class SCDATAMODELSHARED_EXPORT  TransitionStringAttribute :  public IAttribute
00081     {
00082     public:
00083         TransitionStringAttribute(QObject * parent, QString key, QString initValue);
00084         TransitionStringAttribute(const TransitionStringAttribute & stringAttribute );
00085         TransitionStringAttribute();
00086         ~TransitionStringAttribute();
00087 
00088         TransitionStringAttribute& operator=( QString& str);
00089 
00090         virtual QString asString();
00091 
00092         virtual void    setValue(const QString value)  ;
00093 
00094 
00095     private:
00096 
00097         QString _string;
00098     };
00099 
00100 
00101     class SCDATAMODELSHARED_EXPORT  TransitionPositionAttribute :  public IAttribute
00102     {
00103     public:
00104         TransitionPositionAttribute(QObject * parent, QString key, QPointF initValue);
00105         TransitionPositionAttribute(const TransitionStringAttribute & stringAttribute );
00106         TransitionPositionAttribute();
00107         ~TransitionPositionAttribute();
00108         TransitionPositionAttribute& operator=( QString& str);
00109 
00110         virtual QString asString();
00111         virtual QPointF asQPointF();
00112         virtual void    setValue(const QString position)  ;
00113         void            setValue(const int w,const int h);
00114         void            setValue(const QPointF s);
00115 
00116     private:
00117 
00118         QPointF _position;
00119     };
00120 
00121 
00122 private: // methods
00123 
00124     void initCommon();
00125 };
00126 Q_DECLARE_METATYPE(TransitionAttributes);
00127 Q_DECLARE_METATYPE( TransitionAttributes::TransitionPathAttribute);
00128 Q_DECLARE_METATYPE(TransitionAttributes::TransitionStringAttribute);
00129 Q_DECLARE_METATYPE(TransitionAttributes::TransitionPositionAttribute);
00130 
00131 #endif // TRANSISTIONATTRIBUTES_H

Generated on Mon Sep 26 2011 06:59:25 for visualsc by  doxygen 1.7.1