import 'package:flutter/widgets.dart'; import 'explorer_pane.dart'; /// 약속 (E5d-1): 탐색기의 일 (ExplorerController 와 작은 컨트롤러들) 이 화면에 부탁하는 것. /// 일은 화면 위젯 · BuildContext 를 모르고 이것만 부른다. 탐색기 화면 ([ExplorerPage] 의 상태) 이 실제로 해 준다. /// - [alive]: 화면이 아직 떠 있는지 (닫힌 뒤 끝난 일은 아무것도 하지 않음) /// - [snack]: 짧은 알림 (아래 SnackBar) /// - [reveal]: 그 창 목록에서 [path] 가 보이게 스크롤 (다음 그리기 뒤) /// - [afterFrame]: 다음 그리기 뒤에 할 일 abstract interface class ExplorerHost { bool get alive; void snack(String text); void reveal(ExplorerPane pane, String path); void afterFrame(VoidCallback f); }