diff options
author | Ken Moore <moorekou@gmail.com> | 2016-04-25 13:08:12 -0400 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2016-04-25 13:08:12 -0400 |
commit | ed5ecf7ea7a482b4649e66ecb35fbc60af680684 (patch) | |
tree | acc0fa17d228259e847f55c678db9fb0a9b50f0c /desktop-utilities/lumina-terminal/TtyProcess.h | |
parent | Merge branch 'master' of github.com:pcbsd/lumina (diff) | |
download | lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.gz lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.bz2 lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.zip |
Rearrange the Lumina source tree quite a bit:
Now the utilites are arranged by category (core, core-utils, desktop-utils), so all the -utils may be excluded by a package system (or turned into separate packages) as needed.
Diffstat (limited to 'desktop-utilities/lumina-terminal/TtyProcess.h')
-rw-r--r-- | desktop-utilities/lumina-terminal/TtyProcess.h | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/desktop-utilities/lumina-terminal/TtyProcess.h b/desktop-utilities/lumina-terminal/TtyProcess.h deleted file mode 100644 index 9b3873b0..00000000 --- a/desktop-utilities/lumina-terminal/TtyProcess.h +++ /dev/null @@ -1,83 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is basically a replacement for QProcess, where all process/terminal outputs -// are redirected and not just the standard input/output channels. This allows it -// to be used for terminal-like apps (shells) which directly modify the terminal output -// rather than stick to input/output channels for communication. -//=========================================== -// IMPLEMENTATION NOTE -//====================== -// The process requires/uses ANSI control codes (\x1B[<something>) for special operations -// such as moving the cursor, erasing characters, etc.. -// It is recommended that you pair this class with the graphical "TerminalWidget.h" class -// or some other ANSI-compatible display widget. -//=========================================== -#ifndef _LUMINA_DESKTOP_UTILITIES_TERMINAL_TTY_PROCESS_WIDGET_H -#define _LUMINA_DESKTOP_UTILITIES_TERMINAL_TTY_PROCESS_WIDGET_H - -#include <QDebug> -#include <QSocketNotifier> -#include <QKeyEvent> - -//Standard C library functions for PTY access/setup -#include <stdlib.h> -#include <fcntl.h> -#include <termios.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/types.h> -#include <sys/wait.h> -#include <signal.h> - -class TTYProcess : public QObject{ - Q_OBJECT -public: - TTYProcess(QObject *parent = 0); - ~TTYProcess(); - - bool startTTY(QString prog, QStringList args = QStringList(), QString workdir = "~"); - void closeTTY(); - - //Primary read/write functions - void writeTTY(QByteArray output); - QByteArray readTTY(); - - //Setup the terminal size (characters and pixels) - void setTerminalSize(QSize chars, QSize pixels); - - //Status update checks - bool isOpen(); - - //Functions for handling ANSI escape codes (typically not used by hand) - QByteArray CleanANSI(QByteArray, bool &incomplete); - -private: - pid_t childProc; - int ttyfd; - QSocketNotifier *sn; - QByteArray fragBA; //fragment ByteArray - - //==================================== - // C Library function for setting up the PTY - // Inputs: - // int &fd: (output) file descriptor for the master PTY (positive integer if valid) - // char *prog: program to run - // char **args: program arguments - // Returns: - // -1 for errors, child process PID (positive integer) if successful - //==================================== - static pid_t LaunchProcess(int& fd, char *prog, char **child_args); - -private slots: - void checkStatus(int); - -signals: - void readyRead(); - void processClosed(); -}; - -#endif |