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
|
(**************************************************************************)
(* *)
(* The Why platform for program certification *)
(* Copyright (C) 2002-2008 *)
(* Romain BARDOU *)
(* Jean-Franois COUCHOT *)
(* Mehdi DOGGUY *)
(* Jean-Christophe FILLITRE *)
(* Thierry HUBERT *)
(* Claude MARCH *)
(* Yannick MOY *)
(* Christine PAULIN *)
(* Yann RGIS-GIANAS *)
(* Nicolas ROUSSET *)
(* Xavier URBAIN *)
(* *)
(* This software is free software; you can redistribute it and/or *)
(* modify it under the terms of the GNU General Public *)
(* License version 2, as published by the Free Software Foundation. *)
(* *)
(* This software is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *)
(* *)
(* See the GNU General Public License version 2 for more details *)
(* (enclosed in the file GPL). *)
(* *)
(**************************************************************************)
open Colors
type loc = { file:string; line:string; sp:string; ep:string }
let last_colored = ref [(GText.tag ())]
let tag = ref 0
let gtktags = Hashtbl.create 57 (* tag id -> gtk tag *)
let loctags = Hashtbl.create 57 (* tag id -> loc *)
let tag_ref = !tag
let new_tag (l:loc) =
incr tag;
let mytag = string_of_int !tag in
Hashtbl.add loctags mytag l;
mytag
let get_tag t =
try
Hashtbl.find loctags t
with Not_found ->
assert false
let add_gtktag (index:string) (tag:GText.tag) =
Hashtbl.add gtktags index tag
let get_gtktag index =
try
Hashtbl.find gtktags index
with Not_found ->
assert false
let reset_last_colored () =
List.iter
(fun tag ->
tag#set_properties
[`BACKGROUND (get_bc_predicate ());
`FOREGROUND (get_fc_predicate ())])
!last_colored;
last_colored := [GText.tag ()]
let refresh_last_colored tag =
reset_last_colored ();
last_colored := tag
|