package memtrace_viewer

  1. Overview
  2. Docs
Interactive memory profiler based on Memtrace

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.17.0.tar.gz
sha256=0d9b7ddf94f9cf090930a36468abd4f4ca40c5618ec02dbbc6fd47fb0572433d

doc/src/memtrace_viewer.client/keyboard_scope.ml.html

Source file keyboard_scope.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
open! Core
open Bonsai_web

type t =
  { view : Vdom.Node.t
  ; key_help : Vdom_keyboard.Help_text.t
  }

let wrap ~view ~key_handler =
  let open Vdom in
  let on_keydown event =
    match Vdom_keyboard.Keyboard_event_handler.handle_event key_handler event with
    | Some action -> Effect.Many [ action; Effect.Stop_propagation ]
    | None -> Effect.Ignore
  in
  let view =
    Node.div
      ~attrs:
        [ Attr.many_without_merge
            [ (* Make focusable *) Attr.tabindex (-1); Attr.on_keydown on_keydown ]
        ]
      [ view ]
  in
  let key_help = Vdom_keyboard.Keyboard_event_handler.get_help_text key_handler in
  { view; key_help }
;;