printWidget method

void printWidget(
  1. Widget widget
)

Renders and prints the given widget to standard output at the current inline cursor position.

Implementation

void printWidget(Widget widget) {
  var width = backend.size.x;
  if (width <= 0) {
    width = 80;
  }

  final height = widget.getIntrinsicHeight(width);

  final buffer = Buffer.blank(width, height);
  final element = widget.createElement();
  element.mount(null);
  element.render(buffer, Rect(0, 0, width, height));
  element.unmount();

  final renderer = Renderer(width, height, mode: RenderingMode.inline);
  final sb = StringBuffer();
  renderer.render(buffer, sb);
  if (sb.isNotEmpty) {
    backend.write(sb.toString());
  }
}