Tinyrack

ContextMenu

우클릭, 길게 누르기, 키보드 컨텍스트 메뉴 키로 명령 메뉴를 열어요.

우클릭, 길게 누르기, 키보드 컨텍스트 메뉴 키로 명령 메뉴를 열어요.

핵심 속성

속성설명
표시 방식스코프가 없으면 TRFlutterContextMenuPresenter가 앱 오버레이에 Tinyrack 메뉴 컴포넌트를 그려요. 네이티브 프레젠터가 처리할 수 없는 플랫폼, 즉 모바일과 웹, 플러그인이 등록되지 않은 데스크탑 빌드는 모두 여기로 폴백하므로 스타일 없는 메뉴가 남는 화면은 없어요.
시스템 메뉴에서 빠지는 것시스템 메뉴는 IconData가 아니라 플랫폼 비트맵을 받기 때문에 TRMenuActionElement.icon은 Flutter 표시에서만 보여요. 닫기도 시스템이 소유하므로 네이티브 메뉴가 열린 뒤에는 TRContextMenuController.close가 아무 일도 하지 않아요. 제목, 단축키, 체크 표시, 비활성 항목, 하위 메뉴는 양쪽 모두에 그대로 전달돼요.
코드에서 열기마우스 이벤트를 보고하는 터미널처럼 보조 포인터 버튼을 직접 소비하는 화면은 TRContextMenuController를 넘기고 전역 좌표로 openAt을 호출해요. TRTerminalView.contextMenuItems가 바로 이 방식이에요.

기본 생성자는 위젯을 받아 항상 Flutter가 그려요. TRContextMenu.items는 메뉴를 TRMenuElement로 기술해서, 설치된 TRContextMenuPresenter가 운영체제에 넘길 수 있게 해요. 컴포지션 루트에서 TRContextMenuPresenterScopeTRNativeContextMenuPresenter를 설치하면 Linux, macOS, Windows에서 플랫폼 메뉴가 나와요.

설치

패키지를 추가한 뒤 공개 라이브러리를 가져오세요.

flutter pub add tinyrack_ui
import 'package:tinyrack_ui/tinyrack_ui.dart';

플레이그라운드

사용법

import 'package:material_ui/material_ui.dart';
import 'package:tinyrack_ui/tinyrack_ui.dart';

TRContextMenu.items(
  items: [TRMenuActionElement(id: 'open', title: 'Open', onPressed: open)],
  child: card,
)

API

ContextMenu는 Flutter의 네이티브 상태와 콜백을 유지하고 Tinyrack 토큰을 기본값으로 사용해요.