processchain.h

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by David Saxton                                    *
00003  *   david@bluehaze.org                                                    *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  ***************************************************************************/
00010 
00011 #ifndef PROCESSCHAIN_H
00012 #define PROCESSCHAIN_H
00013 
00014 #include "language.h"
00015 #include <qobject.h>
00016 #include <qvaluelist.h>
00017 
00018 class FlowCode;
00019 class Gpasm;
00020 class Gpdasm;
00021 class Gplib;
00022 class Gplink;
00023 class KTechlab;
00024 class Microbe;
00025 class PicProgrammer;
00026 class ProcesOptions;
00027 class SDCC;
00028 
00029 typedef QValueList<ProcessOptions> ProcessOptionsList;
00030 
00035 class ProcessChain : public QObject
00036 {
00037         Q_OBJECT
00038         public:
00039                 ProcessChain( ProcessOptions options, KTechlab *parent, const char *name = 0 );
00040                 ~ProcessChain();
00041                 
00042                 void setProcessOptions( ProcessOptions options ) { m_processOptions = options; }
00043         
00044         public slots:
00050                 void slotFinishedCompile( Language * language );
00056                 void compile();
00057                 
00058         signals:
00065                 void successful(ProcessOptions options);
00069                 void successful();
00073                 void failed();
00074 
00075         protected:
00076                 FlowCode * flowCode();
00077                 Gpasm * gpasm();
00078                 Gpdasm * gpdasm();
00079                 Gplib * gplib();
00080                 Gplink * gplink();
00081                 Microbe * microbe();
00082                 PicProgrammer * picProgrammer();
00083                 SDCC * sdcc();
00084                 
00085                 int m_errorCount;
00086                 ProcessOptions m_processOptions;
00087                 KTechlab * m_pKTechlab;
00088         
00089         private:
00090                 FlowCode * m_pFlowCode;
00091                 Microbe * m_pMicrobe;
00092                 Gpasm * m_pGpasm;
00093                 Gpdasm * m_pGpdasm;
00094                 Gplib * m_pGplib;
00095                 Gplink * m_pGplink;
00096                 PicProgrammer * m_pPicProgrammer;
00097                 SDCC * m_pSDCC;
00098 };
00099 
00100 
00101 class ProcessListChain : public QObject
00102 {
00103         Q_OBJECT
00104                         
00105         public:
00106                 ProcessListChain( ProcessOptionsList pol, KTechlab *parent, const char *name = 0 );
00107                 
00108         signals:
00112                 void successful();
00116                 void failed();
00117                 
00118         protected slots:
00119                 void slotProcessChainSuccessful();
00120                 void slotProcessChainFailed();
00121                 
00122         protected:
00123                 ProcessOptionsList m_processOptionsList;
00124                 KTechlab * m_pKTechlab;
00125 };
00126 
00127 #endif

Generated on Tue May 8 17:05:32 2007 for KTechLab by  doxygen 1.5.1