1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
(***********************************************************************)
(* *)
(* Active-DVI *)
(* *)
(* Projet Cristal, INRIA Rocquencourt *)
(* *)
(* Copyright 2002 Institut National de Recherche en Informatique et *)
(* en Automatique. All rights reserved. This file is distributed *)
(* under the terms of the GNU Lesser General Public License. *)
(* *)
(* Jun Furuse, Didier Rmy and Pierre Weis. *)
(* Contributions by Roberto Di Cosmo, Didier Le Botlan, *)
(* Xavier Leroy, and Alan Schmitt. *)
(* *)
(* Based on Mldvi by Alexandre Miquel. *)
(***********************************************************************)
(* $Id: misc.mli,v 1.1 2007/01/18 14:14:36 rousse Exp $ *)
(* A proper rounding function for positive floats. *)
val round : float -> int;;
type file_name = string;;
type dir_name = string;;
type line_number = int;;
type modifiers = int;;
type mouse_x = int;;
type mouse_y = int;;
type button_pressed = bool;;
type key_pressed = bool;;
(* filters and returns list. *)
val reverse_filter : ('a -> bool) -> 'a list -> 'a list;;
val reverse_map : ('a -> 'b) -> 'a list -> 'b list;;
val reverse_concat : 'a list -> 'a list -> 'a list;;
(* String additionals. *)
val has_prefix : string -> file_name -> bool;;
val has_suffix : string -> file_name -> bool;;
exception Match;;
val get_suffix : string -> file_name -> string;;
val split_string : string -> (char -> bool) -> int -> string list;;
val zap_to_char : char -> string -> string;;
val int_of_float_of_string : string -> int;;
val is_digit : char -> bool;;
val string_substitute_var : (char -> string) -> string -> string;;
(** [string_substitute_var env s] Substitute any [@] one character long
variable into string [s] according to valuation [env].*)
val contains_string : string -> string -> bool;;
(** [contains_string s pat] Checks if string [s] contains the string pattern
[pat]. *)
val string_prefix : char -> string -> string;;
val string_suffix : char -> string -> string;;
val filename_extension : file_name -> string;;
(** Raise [Not_found] if [char] cannot be found in the [string] argument. *)
(* Lifting *)
val lift : ('a -> unit) -> 'a option -> unit
(* Handlers and raisers. *)
val fatal_error : string -> 'a;;
val handle_fatal_error : (unit -> unit) -> unit -> unit;;
(* Warnings. *)
val set_warnings : bool -> unit;;
val warning : string -> unit;;
(* Explicit and temporary debugging. *)
val debug_stop : string -> unit;;
(* To print a message if debugging is on. *)
val debug_endline : string -> unit;;
val push_char_event : char -> unit;;
(** [push_char_event c] pushes a key press [c]
into the Active-DVI's events queue. *)
val push_key_event : char -> modifiers -> unit;;
(** [push_key_event c ms] pushes a key press [c]
with a given modifier list [ms] into the Active-DVI's events queue. *)
val push_mouse_event : mouse_x -> mouse_y -> button_pressed -> unit;;
(** [push_mouse_event x y b] pushes a mouse event at position ([x], [y])
with a given button pressed [b] into the Active-DVI's events queue. *)
val push_full_event :
char -> modifiers -> key_pressed ->
mouse_x -> mouse_y -> button_pressed -> unit;;
(** [push_full_event c m k x y b] pushes a mouse event at position ([x], [y])
with a given button pressed [b], along with a key pressed [k] with
value [c] and modifier [m] into the Active-DVI's events queue. *)
(* The necessary forwards: not to be called directly. *)
val set_forward_debug_endline : (string -> unit) -> unit;;
val set_forward_push_char_event : (char -> unit) -> unit;;
val set_forward_push_key_event : (char -> modifiers -> unit) -> unit;;
val set_forward_push_mouse_event :
(mouse_x -> mouse_y -> button_pressed -> unit) -> unit;;
val set_forward_push_full_event :
(char -> modifiers -> key_pressed ->
mouse_x -> mouse_y -> button_pressed -> unit) -> unit;;
|