@@ -3,7 +3,7 @@ open Eio_trace
33let ( ==> ) signal callback =
44 ignore (signal ~callback : GtkSignal. id)
55
6- let create ~title layout =
6+ let create ~title tracefile =
77 let window = GWindow. window () in
88 window#set_title title;
99 window#event#connect#delete ==> (fun _ -> GMain. quit () ; true );
@@ -13,7 +13,10 @@ let create ~title layout =
1313 let area = GMisc. drawing_area ~packing: (table#attach ~left: 0 ~top: 0 ~expand: `BOTH ~fill: `BOTH ) () in
1414 let _hscroll = GRange. scrollbar `HORIZONTAL ~adjustment: hadjustment ~packing: (table#attach ~left: 0 ~top: 1 ~expand: `X ~fill: `BOTH ) () in
1515 let _vscroll = GRange. scrollbar `VERTICAL ~adjustment: vadjustment ~packing: (table#attach ~left: 1 ~top: 0 ~expand: `Y ~fill: `BOTH ) () in
16- let v = View. of_layout layout ~width: 1000. ~height: 1000. in
16+ let v =
17+ let layout = Layout. load tracefile in
18+ View. of_layout layout ~width: 1000. ~height: 1000.
19+ in
1720 let set_scollbars () =
1821 let (xlo, xhi, xsize, xvalue), (ylo, yhi, ysize, yvalue) = View. scroll_bounds v in
1922 hadjustment#set_bounds ~lower: xlo ~upper: xhi ~page_size: xsize () ;
@@ -45,6 +48,18 @@ let create ~title layout =
4548 true
4649 );
4750 area#misc#set_app_paintable true ;
51+
52+ window#event#connect#key_press ==> (fun ev ->
53+ let keyval = GdkEvent.Key. keyval ev in
54+ if keyval = GdkKeysyms. _F5 then (
55+ let layout = Layout. load tracefile in
56+ View. set_layout v layout;
57+ set_scollbars () ;
58+ redraw () ;
59+ true
60+ ) else false
61+ );
62+
4863 area#event#add [`SMOOTH_SCROLL ; `BUTTON1_MOTION ; `BUTTON_PRESS ];
4964 area#event#connect#scroll ==> (fun ev ->
5065 let x = GdkEvent.Scroll. x ev in
0 commit comments