Main Content

Simulink ツールストリップおよびコンテキスト メニューのアクションの無効化

Simulink® ツールストリップおよびコンテキスト メニューに表示される項目を無効にできます。コンテキスト メニューについては、アクションを非表示にもできます。アクションを無効にする、または非表示にするには、次の手順を行わなければなりません。

  1. 無効にする、または非表示にする組み込みアクションの名前を取得する。

  2. カスタマイズ ファイルを作成または編集する。

  3. 項目を無効または非表示にするフィルター関数を作成する。

  4. カスタマイズ マネージャーを使用してフィルター関数を登録する。

  5. Simulink カスタマイズ ファイル (sl_customization.m) をリフレッシュする。

たとえば、次のコードは、Simulink ツールストリップの [新規モデル] ボタンを無効に対するフィルター関数を作成して登録します。

function sl_customization(cm)
  cm.addCustomFilterFcn('Simulink:NewModel',@myFilter);
end

function state = myFilter(callbackInfo)
  state = 'Disabled';
end

組み込みの Simulink アクションの取得

Simulink ツールストリップから組み込みアクションの名前とアイコンを取得するには、関数 slToolstripDeveloperMode を使用します。

MATLAB® コマンド ウィンドウで次のコマンドを入力します。

slToolstripDeveloperMode('on')
ans =

  logical

   0

このコマンドにより Simulink ツールストリップの開発者モードが有効になります。戻り値は、コマンドを入力する前には開発者モードが無効であったことを示しています。

Simulink ツールストリップの項目上で一時停止して Ctrl を押します。Mac では、Ctrl ではなく command (⌘) を押します。

たとえば、[開く] ボタンで一時停止して Ctrl を押します。

Action: openModelAction
Icon: open
-------------------

対応するアクションの名前とアイコンが MATLAB コマンド ウィンドウに表示されます。

カスタマイズ ファイルの設定

カスタマイズを登録するには、sl_customization.m という名前の MATLAB 関数ファイルを使用します。この関数を、カスタマイズする Simulink インストールの MATLAB パス上または現在のフォルダーに配置します。

複数の sl_customization.m ファイルを配置することができます。各ファイルのカスタマイズが有効になり、カスタマイズごとに競合が処理されます。たとえば、複数の sl_customization.m ファイルのライブラリに対して優先順位を指定すると、1 つだけが有効になります。同じメニュー項目を 2 回追加すると、2 回表示されます。カスタマイズが想定のとおりに読み込まれていることを確認するには、カスタマイズ ファイルの読み取りと更新の説明に従ってカスタマイズをリフレッシュします。

関数 sl_customization は、1 つの引数を受け入れます。この引数は、カスタマイズ マネージャー オブジェクト (cm) のハンドルです。次に例を示します。

function sl_customization(cm)

フィルター関数の作成

sl_customization.m ファイルでフィルター関数を作成します。フィルター関数は、コールバック情報オブジェクトを受け入れ、項目に割り当てる状態を返さなければなりません。有効な値は以下のとおりです。

  • 'Hidden' — 項目を非表示にする。

  • 'Disabled' — 項目を無効にする。

  • 'Enabled' — 項目を有効にする。

たとえば、次のフィルター関数は 'Disabled' 状態を割り当てます。

function state = myFilter(callbackInfo)
  state = 'Disabled';
end

フィルター関数は、状態を項目に割り当てるために、他のフィルター関数および Simulink と競合する場合があります。優先する関数は、各々が項目に割り当てる状態の強さによって異なります。

  • 'Hidden' は最も強い状態です。フィルター関数または Simulink が 'Hidden' をメニュー項目に割り当てた場合、その項目は非表示になります。Simulink ツールストリップ項目では、'Hidden' を指定すると、その項目は非表示になるのではなく無効になります。

  • 'Disabled''Enabled' を無効にしますが、自身は 'Hidden' により無効になります。

  • 'Enabled' が最も弱い状態です。有効にする項目については、すべてのフィルター関数および Simulink または Stateflow® 製品によって、'Enabled' を項目に割り当てる必要があります。

フィルター関数の登録

フィルター関数を登録するには、カスタマイズ マネージャーの addCustomFilterFcn メソッドを使用します。addCustomFilterFcn メソッドは、フィルター処理されるメニューまたは項目を識別するタグと、フィルター関数自体に対するポインターの 2 つの引数を取ります。

たとえば、次のコードは、Simulink ツールストリップの [新規モデル] 項目に対するフィルター関数を登録します。

function sl_customization(cm)
  cm.addCustomFilterFcn('Simulink:NewModel',@myFilter);
end

カスタマイズ ファイルの読み取りと更新

Simulink の起動時に sl_customization.m ファイルが読み取られます。sl_customization.m ファイルを変更する場合は、Simulink を再起動するか、次のコマンドを入力して変更を確認します。

sl_refresh_customizations

このコマンドは、MATLAB パス上および現在のフォルダー内のすべての sl_customization.m ファイルを実行します。sl_refresh_customizations を実行すると、次のような副次的影響があります。

  • Simulink ツールストリップのリビルド

  • すべての Simulink エディターのメニューのリビルド

  • ライブラリ ブラウザーのメニューとツール バーのリビルド

  • ライブラリ ブラウザー キャッシュのクリアとライブラリ ブラウザーの更新

  • ビューアーおよびジェネレーター マネージャーのデータの再読み込み

関連するトピック