/*************************************************************************** * Copyright (C) 2006 by Jens Dagerbo * * jens.dagerbo@swipnet.se * * * * 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 KDEVSHELLWIDGET_H #define KDEVSHELLWIDGET_H #include #include #include class TDEProcess; namespace KParts { class ReadOnlyPart; } class KDevShellWidget : public TQVBox { TQ_OBJECT public: KDevShellWidget(TQWidget *parent = 0, const char *name = 0); virtual ~KDevShellWidget(); /** * Stores the shell name and arguments, that will be used in @ref activate() * @param shell The shell name, for example 'irb' or '/bin/bash' * @param arguments Any optional arguments */ void setShell( const TQString & shell, const TQStrList & arguments = TQStrList() ); /** * Executes the previously set shell. If @ref setShell wasn't called before * konsolepart will decide what to use. */ void activate(); /** * Should we auto launch the shell again if it was terminated? * @param doAutoActivate */ void setAutoReactivateOnClose( bool doAutoActivate ); /** * Send text to the running shell * @param text The text to send to the shell */ void sendInput( const TQString & text ); /** * Call to check if the shell is currently running * @return true if the shell is currently running */ bool isRunning(); signals: /** * This signal will be emmitted when the started shell exits normally * @param exitcode The return code of the process */ void shellExited( int exitcode ); /** * This signal will be emitted when the started shell is terminated by a signal * @param signalcode The signal the process was killed with */ void shellSignalled( int signalcode ); /** * This signal will be emitted when the process receives data * @param text received data */ void receivedData( const TQString & ); private slots: void partDestroyed(); void processExited( TDEProcess * ); void setAutoReactivateOnCloseDelayed( ); private: TQGuardedPtr m_konsolePart; TQString m_shellName; TQStrList m_shellArguments; bool m_doAutoActivate; bool m_isRunning; }; #endif