X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm.h;h=05aad87a458ccb0376805c9be956e61816a48f42;hb=2a17e7ae7dab0ac8ba8c434bc3b409f20d378e46;hp=5acb46404347fd11d68b38b60febd3aac5fcbcd3;hpb=45ff232a1db704623e0c4baed011d12cbd44b06e;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm.h b/KernelLand/Kernel/drv/vterm.h index 5acb4640..05aad87a 100644 --- a/KernelLand/Kernel/drv/vterm.h +++ b/KernelLand/Kernel/drv/vterm.h @@ -42,10 +42,18 @@ enum eVT_InModes { typedef struct sVTerm tVTerm; // === STRUCTURES === +typedef struct +{ + unsigned short Row; + unsigned short Col; +} tVT_Pos; + struct sVTerm { int Mode; //!< Current Mode (see ::eTplTerminal_Modes) int Flags; //!< Flags (see VT_FLAG_*) + + void *VT100Info; short Width; //!< Virtual Width short Height; //!< Virtual Height @@ -54,15 +62,15 @@ struct sVTerm Uint32 CurColour; //!< Current Text Colour - int ViewPos; //!< View Buffer Offset (Text Only) - int WritePos; //!< Write Buffer Offset (Text Only) + size_t ViewTopRow; //!< View Buffer Offset (Text Only) + tVT_Pos WritePos; //!< Write Buffer Offset (Text Only) tVT_Char *Text; + tVT_Pos AltWritePos; //!< Alternate write position tVT_Char *AltBuf; //!< Alternate Screen Buffer - int AltWritePos; //!< Alternate write position short ScrollTop; //!< Top of scrolling region (smallest) short ScrollHeight; //!< Length of scrolling region - int SavedWritePos; //!< Saved cursor position (\e[s and \e[u) + tVT_Pos SavedWritePos; //!< Saved cursor position (\e[s and \e[u) char EscapeCodeCache[16]; size_t EscapeCodeLen; @@ -119,11 +127,16 @@ extern void VT_int_ParseEscape_StandardLarge(tVTerm *Term, char CmdChar, int arg extern int VT_int_ParseEscape(tVTerm *Term, const char *Buffer, size_t Bytes); // --- Terminal Buffer --- extern void VT_int_PutString(tVTerm *Term, const Uint8 *Buffer, Uint Count); +extern void VT_int_PutRawString(tVTerm *Term, const Uint8 *String, size_t Bytes); extern void VT_int_PutChar(tVTerm *Term, Uint32 Ch); extern void VT_int_ScrollText(tVTerm *Term, int Count); extern void VT_int_ClearLine(tVTerm *Term, int Num); +extern void VT_int_ClearInLine(tVTerm *Term, int Row, int FirstCol, int LastCol); extern void VT_int_Resize(tVTerm *Term, int NewWidth, int NewHeight); extern void VT_int_ToggleAltBuffer(tVTerm *Term, int Enabled); +extern tVT_Pos *VT_int_GetWritePosPtr(tVTerm *Term); +extern size_t VT_int_GetBufferRows(tVTerm *Term); + #endif