kivio
kivio_shape.h
00001 /* 00002 * Kivio - Visual Modelling and Flowcharting 00003 * Copyright (C) 2000-2001 theKompany.com & Dave Marotti 00004 * 00005 * This program is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU General Public License 00007 * as published by the Free Software Foundation; either version 2 00008 * of the License, or (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00018 */ 00019 #ifndef KIVIO_SHAPE_H 00020 #define KIVIO_SHAPE_H 00021 00022 #include "kivio_shape_data.h" 00023 #include <qdom.h> 00024 00025 00026 class KivioShape 00027 { 00028 protected: 00029 KivioShapeData m_shapeData; // The data inside this shape 00030 00031 public: 00032 KivioShape(); 00033 KivioShape( const KivioShape & ); 00034 00035 virtual ~KivioShape(); 00036 00037 void copyInto( KivioShape * ) const; 00038 00039 bool loadXML( const QDomElement & ); 00040 QDomElement saveXML( QDomDocument & ); 00041 00042 KivioShapeData::KivioShapeType shapeType() { return m_shapeData.shapeType(); } 00043 00044 KivioShapeData *shapeData() { return &m_shapeData; } 00045 00046 static KivioShape *loadShapeArc( const QDomElement & ); 00047 static KivioShape *loadShapeClosedPath( const QDomElement & ); 00048 static KivioShape *loadShapeBezier( const QDomElement & ); 00049 static KivioShape *loadShapeEllipse( const QDomElement & ); 00050 static KivioShape *loadShapeLineArray( const QDomElement & ); 00051 static KivioShape *loadShapeOpenPath( const QDomElement & ); 00052 static KivioShape *loadShapePie( const QDomElement & ); 00053 static KivioShape *loadShapePolygon( const QDomElement & ); 00054 static KivioShape *loadShapePolyline( const QDomElement & ); 00055 static KivioShape *loadShapeRectangle( const QDomElement & ); 00056 static KivioShape *loadShapeRoundRectangle( const QDomElement & ); 00057 static KivioShape *loadShapeTextBox( const QDomElement & ); 00058 }; 00059 00060 #endif 00061 00062