Module Display


module Display: sig .. end
Channel for writing

val fp : Pervasives.out_channel ->
('a, Pervasives.out_channel, unit) Pervasives.format -> 'a
module ANSI: sig .. end
type tagline_description = (string * char) list 

type sophisticated_display = {
   ds_channel : Pervasives.out_channel; (*Channel for writing*)
   ds_start_time : float; (*When was compilation started*)
   mutable ds_last_update : float; (*When was the display last updated*)
   mutable ds_last_target : string; (*Last target built*)
   mutable ds_last_cached : bool; (*Was the last target cached or really built ?*)
   mutable ds_last_tags : Tags.t; (*Tags of the last command*)
   mutable ds_changed : bool; (*Does the tag line need recomputing ?*)
   ds_update_interval : float; (*Minimum interval between updates*)
   ds_columns : int; (*Number of columns in dssplay*)
   mutable ds_jobs : int; (*Number of jobs launched or cached*)
   mutable ds_jobs_cached : int; (*Number of jobs cached*)
   ds_tagline : string; (*Current tagline*)
   mutable ds_seen_tags : Tags.t; (*Tags that we have encountered*)
   ds_pathname_length : int; (*How much space for displaying pathnames ?*)
   ds_tld : tagline_description; (*Description for the tagline*)
}
type display_line =
| Classic
| Sophisticated of sophisticated_display

type display = {
   di_log_level : int;
   mutable di_log_channel : (Format.formatter * Pervasives.out_channel) option;
   di_channel : Pervasives.out_channel;
   di_formatter : Format.formatter;
   di_display_line : display_line;
   mutable di_finished : bool;
}
val default_update_interval : float
val default_tagline_description : (string * char) list
val countdown_chars : int
val jobs_chars : int
val jobs_cached_chars : int
val dots : string
val start_target : string
val finish_target : string
val ticker_chars : int
val ticker_period : float
val ticker_animation : string array
val cached : string
val uncached : string
val cache_chars : int
val create_tagline : 'a list -> string
val create : ?channel:Pervasives.out_channel ->
?mode:[ `Classic | `Sophisticated ] ->
?columns:int ->
?description:tagline_description ->
?log_file:string -> ?log_level:int -> unit -> display
val print_time : Pervasives.out_channel -> float -> unit
val print_shortened_pathname : int -> Pervasives.out_channel -> string -> unit
val redraw_sophisticated : sophisticated_display -> unit
val redraw : display_line -> unit
val finish_sophisticated : ?how:[< `Error | `Quiet | `Success > `Error `Success ] ->
sophisticated_display -> unit
val sophisticated_display : sophisticated_display -> (Pervasives.out_channel -> 'a) -> 'a
val call_if : 'a option -> ('a -> unit) -> unit
val display : display -> (Pervasives.out_channel -> unit) -> unit
val finish : ?how:[< `Error | `Quiet | `Success > `Error `Success ] ->
display -> unit
val update_tagline_from_tags : sophisticated_display -> unit
val update_sophisticated : sophisticated_display -> unit
val set_target_sophisticated : sophisticated_display -> string -> Tags.t -> bool -> unit
val print_tags : Format.formatter -> Tags.t -> unit
val update : display -> unit
val event : display -> ?pretend:bool -> string -> string -> Tags.t -> unit
val dprintf : ?log_level:int ->
display -> ('a, Format.formatter, unit) Pervasives.format -> 'a