pw_console: LogContainer, rendering and scrolling

New LogContainer class which:
- Holds log lines for the parent LogPane
- Tracks the currently selected line
- Handles scrolling
- Renders the number of log lines that will fit in the LogPane window

No-Docs-Update-Reason: Log viewer functionality still WIP.
Change-Id: Iba5c290daad44a49650cc537417e53e99d83a29f
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49024
Pigweed-Auto-Submit: Anthony DiGirolamo <tonymd@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Joe Ethier <jethier@google.com>
5 files changed
tree: 9770047471b2dc16ae9dc328f6224865d5dfa48c
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_console/
  24. pw_containers/
  25. pw_cpu_exception/
  26. pw_cpu_exception_cortex_m/
  27. pw_docgen/
  28. pw_doctor/
  29. pw_env_setup/
  30. pw_function/
  31. pw_fuzzer/
  32. pw_hdlc/
  33. pw_hex_dump/
  34. pw_i2c/
  35. pw_interrupt/
  36. pw_interrupt_cortex_m/
  37. pw_kvs/
  38. pw_libc/
  39. pw_log/
  40. pw_log_basic/
  41. pw_log_multisink/
  42. pw_log_null/
  43. pw_log_rpc/
  44. pw_log_sink/
  45. pw_log_tokenized/
  46. pw_malloc/
  47. pw_malloc_freelist/
  48. pw_metric/
  49. pw_minimal_cpp_stdlib/
  50. pw_module/
  51. pw_multisink/
  52. pw_package/
  53. pw_persistent_ram/
  54. pw_polyfill/
  55. pw_preprocessor/
  56. pw_presubmit/
  57. pw_protobuf/
  58. pw_protobuf_compiler/
  59. pw_random/
  60. pw_result/
  61. pw_ring_buffer/
  62. pw_router/
  63. pw_rpc/
  64. pw_snapshot/
  65. pw_span/
  66. pw_status/
  67. pw_stm32cube_build/
  68. pw_stream/
  69. pw_string/
  70. pw_sync/
  71. pw_sync_baremetal/
  72. pw_sync_embos/
  73. pw_sync_freertos/
  74. pw_sync_stl/
  75. pw_sync_threadx/
  76. pw_sys_io/
  77. pw_sys_io_arduino/
  78. pw_sys_io_baremetal_lm3s6965evb/
  79. pw_sys_io_baremetal_stm32f429/
  80. pw_sys_io_stdio/
  81. pw_target_runner/
  82. pw_thread/
  83. pw_thread_embos/
  84. pw_thread_freertos/
  85. pw_thread_stl/
  86. pw_thread_threadx/
  87. pw_tokenizer/
  88. pw_tool/
  89. pw_toolchain/
  90. pw_trace/
  91. pw_trace_tokenized/
  92. pw_transfer/
  93. pw_unit_test/
  94. pw_varint/
  95. pw_watch/
  96. pw_web_ui/
  97. targets/
  98. third_party/
  99. .bazelignore
  100. .bazelrc
  101. .clang-format
  102. .eslintrc.json
  103. .gitattributes
  104. .gitignore
  105. .gn
  106. .prettierrc.js
  107. .pylintrc
  108. activate.bat
  109. AUTHORS
  110. bootstrap.bat
  111. bootstrap.sh
  112. BUILD
  113. BUILD.gn
  114. BUILDCONFIG.gn
  115. CMakeLists.txt
  116. LICENSE
  117. modules.gni
  118. OWNERS
  119. package.json
  120. PW_PLUGINS
  121. README.md
  122. tsconfig.json
  123. WORKSPACE
  124. yarn.lock
README.md

See our website: http://pigweed.dev