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.
58 lines
1.6 KiB
58 lines
1.6 KiB
/* |
|
SPDX-FileCopyrightText: 2006-2008 Robert Knight <robertknight@gmail.com> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
|
|
#ifndef TERMINAL_CHARACTER_DECODER_H |
|
#define TERMINAL_CHARACTER_DECODER_H |
|
|
|
// Qt |
|
#include <QExplicitlySharedDataPointer> |
|
#include <QList> |
|
|
|
// Konsole characters |
|
#include <Character.h> |
|
|
|
// Konsole decoders |
|
#include "konsoledecoders_export.h" |
|
|
|
class QTextStream; |
|
|
|
namespace Konsole |
|
{ |
|
/** |
|
* Base class for terminal character decoders |
|
* |
|
* The decoder converts lines of terminal characters which consist of a unicode character, foreground |
|
* and background colors and other appearance-related properties into text strings. |
|
* |
|
* Derived classes may produce either plain text with no other color or appearance information, or |
|
* they may produce text which incorporates these additional properties. |
|
*/ |
|
class KONSOLEDECODERS_EXPORT TerminalCharacterDecoder |
|
{ |
|
public: |
|
virtual ~TerminalCharacterDecoder() |
|
{ |
|
} |
|
|
|
/** Begin decoding characters. The resulting text is appended to @p output. */ |
|
virtual void begin(QTextStream *output) = 0; |
|
/** End decoding. */ |
|
virtual void end() = 0; |
|
|
|
/** |
|
* Converts a line of terminal characters with associated properties into a text string |
|
* and writes the string into an output QTextStream. |
|
* |
|
* @param characters An array of characters of length @p count. |
|
* @param count The number of characters |
|
* @param properties Additional properties which affect all characters in the line |
|
*/ |
|
virtual void decodeLine(const Character *characters, int count, LineProperty properties) = 0; |
|
}; |
|
|
|
} |
|
|
|
#endif
|
|
|