(* text-renderer.sig *) (* Copyright (C) 2004 Dominic Gelinas documentation Copyright (C) 2006 Cole Hoosier This file is part of crypto, a cryptogram encoder/decoder. See the file COPYING.txt for copying and usage restrictions *) signature TEXT_RENDERER = sig structure W : WIDGET structure G : GEOMETRY type textrenderer (* rendered text a list of X,Y coordinates and a string that should be drawn at that location *) type rt = (G.point * string) list (* generates a textrenderer given a view and args list *) val textRenderer : (W.view * W.arg list) -> textrenderer (* returns the text to be rendered *) val getText : textrenderer -> string (* sets the text to be rendered *) val setText : textrenderer -> string -> unit (* returns the font to render with, this is used to determine the width,height,etc to use when rendering *) val getFont : textrenderer -> W.EXB.font (* sets the font to render with, this is used to determine the width,height,etc to use when rendering *) val setFont : textrenderer -> W.EXB.font -> unit (* returns the max number of rows that are rendered *) val getRows : textrenderer -> int (* sets the max number of rows that are rendered *) val setRows : textrenderer -> int -> unit (* returns the max number of columns that are rendered *) val getColumns : textrenderer -> int (* sets the max number of columns that are rendered *) val setColumns : textrenderer -> int -> unit (* returns whether line-wrapping is enabled *) val getLineWrap : textrenderer -> bool (* sets whether line-wrapping is enabled *) val setLineWrap : textrenderer -> bool -> unit (* returns the offset into the text that is located "at" the given point *) val ptToPos : textrenderer -> G.point -> int (* returns the point that corresponds to a given offset into the text *) val posToPt : textrenderer -> int -> G.point (* returns the desired dimensions of the textrenderer *) val getDim : textrenderer -> {x_dim : W.dim, y_dim : W.dim} (* returns rendered text for the entire contents of textrenderer *) val getRt : textrenderer -> rt (* returns rendered text for the contents of textrenderer between two points defined by their integer offsets into the text *) val getRtInRange : textrenderer -> (int * int) -> rt (* returns rendered text for the contents of textrenderer from a given point to the end of its line *) val getRtToEndOfLine : textrenderer -> int -> rt (* returns rendered text for the contents of textrenderer from a given point to the end of the textrenderer's contents *) val getRtToEndOfText : textrenderer -> int -> rt (* returns a unit channel that is sent on whenever the dimensions of the textrenderer change *) val evtOf : textrenderer -> unit CML.event end (* TEXT_RENDERER *)