Mercurial > octave-nkf
view gui/src/terminal/Pty.h @ 13635:04931210aac0
Arrow keys work. Removed two more classes.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Fri, 19 Aug 2011 10:30:13 +0200 |
parents | d3bede98d798 |
children | b643c51ca0f7 |
line wrap: on
line source
/* This file is part of Konsole, KDE's terminal emulator. Copyright 2007-2008 by Robert Knight <robertknight@gmail.com> Copyright 1997,1998 by Lars Doelle <lars.doelle@on-line.de> 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. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef PTY_H #define PTY_H // Qt #include <QtCore/QStringList> #include <QtCore/QVector> #include <QtCore/QList> #include <QtCore/QSize> // KDE #include "kprocess.h" #include "kptyprocess.h" /** * The Pty class is used to start the terminal process, * send data to it, receive data from it and manipulate * various properties of the pseudo-teletype interface * used to communicate with the process. * * To use this class, construct an instance and connect * to the sendData slot and receivedData signal to * send data to or receive data from the process. * * To start the terminal process, call the start() method * with the program name and appropriate arguments. */ //class KONSOLEPRIVATE_EXPORT Pty: public KPtyProcess class Pty:public KPtyProcess { Q_OBJECT public: /** * Constructs a new Pty. * * Connect to the sendData() slot and receivedData() signal to prepare * for sending and receiving data from the terminal process. * * To start the terminal process, call the run() method with the * name of the program to start and appropriate arguments. */ explicit Pty (QObject * parent = 0); /** * Construct a process using an open pty master. * See KPtyProcess::KPtyProcess() */ explicit Pty (int ptyMasterFd, QObject * parent = 0); ~Pty (); /** * Starts the terminal process. * * Returns 0 if the process was started successfully or non-zero * otherwise. * * @param program Path to the program to start * @param arguments Arguments to pass to the program being started * @param environment A list of key=value pairs which will be added * to the environment for the new process. At the very least this * should include an assignment for the TERM environment variable. */ int start (const QString & program, const QStringList & arguments); /** TODO: Document me */ void setWriteable (bool writeable); /** * Enables or disables Xon/Xoff flow control. The flow control setting * may be changed later by a terminal application, so flowControlEnabled() * may not equal the value of @p on in the previous call to setFlowControlEnabled() */ void setFlowControlEnabled (bool on); /** Queries the terminal state and returns true if Xon/Xoff flow control is enabled. */ bool flowControlEnabled () const; /** * Sets the size of the window (in lines and columns of characters) * used by this teletype. */ void setWindowSize (int lines, int cols); /** Returns the size of the window used by this teletype. See setWindowSize() */ QSize windowSize () const; /** TODO Document me */ void setErase (char erase); /** */ char erase () const; public slots: /** * Put the pty into UTF-8 mode on systems which support it. */ void setUtf8Mode (bool on); /** * Sends data to the process currently controlling the * teletype ( whose id is returned by foregroundProcessGroup() ) * */ void sendData (const QByteArray& data); signals: /** * Emitted when a new block of data is received from * the teletype. * */ void receivedData (const QByteArray& data); protected: void setupChildProcess (); private slots: // called when data is received from the terminal process void dataReceived (); private: void init (); int _windowColumns; int _windowLines; char _eraseChar; bool _xonXoff; bool _utf8; }; #endif // PTY_H