JJ_MKVMaker/lib/ui/explorer/explorer_host.dart

17 lines
793 B
Dart

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);
}