Tinyrack

ContextMenu

右クリック、長押し、キーボードのコンテキストメニューキーでコマンドを開きます。

右クリック、長押し、キーボードのコンテキストメニューキーでコマンドを開きます。

主なプロパティ

プロパティ説明
表示方法スコープがない場合は TRFlutterContextMenuPresenter がアプリのオーバーレイに Tinyrack のメニューコンポーネントを描画します。ネイティブプレゼンターが扱えないプラットフォーム、つまりモバイル、Web、プラグインが登録されていないデスクトップビルドはすべてこれにフォールバックするため、スタイルの当たっていないメニューが残る画面はありません。
システムメニューで省かれるものシステムメニューは IconData ではなくプラットフォームのビットマップを受け取るため、TRMenuActionElement.icon は Flutter の表示でのみ反映されます。閉じる操作もシステムが握るため、ネイティブメニューが開いたあとの TRContextMenuController.close は何もしません。タイトル、ショートカット、チェックマーク、無効な項目、サブメニューは両方に引き継がれます。
コードから開くマウスイベントを報告するターミナルのように、副ポインタボタンを自分で消費するサーフェスは TRContextMenuController を渡し、グローバル座標で openAt を呼びます。TRTerminalView.contextMenuItems がまさにこの方式です。

デフォルトのコンストラクタはウィジェットを受け取り、常に Flutter が描画します。TRContextMenu.items はメニューを TRMenuElement として記述するため、インストールされた TRContextMenuPresenter がオペレーティングシステムに渡せます。コンポジションルートで TRContextMenuPresenterScope から TRNativeContextMenuPresenter を設定すると、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 トークンを既定値として使用します。