MvcDiagram/models/elements/diagramshape.h

Go to the documentation of this file.
00001 /*  -*- c++ -*-  (for Emacs)
00002  *
00003  *  diagramshape.h
00004  *  Digest
00005  * 
00006  *  Created by Aidan Lane on Thu Jun 13 2005.
00007  *  Copyright (c) 2005 Optimisation and Constraint Solving Group,
00008  *  Monash University. All rights reserved.
00009  *
00010  *  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU General Public License for more details.
00019  *
00020  *  You should have received a copy of the GNU General Public License
00021  *  along with this program; if not, write to the Free Software
00022  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00023  */
00024 
00025 #ifndef DIAGRAMSHAPE_H
00026 #define DIAGRAMSHAPE_H
00027 
00028 
00029 #include "abstractdiagramelement.h"
00030 
00031 #include "diagramelementshape.h"
00032 
00033 
00034 class DiagramShape : public AbstractDiagramElement {
00035 
00036 public:
00037   DiagramShape( qint32 instanceId, ElementDoc* doc,
00038                 DiagramElementShape::Type shape = DiagramElementShape::Circle,
00039                 const QPointF& origin = QPointF(),
00040                 const QSizeF& size = QSizeF() );
00041   DiagramShape( ElementDoc* doc,
00042                 DiagramElementShape::Type shape = DiagramElementShape::Circle,
00043                 const QPointF& origin = QPointF(),
00044                 const QSizeF& size = QSizeF() );
00045 
00046   DECLARE_CLASS_TYPE( MvcDiagram::DE_Shape );
00047   DECLARE_CLASS_KEY( "shape" );
00048   DECLARE_CLASS_TITLE( "Shape" );
00049 
00050   static ControlPointEditFlags classControlPointEditFlags() {
00051     return MovementIsAllowed;
00052   }
00053   ControlPointEditFlags controlPointEditFlags() const {
00054     return classControlPointEditFlags();
00055   }
00056 
00057   static const QSet<int>& classRequiredAttributes();
00058   const QSet<int>& requiredAttributes() const {
00059     return classRequiredAttributes();
00060   }
00061 
00062   static const QSet<int>& classAdditionalAttributes();
00063   const QSet<int>& additionalAttributes() const {
00064     return classAdditionalAttributes();
00065   }
00066 
00067 
00068 protected:
00070   void controlPointInsertEvent( MEControlPointInsertEvent* ) {} // disable it
00072   void controlPointRemoveEvent( MEControlPointRemoveEvent* ) {} // disable it
00073   void controlPointMoveEvent( MEControlPointMoveEvent* );
00074 
00075 
00076 private:
00077   void init( DiagramElementShape::Type shape,
00078              const QPointF& origin,
00079              const QSizeF& size );
00080 };
00081 
00082 
00083 #endif  // ! DIAGRAMSHAPE_H

Generated on Mon Jul 30 09:46:50 2007 for Digest by  doxygen 1.5.2