API v6.0
Breaking changes for API v6.0
Here is a list of breaking changes that happened during the API v6.0 period when differing versions of Terminaux introduced breaking changes.
From 5.4.x to 6.0.x
Between the 5.4.x and 6.0.x version range, we've made the following breaking changes:
ConsoleFilterInfo
class added
ConsoleFilterInfo
class addedThe ConsoleFilterInfo
class has been added to Terminaux's console filtering feature that lists all filter info, including the filter type, the query to match, and so on. This is to make the above functions easier to use by simplifying a tuple to a class.
WideChar
moved to Textify
WideChar
moved to TextifyWe've moved WideChar
struct to the latest version of Textify that Terminaux now uses. This is to enable more applications using this structure for wide characters.
Centered writers refactored
The above centered writers have been replaced by more flexible aligned writers that allow you to not only write text to the console at the center of the console, but you can also align it either to the left, to the middle, or to the right.
CenteredTextColor
->AlignedTextColor
CenteredFigletTextColor
->AlignedFigletTextColor
Shapes and IGeometricShape
moved to CyclicWriters
IGeometricShape
moved to CyclicWriters
As part of the renderable cyclic writers that can be contained in a single Container
instance, we've moved all the shapes and their interface, IGeometricShape
, as both that interface and IStaticRenderable
work similarly to each other. The shape feature and its interface was a prelude to the static renderable writers.
Writer tools moved to CyclicWriters
CyclicWriters
The following writer tools have been moved to the Terminaux.Writer.CyclicWriters.Renderer.Tools
namespace to unify all the writer tools for consistency:
AsciinemaRepresentation
(newly introduced)BorderSettings
CellOptions
ChartElement
FigletTextTools
Keybinding
PowerLineSegment
PowerLineTools
PredefinedBorders
TextAlignment
(newly introduced)TextSettings
TextWriterTools
Wrapped writer removed
Due to new features being introduced with the introduction of the bounded text, we've decided to remove this writer. It'll be re-introduced in a better form in one of the Terminaux releases, and we promise you with new features.
As a result, the ListWriterColor
no longer supports wrapping, as we've removed the Wrap
parameter. As Nitrocid KS extensively uses this feature, especially for wrapping commands, this means that Terminaux 6.x series higher than 6.0 will be used in the next few versions of Nitrocid KS.
Please be patient while we're working on a re-write of the wrapped writer in a future 6.x version of Terminaux.
KeybindingsWriter
refactored
KeybindingsWriter
refactoredWe have moved the KeybindingsWriter
functionality to its own cyclic writer class. Also, we've moved the above functions to the KeybindingTools
static class.
Slow writers moved to ConsoleWriters
ConsoleWriters
These dynamic writers have been moved to the normal console writers namespace, because we're cleaning up the writer base in versions between Terminaux 6.0 and a future major release of this library.
Filled
property removed from IGeometricShape
Filled
property removed from IGeometricShape
We have removed the above property from the geometric shape interface, because there are shapes, such as arcs, that can't have this property due to high flexibility.
Changed how shapes render
Due to the new canvas class being used to render a shape, you'll notice that the shapes will appear stretched. This is due to the width not being treated as a multiple of two when creating shape instances due to canvases defaulting to full width. The following shapes are affected based on width:
Ellipsis
Parallelogram
Rectangle
Square
Line
Triangle
Trapezoid
NerdFontsTools
moved
NerdFontsTools
movedAs we're phasing out Terminaux.Graphics
due to the cyclic writers being introduced to the Terminaux 6.0 line, we've decided to move this class to a new namespace, Terminaux.Writer.CyclicWriters.Renderer.Tools
.
Transformation formula interface publicized
To allow for multiple transformations to be done seamlessly, we've decided to publicize the ITransformationFormula
interface and the BaseTransformationFormula
class that provides the signature prototype needed for the transformation code. Because we've made these public, we've demoted the TransformationFormula
enumeration from public
to internal
visibility, causing us to remove the RenderColorBlindnessAware()
function.
In addition to that, we've also removed the above properties so that you can finally specify not only a list of transformation formulas, but you can also specify their own density ranging from 0.0 to 0.1.
ScreenPart
obsolete functions removed
ScreenPart
obsolete functions removedThe obsolete functions that added VT sequences to the dynamic screen part buffer have been removed, because of the introduction of the AddDynamicText()
function.