handleMouseEvent method

  1. @override
void handleMouseEvent(
  1. MouseEvent event,
  2. int localX,
  3. int localY,
  4. Rect area,
)
override

Handles a mouse event at local coordinates and bounding area.

Implementation

@override
void handleMouseEvent(
  term.MouseEvent event,
  int localX,
  int localY,
  Rect area,
) {
  if (event.type == term.MouseEventType.press) {
    int currentX = 0;
    final controller = widget.controller;
    for (var i = 0; i < controller.options.length; i++) {
      if (i > 0) currentX += 4;
      final option = controller.options[i];
      final textLength = 4 + option.characters.length;
      if (localX >= currentX && localX < currentX + textLength) {
        setState(() {
          controller.selectedIndex = i;
          controller.focusedIndex = i;
        });
        return;
      }
      currentX += textLength;
    }
  }
}