Module LTerm_draw

module LTerm_draw: sig .. end
Drawing

type point = {
   mutable char : CamomileLibrary.UChar.t; (*The unicode character.*)
   mutable bold : bool; (*Whether the character is in bold or not.*)
   mutable underline : bool; (*Whether the character is underlined or not.*)
   mutable blink : bool; (*Whether the character is blinking or not.*)
   mutable reverse : bool; (*Whether the character is in reverse video mode or not.*)
   mutable foreground : LTerm_style.color; (*The foreground color.*)
   mutable background : LTerm_style.color; (*The background color.*)
}
Type of a point in a matrix of styled characters.
type matrix = point array array 
Type of a matrix of points. The matrix is indexed by lines then columns, i.e. to access the point at line l and column c in matrix m you should use m.(l).(c).
val make_matrix : LTerm_geom.size -> matrix
matrix size creates a matrix of the given size containing only blank characters.
val set_style : point -> LTerm_style.t -> unit
set_style point style sets fields of point according to fields of style. For example:

        set_style point { LTerm_style.none with LTerm_style.bold = Some true }
      

will have the following effect:

        point.bold <- true
      

type context 
Type of contexts. A context is used for drawing.
val context : matrix -> LTerm_geom.size -> context
context m s creates a context from a matrix m of size s. It raises Invalid_argument if s is not the size of m.
exception Out_of_bounds
Exception raised when trying to access a point that is outside the bounds of a context.
val size : context -> LTerm_geom.size
size ctx returns the size of the given context.
val sub : context -> LTerm_geom.rect -> context
sub ctx rect creates a sub-context from the given context. It raises LTerm_draw.Out_of_bounds if the rectangle is not contained in the given context.
val clear : context -> unit
clear ctx clears the given context. It resets all styles to their default and sets characters to spaces.
val fill : context -> ?style:LTerm_style.t -> CamomileLibrary.UChar.t -> unit
fill ctx ch fills the given context with ch.
val fill_style : context -> LTerm_style.t -> unit
fill_style style fills the given context with style.
val point : context -> int -> int -> point
point ctx row column returns the point at given position in ctx. It raises LTerm_draw.Out_of_bounds if the coordinates are outside the given context.
val draw_char : context ->
int -> int -> ?style:LTerm_style.t -> CamomileLibrary.UChar.t -> unit
draw_char ctx row column ?style ch sets the character at given coordinates to ch. It does nothing if the given coordinates are outside the bounds of the context.
val draw_string : context -> int -> int -> ?style:LTerm_style.t -> string -> unit
draw_string ctx row column ?style str draws the given string at given coordinates. This does not affect styles. str may contains newlines.
val draw_styled : context ->
int -> int -> ?style:LTerm_style.t -> LTerm_text.t -> unit
draw_styled ctx row column ?style text draws the given styled text at given coordinates.
val draw_string_aligned : context ->
int -> LTerm_geom.horz_alignment -> ?style:LTerm_style.t -> string -> unit
Draws a string with the given alignment.
val draw_styled_aligned : context ->
int ->
LTerm_geom.horz_alignment -> ?style:LTerm_style.t -> LTerm_text.t -> unit
Draws a styled string with the given aglienment.
type connection = 
| Blank (*No connection.*)
| Light (*Connection with a light line.*)
| Heavy (*Connection with a heavy line.*)
Type of an connection in a piece that can be connected to other pieces.
type piece = {
   top : connection;
   bottom : connection;
   left : connection;
   right : connection;
}
Type of a piece, given by its four connection.
val draw_piece : context ->
int -> int -> ?style:LTerm_style.t -> piece -> unit
Draws a piece. It may modify pieces around it.
val draw_hline : context ->
int -> int -> int -> ?style:LTerm_style.t -> connection -> unit
draw_hline ctx row column length connection draws an horizontal line.
val draw_vline : context ->
int -> int -> int -> ?style:LTerm_style.t -> connection -> unit
draw_hline ctx row column length connection draws a vertical line.
val draw_frame : context ->
LTerm_geom.rect -> ?style:LTerm_style.t -> connection -> unit
Draws a rectangle.