メインコンテンツ

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

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

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

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

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

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

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

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

function sl_customization(cm)
  cm.addCustomFilterFcn('createNewModelAction',@myFilter);
end

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

アクション名の取得

使用するアクション名の形式の決定

アクション名は、ツールストリップのアクション名またはコンテキスト メニューのアクション名という 2 つの異なる形式で指定できます。次の表を使用して、実行するタスクに基づいて使用する形式を決定してください。

タスクアクション名の形式

ツールストリップでのみアクションを無効または有効にする。

以前にコンテキスト メニューでアクションを非表示にした場合、このワークフローにより、オプションの非表示が解除されます。

ツールストリップのアクション名

ツールストリップとコンテキスト メニューの両方でアクションを無効または有効にする。

以前にコンテキスト メニューでアクションを非表示にした場合、このワークフローにより、オプションの非表示が解除されます。

コンテキスト メニューのアクション名

コンテキスト メニューでアクションを非表示にする。

コンテキスト メニューでアクションを非表示にすると、ツールストリップでアクションが無効になります。

コンテキスト メニューのアクション名

ツールストリップのアクション名の取得

ツールストリップのアクション名を取得するには、関数 slToolstripDeveloperMode を使用します。

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

slToolstripDeveloperMode('on')
ans =

  logical

   0

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

ツールストリップのアクション名および対応するアイコンは、MATLAB コマンド ウィンドウで表示できます。Simulink ツールストリップの項目上で一時停止して Ctrl を押します。Mac では、Ctrl ではなく command (⌘) を押します。

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

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

開発者モードを終了するには、次のコマンドを入力します。

slToolstripDeveloperMode('off')
ans =

  logical

   1

コンテキスト メニューのアクション名の取得

コンテキスト メニューのアクション名を取得するには、MATLAB コマンド ウィンドウで次のコマンドを入力します。

cm = sl_customization_manager;
cm.showWidgetIdAsToolTip = true;

次に、コンテキスト メニューを開き、無効にするアクションを見つけます。アクション名はオプション テキストの横で小かっこに囲まれています。

たとえば、コンテキスト メニューで Update Diagram アクションを非表示にするには、アクション名 Simulink:UpdateDiagram を指定します。

メモ

このアクション名形式を使用したアクションの無効化、有効化、または非表示化は、すべてのアクションでサポートされているわけではありません。

コンテキスト メニューのアクション名を取得したら、次のコマンドを入力してコンテキスト メニューのアクション名を非表示にします。

cm.showWidgetIdAsToolTip = false;

カスタマイズ ファイルの作成

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

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

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

function sl_customization(cm)

詳細については、Simulink でのカスタマイズの登録を参照してください。

フィルター関数の作成

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('createNewModelAction',@myFilter);
end

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

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

sl_refresh_customizations

このコマンドは、MATLAB パス上および現在のフォルダー内のすべての sl_customization.m ファイルを実行します。sl_refresh_customizations を実行すると、次の処理も行われます。

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

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

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

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

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

参考

トピック