00001 /* -*- c++ -*- (for Emacs) 00002 * 00003 * elementdoccontroller.h 00004 * Digest 00005 * 00006 * Imported into Digest by Aidan Lane on Thu Jun 9 2005. 00007 * Modifications Copyright (c) 2005 Optimisation and Constraint Solving Group, 00008 * Monash University. All rights reserved. 00009 * 00010 * Nodal file: 00011 * 00012 * projectcontroller.h 00013 * Nodal 00014 * 00015 * Imported into Nodal by Aidan Lane on Thu Feb 24 2005. 00016 * Modifications Copyright (c) 2005 CEMA, Monash University. All rights reserved. 00017 * 00018 * Original file: 00019 * 00020 * project.h 00021 * EverGreen 00022 * 00023 * Created by Aidan Lane on Wed Jul 14 2004. 00024 * Copyright (c) 2004 Aidan Lane. All rights reserved. 00025 * 00026 * This program is free software; you can redistribute it and/or modify 00027 * it under the terms of the GNU General Public License as published by 00028 * the Free Software Foundation; either version 2 of the License, or 00029 * (at your option) any later version. 00030 * 00031 * This program is distributed in the hope that it will be useful, 00032 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00033 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00034 * GNU General Public License for more details. 00035 * 00036 * You should have received a copy of the GNU General Public License 00037 * along with this program; if not, write to the Free Software 00038 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00039 */ 00040 00041 #ifndef ELEMENTDOCCONTROLLER_H 00042 #define ELEMENTDOCCONTROLLER_H 00043 00044 00045 #include "attributedoccontroller.h" 00046 00047 #include <QPointer> 00048 00049 #include "elementdoccontrollerevents.h" 00050 00051 class ElementDoc; 00052 00053 00068 class ElementDocController : public AttributeDocController { 00069 00070 Q_OBJECT 00071 00072 public: 00073 ElementDocController( QObject* parent = 0 ); 00074 ElementDocController( AbstractModel* doc, QObject* parent = 0 ); 00075 00076 ElementDoc* elementDoc() const; 00077 00078 00079 // TODO: remove me: 00080 public slots: 00081 void postElementAttributeChangeData( AbstractElement* element, 00082 int attributeType, 00083 const QVariant& data, 00084 QObject* sender = 0, 00085 CEvent::Flags flags = CEvent::NoFlags ); 00086 00087 00088 protected: 00089 virtual void dispatchEvent( CEvent* ); 00090 00091 virtual void changeModelEvent( CChangeModelEvent* ); 00092 00093 virtual void elementAddEvent( CElementAddEvent* ); 00094 virtual void elementRemoveEvent( CElementRemoveEvent* ); 00095 virtual void elementAttributeAddEvent( CElementAttributeAddEvent* ); 00096 virtual void elementAttributeRemoveEvent( CElementAttributeRemoveEvent* ); 00097 virtual void elementAttributeChangeDataEvent( CElementAttributeChangeDataEvent* ); 00098 virtual void elementSetChangeOrderEvent( CElementSetChangeOrderEvent* ); 00099 00100 00101 private: 00102 // Temporary caches: 00103 QPointer<ElementDoc> c_elementDoc; 00104 }; 00105 00106 00107 #endif // ! ELEMENTDOCCONTROLLER_H
1.5.2