You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.1 KiB
130 lines
3.1 KiB
/***************************************************************************
|
|
* Copyright (C) 2005 by David Saxton *
|
|
* david@bluehaze.org *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
***************************************************************************/
|
|
|
|
#ifndef PROCESSCHAIN_H
|
|
#define PROCESSCHAIN_H
|
|
|
|
#include "language.h"
|
|
#include <tqobject.h>
|
|
#include <tqvaluelist.h>
|
|
|
|
class FlowCode;
|
|
class Gpasm;
|
|
class Gpdasm;
|
|
class Gplib;
|
|
class Gplink;
|
|
class KTechlab;
|
|
class Microbe;
|
|
class PicProgrammer;
|
|
class ProcesOptions;
|
|
class SDCC;
|
|
|
|
typedef TQValueList<ProcessOptions> ProcessOptionsList;
|
|
|
|
/**
|
|
@author Daniel Clarke
|
|
@author David Saxton
|
|
*/
|
|
class ProcessChain : public TQObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ProcessChain( ProcessOptions options, KTechlab *parent, const char *name = 0l );
|
|
~ProcessChain();
|
|
|
|
void setProcessOptions( ProcessOptions options ) { m_processOptions = options; }
|
|
|
|
public slots:
|
|
/**
|
|
* Adds the output file to project if requested in the options, and opens
|
|
* the file in a code editor. Called to signal that a language in the last
|
|
* step of a compile has finished its compiling successfully.
|
|
*/
|
|
void slotFinishedCompile( Language * language );
|
|
/**
|
|
* Call to compile a file of one type all the way to another type. This
|
|
* uses the ProcessOptions given in the constructor of this function, or
|
|
* later in setProcessOptions.
|
|
*/
|
|
void compile();
|
|
|
|
signals:
|
|
/**
|
|
* Emitted when compiling has successfully gone all the way through to the
|
|
* specified 'typeTo'
|
|
* @param options The ProcessOptions holding the output filename
|
|
* @see compile
|
|
*/
|
|
void successful(ProcessOptions options);
|
|
/**
|
|
* Convenience signal
|
|
*/
|
|
void successful();
|
|
/**
|
|
* Emitted if not successful
|
|
*/
|
|
void failed();
|
|
|
|
protected:
|
|
FlowCode * flowCode();
|
|
Gpasm * gpasm();
|
|
Gpdasm * gpdasm();
|
|
Gplib * gplib();
|
|
Gplink * gplink();
|
|
Microbe * microbe();
|
|
PicProgrammer * picProgrammer();
|
|
SDCC * sdcc();
|
|
|
|
int m_errorCount;
|
|
ProcessOptions m_processOptions;
|
|
KTechlab * m_pKTechlab;
|
|
|
|
private:
|
|
FlowCode * m_pFlowCode;
|
|
Microbe * m_pMicrobe;
|
|
Gpasm * m_pGpasm;
|
|
Gpdasm * m_pGpdasm;
|
|
Gplib * m_pGplib;
|
|
Gplink * m_pGplink;
|
|
PicProgrammer * m_pPicProgrammer;
|
|
SDCC * m_pSDCC;
|
|
};
|
|
|
|
|
|
class ProcessListChain : public TQObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
ProcessListChain( ProcessOptionsList pol, KTechlab *parent, const char *name = 0l );
|
|
|
|
signals:
|
|
/**
|
|
* Emitted if successful
|
|
*/
|
|
void successful();
|
|
/**
|
|
* Emitted if not successful
|
|
*/
|
|
void failed();
|
|
|
|
protected slots:
|
|
void slotProcessChainSuccessful();
|
|
void slotProcessChainFailed();
|
|
|
|
protected:
|
|
ProcessOptionsList m_processOptionsList;
|
|
KTechlab * m_pKTechlab;
|
|
};
|
|
|
|
#endif
|