00001 /* -*- c++ -*- (for Emacs) 00002 * 00003 * elementevents.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 * Imported into Nodal by Aidan Lane on Thu Feb 24 2005. 00013 * Modifications Copyright (c) 2005 CEMA, Monash University. All rights reserved. 00014 * 00015 * Original file: 00016 * 00017 * projectevent.h 00018 * EverGreen 00019 * 00020 * Created by Aidan Lane on Sun Aug 01 2004. 00021 * Copyright (c) 2004 Aidan Lane. All rights reserved. 00022 * 00023 * This program is free software; you can redistribute it and/or modify 00024 * it under the terms of the GNU General Public License as published by 00025 * the Free Software Foundation; either version 2 of the License, or 00026 * (at your option) any later version. 00027 * 00028 * This program is distributed in the hope that it will be useful, 00029 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00030 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00031 * GNU General Public License for more details. 00032 * 00033 * You should have received a copy of the GNU General Public License 00034 * along with this program; if not, write to the Free Software 00035 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00036 */ 00037 00038 00039 #ifndef ELEMENTEVENTS_H 00040 #define ELEMENTEVENTS_H 00041 00042 00043 #include "modelevents.h" 00044 #include "elementdoccontainers.h" 00045 00046 00053 class MEElementEvent : public MEvent { 00054 public: 00055 enum Type { 00056 AttributeAddPtr = MEvent::User, 00057 AttributeRemovePtr, 00058 User = MEvent::User + 1000 00059 }; 00060 00061 public: 00062 MEElementEvent( Type type ) 00063 : MEvent((MEvent::Type)type) {} 00064 }; 00065 00066 00067 class MEAttributeEvent : public MEElementEvent, public AbstractElementAttributeContainer { 00068 public: 00069 MEAttributeEvent( Type type, AbstractElementAttribute* attribute ) 00070 : MEElementEvent(type), 00071 AbstractElementAttributeContainer(attribute) {} 00072 }; 00073 00074 00076 class MEAttributeAddPtrEvent : public MEAttributeEvent { 00077 public: 00078 MEAttributeAddPtrEvent( AbstractElementAttribute* attribute ) 00079 : MEAttributeEvent(AttributeAddPtr, attribute) {} 00080 }; 00081 00083 class MEAttributeRemovePtrEvent : public MEAttributeEvent { 00084 public: 00085 MEAttributeRemovePtrEvent( AbstractElementAttribute* attribute ) 00086 : MEAttributeEvent(AttributeRemovePtr, attribute) {} 00087 }; 00088 00089 00090 #endif // ! ELEMENTEVENTS_H
1.5.2