Source file signals_window.ml
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
open Base
open Hardcaml_waveterm_kernel
module M = Signals_window_intf.M
module Make
(Data : Hardcaml_waveterm_kernel.Data.S)
(Render : Hardcaml_waveterm_kernel.Render.M(Data).S)
(Hierarchy : Hierarchy.M(Data).S) =
struct
type t =
{ hierarchy : Hierarchy.t
; max_signal_name_width : int
; num_signals : int
; style : Style.t
}
[@@deriving sexp_of, fields ~getters]
let create ~waves ~hierarchy =
{ hierarchy
; max_signal_name_width = Render.get_max_signal_width_in_chars waves
; num_signals = Render.total_signals_in_waveform waves
; style = Window_styles.(colour white_on_black).signals
}
;;
let draw ~ctx ~bounds ~selected_wave_index t =
Render.draw_signals
~style:t.style
~ctx
~bounds
~selected_wave_index
(Hierarchy.get_currently_rendered_waves t.hierarchy)
;;
end