X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm.h;h=05aad87a458ccb0376805c9be956e61816a48f42;hb=e67143f45c221a11825e573c77ca0de0163fe7be;hp=65cdd651399ce3bfe314097624ae6ebce41ffe8f;hpb=0247bf719b9a610776747221b8ed4c1343f5c93a;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm.h b/KernelLand/Kernel/drv/vterm.h index 65cdd651..05aad87a 100644 --- a/KernelLand/Kernel/drv/vterm.h +++ b/KernelLand/Kernel/drv/vterm.h @@ -42,6 +42,12 @@ 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) @@ -56,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; @@ -129,5 +135,8 @@ 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