00001 /* 00002 Copyright (C) 2000,2001 Stefan Duffner 00003 00004 This program is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU General Public License 00006 as published by the Free Software Foundation; either version 2 00007 of the License, or any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00019 #ifndef STATE_H 00020 #define STATE_H 00021 00022 #include <qstring.h> 00023 00024 class Machine; 00025 00030 class State 00031 { 00032 public: 00033 State(Machine* m, const QString, QString, int cd, bool ends); 00034 State(Machine* m); 00035 State(const State& ); 00036 State(); 00037 ~State(); 00038 00039 State& operator=(const State& ); 00040 00042 void setName(QString n ) { sname = n; }; 00044 QString getName() { return sname; }; 00046 void setDescription(QString d ) { sdescription = d; }; 00048 QString getDescription() { return sdescription; }; 00050 void setCode(int c) { code = c; }; 00052 int getCode() { return code; }; 00054 void setEndState(bool es=TRUE) { endstate = es; }; 00056 void toggleEndState() { endstate=!endstate; }; 00058 bool isEndState() { return endstate; } 00059 00060 QString getCodeStr(int type=-1); 00061 00062 static bool codeValid(int mtype, QString ); 00063 00064 protected: 00066 Machine* machine; 00068 QString sname; 00070 QString sdescription; 00072 int code; 00074 bool endstate; 00075 }; 00076 00077 00078 00079 #endif