menus 拡張機能を使用すると、Stingray エディタのメイン メニューに新しい項目を追加できます。
各カスタム メニュー項目で HTML パネルを起動したり、プラグインで定義されたアクションを実行したりできます。アクションに関する背景情報については、「アクションを登録する」も参照してください。
すべてのメニュー拡張機能で、次の環境設定パラメータを使用できます。
extensions = { menus = [ { path = "Window/Custom Editor" shortcut = "Ctrl+F8" order = 200 // ... add other parameters here } ] }
メニュー項目がメイン メニューのどこに表示されるのかを決定します。必須。
shortcut
メニュー項目を呼び出すキー シーケンス。オプション。
order
この項目の配置または順序を同じメニュー内の他の項目に対して相対的に指定する値。値が小さいほど、項目はメニューの上部近くに配置されます。値が大きいほど、項目は下部に移動します。オプション。省略した場合は 0 が使用され、新しい項目はメニューの最上部に配置されます。
新しいパネルを開くメニュー項目を作成するには、メニュー拡張機能を次のように設定します。
プラグインに、panel 設定と同じ名前を持つ .html ファイルおよび .js ファイルを付属させる必要もあります。.html ファイルには新しいパネルのコンテンツが含まれています。.js ファイルは自動的にロードされて、.html ページで必要になる可能性のあるすべてのリソースまたはサービスを設定します。
extensions = { menus = [ { path = "Window/Custom Editor" shortcut = "Ctrl+F8" order = 200 panel = "my-custom-editor" width = 400 height = 400 title = "My custom editor" } ] }
panel
メニュー項目が選択されると、Stingray エディタはこの名前を持つ .html および .js ファイルをロードしようとします。必須。
width および height
パネルを最初に開いたときの初期サイズを設定します。オプション。
title
パネルのタブ内に表示されるパネルの名前。オプション。省略した場合は、プラグインの名前が使用されます。
ただし、必要に応じて HTML パネルのコンテンツを記述することができます。制限は特にありません。
Stingray には既定のウィジェットおよびコンポーネントがいくつか付属しています。Angular.js や Mithril などのフレームワークを使用して、JavaScript コントローラのロジックから HTML UI ビューを分離することに慣れている場合は、editor/plugins フォルダ内の標準プラグインで HTML および JavaScript コードをモデリングすることにより、これらのコンポーネントを利用できる可能性があります。
上記の手順でパネルを設定する代わりに、view 設定を使用して、views 拡張機能で設定された、または views 拡張機能で別の Stingray プラグインによって登録された、名前の付いたパネルまたはダイアログ ボックスを指定することができます。「名前の付いたパネルまたはダイアログ ボックスを作成する」も参照してください。
extensions = { menus = [ { path = "Window/Custom Named View" shortcut = "Ctrl+F8" order = 200 view = "my-custom-named-view" } ] }
view
プラグインの views 拡張機能で Stingray に登録された、開こうとしているビューの一意の名前です。
アクションを実行するメニュー項目を作成するには、action という単一パラメータ追加する必要があります。
action
ユーザが新しいメニュー項目を選択したときに Stingray エディタが実行するアクション。この値には、actions 拡張機能で既に設定されいるアクションの名前、またはインラインのアクション定義を指定できます。詳細については、「アクションを登録する」を参照してください。
トリガする action または panel を指定せずに path パラメータを使用して、新しいメニューを作成できます。そしてこのエントリにいくつかのメニュー拡張機能を追加することにより、新しいメニュー項目を追加できます。
パスに区切り記号 / が含まれていない場合、新しい項目はメイン メニュー バーに作成されます。
たとえば、次のようになります。
extensions = { menus = [ { path = "My Plugin" order = 200 } { path = "My Plugin/Many Options" } { path = "My Plugin/Many Options/First Option" action = "..." } { path = "My Plugin/Many Options/Second Option" action = "..." } ] }
上記の環境設定により、次が生成されます。
単純なメニュー区切り、またはラベル付きの区切りを作成することができます。
extensions = { menus = [ { path = "New menu" order = 500 } { path = "New menu/First Item" action = ... } { path = "New menu/Separator with no name" separator = true order = 100 } { path = "New menu/Second Item" order = 200 action = ... } { path = "New menu/Label separator" section = true order = 300 } { path = "New menu/Last Item" action = ... order = 400 } ] }
上記の環境設定により、次が生成されます。
separator
true と設定することにより、このメニュー項目がテキストのないプレーンな区切り線によって表わされることを指定します。
section
true と設定することにより、このメニュー項目が path 値から描画されるラベル付きの区切り線によって表わされることを指定します。
任意のメニュー項目に対して、separator および section パラメータのいずれか 1 つだけを設定できます。panel、action または event が設定されていないメニュー項目に対してのみ、これらのいずれかを設定できます。
action タイプのメニュー項目をチェック可能な項目にして、これらにチェックまたはチェック解除の既定の状態を割り当てることができます。ユーザがこのメニュー項目を選択するたびに、チェックボックスの状態がいずれかの状態に切り替わります。
extensions = { menus = [ { path = "Window/Show My Plugin" action = ... checkable = true checked = false } ] }
checkable
true に設定すると、メニュー項目が選択されるたびに、チェック/チェック解除の状態が切り替わります。
checked
checkable を true に設定した場合、このパラメータはエディタの起動時にメニュー項目がチェックされているかどうかを決定します。オプション。既定値は false です。