00001 /* -*- c++ -*- (for Emacs) 00002 * 00003 * doccontrollerevents.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 * projectcontrollerevents.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 * projectevent.h 00021 * EverGreen 00022 * 00023 * Created by Aidan Lane on Sun Aug 01 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 DOCCONTROLLEREVENTS_H 00042 #define DOCCONTROLLEREVENTS_H 00043 00044 00045 #include "controllerevents.h" 00046 #include "genericcontainers.h" 00047 00048 00049 /* 00050 * Base class to support doc controller events. 00051 * The events are sent from derivatives of AbstractDocView. 00052 * 00053 * When a doc processes an event form a given doc view, all registered doc views 00054 * (optionally with the exception of the sender) will be updated. 00055 * These events can be logged in lists, which is required for undo/redo 00056 * functionality. 00057 */ 00058 class CDocEvent : public CEvent { 00059 public: 00060 enum Type { 00061 Rename = CEvent::User, 00062 FileSaveTo, 00063 FileInitFrom, 00064 User = CEvent::User + 1000 00065 }; 00066 00067 CDocEvent( Type type, QObject* sender = 0, Flags flags = NoFlags ) 00068 : CEvent((CEvent::Type)type, sender, flags) {} 00069 }; 00070 00071 00072 class CRenameEvent : public CDocEvent, public NameContainer { 00073 public: 00074 CRenameEvent( const QString& name, 00075 QObject* sender = 0, Flags flags = NoFlags ) 00076 : CDocEvent(Rename, sender, flags), 00077 NameContainer(name) {} 00078 }; 00079 00080 00081 class CFileEvent : public CDocEvent, public FilenameContainer { 00082 public: 00083 CFileEvent( Type type, const QString& filename, 00084 QObject* sender = 0, Flags flags = NoFlags ) 00085 : CDocEvent(type, sender, flags), 00086 FilenameContainer(filename) {} 00087 }; 00088 00089 00090 #endif // ! DOCCONTROLLEREVENTS_H
1.5.2