ジャンプ先: 概要. 戻り値. フラグ. Python 例.

概要

menuEditor( [string] , [annotation=string], [backgroundColor=[float, float, float]], [cellHeight=int], [cellWidth=int], [cellWidthHeight=[int, int]], [checkBoxPresent=[boolean, string, int]], [checkBoxState=[boolean, string, int]], [command=[string, string, int, boolean]], [defineTemplate=string], [delete=[string, int]], [docTag=string], [dragCallback=script], [dropCallback=script], [enable=boolean], [enableBackground=boolean], [enableKeyboardFocus=boolean], [exists=boolean], [fullPathName=boolean], [height=int], [highlightColor=[float, float, float]], [iconMenuCallback=string], [image=[string, string, int]], [isLanguageMel=[boolean, string, int]], [isObscured=boolean], [label=[string, string, int]], [manage=boolean], [menuItemTypes=boolean], [noBackground=boolean], [numberOfPopupMenus=boolean], [optionBoxCommand=[string, string, int]], [optionBoxPresent=[boolean, string, int]], [parent=string], [popupMenuArray=boolean], [preventOverride=boolean], [radioButtonPresent=[boolean, string, int]], [radioButtonState=[boolean, string, int]], [separator=[string, int]], [statusBarMessage=string], [style=string], [subMenuAt=[string, int]], [subMenuEditorWindow=string], [subMenuEditorsOpen=boolean], [subMenuOf=[string, string, int]], [topLevelMenu=string], [useTemplate=string], [visible=boolean], [visibleChangeCommand=script], [width=int])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

menuEditor は、取り消し可能、照会可能、および編集可能です。

ポップアップ メニューの内容を表示し、メニュー項目を編集できるようにします。メニュー項目はラベル付きアイコンとして表現され、エディタ内でドラッグしてメニューのレイアウトを変更できます。さまざまなオブジェクトのドラッグとドロップを menuEditor で行い、シェルフかツール ボックスの toolButtons、シェルフの shelfButtons、コマンドがアタッチされた iconTextButtons、コマンド ウィンドウのスクリプトなど、新しいメニュー項目を作成できます。

マーキング メニューを編集する場合、放射状のメニュー項目は、menuEditor 内で円形に並べられた 8 つのアイコンに対応します。マーキング メニューのオーバーフロー項目(または通常メニューの直線項目)は、ラジアル項目の下のカラムに表示されます。

ポップアップ メニューのサブメニューを編集するには、新しい menuEditor インスタンスを作成し(一般的には独自のウィンドウ内)、親 menuEditor にアタッチする必要があります。

一部のフラグでは、メニュー項目の位置を引数として渡す必要があります。この場合は文字列と整数のペアで位置を指定しますが、文字列はラジアル位置に対応し("None")、整数は直線位置に対応します(なしの場合は 0)。ラジアル位置は、("N",0)、("NE",0)、("E",0)、("SE",0)、("S",0)、("SW",0)、("W",0)、("NW",0)のうちいずれかで指定します。オーバーフロー、つまり直線位置は("None",i)で指定しますが、i は、オーバーフロー カラム内の項目の位置を指定する、1 をベースにしたインデックスです。

注: このコマンドは、明示的に呼び出すためではなく、マーキング メニュー エディタをサポートするために作成されました。マーキング メニューを修正する場合は、このエディタの使用をお勧めします。

戻り値

stringエディタへのフル パス名

照会モードでは、戻り値のタイプは照会されたフラグに基づきます。

フラグ

annotation, backgroundColor, cellHeight, cellWidth, cellWidthHeight, checkBoxPresent, checkBoxState, command, defineTemplate, delete, docTag, dragCallback, dropCallback, enable, enableBackground, enableKeyboardFocus, exists, fullPathName, height, highlightColor, iconMenuCallback, image, isLanguageMel, isObscured, label, manage, menuItemTypes, noBackground, numberOfPopupMenus, optionBoxCommand, optionBoxPresent, parent, popupMenuArray, preventOverride, radioButtonPresent, radioButtonState, separator, statusBarMessage, style, subMenuAt, subMenuEditorWindow, subMenuEditorsOpen, subMenuOf, topLevelMenu, useTemplate, visible, visibleChangeCommand, width
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
annotation(ann) string createqueryedit
コントロールに文字列値で注釈を付けます。
backgroundColor(bgc) [float, float, float] createqueryedit
コントロールのバックグラウンド カラーです。引数は、赤、緑、青のカラー成分に対応しています。それぞれの成分の値は、0.0~1.0 です。
backgroundColor を設定すると、enableBackground を false に指定しない限り、バックグラウンドは自動的に有効になります。
cellHeight(ch) int queryedit
menuEditor 内のアイコンの高さ。
cellWidth(cw) int queryedit
menuEditor 内のアイコンの幅。
cellWidthHeight(cwh) [int, int] edit
menuEditor 内のアイコンの幅と高さ。
checkBoxPresent(cbp) [boolean, string, int] queryedit
メニュー項目にチェック ボックスを含めるかどうかが制御されます。引数は存在を示すフラグで、後にメニュー項目の位置が続きます。メニュー項目がサブメニュー項目である場合、このフラグは無視されます。照会すると、すべてのラベルを含むブーリアン配列を返します。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
checkBoxState(cbs) [boolean, string, int] queryedit
メニュー項目に関連付けられたチェック ボックスの状態。引数としては、状態を示すフラグに続けてメニュー項目の位置を指定します。メニュー項目にチェック ボックスが含まれない場合、このフラグは無視されます。照会すると、すべてのラベルを含むブーリアン配列を返します。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
command(c) [string, string, int, boolean] queryedit
メニュー項目で実行されるコマンドかスクリプト。引数はコマンド文字列かスクリプト名で、後にメニュー項目の位置とスクリプトの記述言語が続きます。メニュー項目がサブメニュー項目かセパレータ項目である場合、このフラグは無視されます。照会すると、すべてのコマンドを含む文字配列が返されます。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
defineTemplate(dt) string create
他の任意のフラグと引数を解析し、かつ引数で指定したコマンド テンプレートに追加するモードに、コマンドのモードを変更します。templateName が現在のテンプレートとして設定されていれば、その後コマンドが実行されるたびに、この引数が既定の引数として使用されます。
delete(d) [string, int] edit
指定した位置のメニュー項目がメニューから除去されます。メニュー項目にサブメニューがあり、sub-menuEditor が開いていてアタッチされている場合、sub-menuEditor のウィンドウと子 menuEditor ウィンドウすべてが反復的に閉じます。
docTag(dtg) string createqueryedit
コントロールにドキュメンテーション フラグを追加します。ドキュメンテーション フラグはディレクトリ構造になっています(例: -dt render/multiLister/createNode/material)。
dragCallback(dgc) script createedit
中マウス ボタンを押すと呼び出されるコールバックを追加します。MEL バージョンのコールバックの書式は次のとおりです。

global proc string[] callbackName(string $dragControl, int $x, int $y, int $mods)

proc はドロップ先に転送される文字配列を返します。規則により、配列の先頭文字列はユーザ設定可能なメッセージ タイプを表しています。アプリケーションで定義されたドラッグ元のコントロールは、このコールバックを無視する可能性があります。$mods で、キー モディファイヤである CTRL と SHIFT をテストできます。有効な値は、0 == モディファイアなし、1 == SHIFT、2 == CTRL、3 == CTRL + SHIFT です。

Python でも同様ですが、コールバックの指定方法が 2 つあります。お勧めの方法は、引数として Python 関数オブジェクトを渡すことです。この場合、Python コールバックの書式は次のようになります。

def callbackName( dragControl, x, y, modifiers ):

この引数の値は、上記の MEL バージョンの引数と同じです。

Python でコールバックを指定するもう 1 つの方法では、実行する文字列を指定します。この場合、Python の標準的なフォーマット演算子を介して文字列に値が代入されます。このフォーマットの値は、キー「dragControl」、「x」、「y」、「modifiers」と共に辞書で渡されます。dragControl の値は文字列で、その他の値は整数です(コールバック文字列の例: 「print '%(dragControl)s %(x)d %(y)d %(modifiers)d'」)。

dropCallback(dpc) script createedit
ドラッグ&ドロップ操作をドロップ位置で解放したときにコールされるコールバックを追加します。MEL バージョンのコールバックの書式は次のとおりです。

global proc callbackName(string $dragControl, string $dropControl, string $msgs[], int $x, int $y, int $type)

proc は、ドラッグ元から転送される文字配列を受け取ります。msgs 配列の先頭文字列はユーザ定義のメッセージ タイプを表します。アプリケーション定義のドロップ先であるコントロールは、コールバックを無視することがあります。$type の値は、1 == 移動、2 == コピー、3 == リンクのいずれかです。

Python でも同様ですが、コールバックの指定方法が 2 つあります。お勧めの方法は、引数として Python 関数オブジェクトを渡すことです。この場合、Python コールバックの書式は次のようになります。

def pythonDropTest( dragControl, dropControl, messages, x, y, dragType ):

この引数の値は、上記の MEL バージョンの引数と同じです。

Python でコールバックを指定するもう 1 つの方法では、実行する文字列を指定します。この場合、Python の標準的なフォーマット演算子を介して文字列に値が代入されます。このフォーマットの値は、キー「dragControl」、「dropControl」、「messages」、「x」、「y」、「type」と共に辞書で渡されます。dragControl の値は文字列で、その他の値は整数です(コールバック文字列の例: 「print '%(dragControl)s %(dropControl)s %(messages)r %(x)d %(y)d %(type)d'」)。

enable(en) boolean createqueryedit
コントロールの有効、無効です。既定では true に設定されていて、コントロールは有効になっています。false を指定するとコントロールはグレー表示になって無効になります。
enableBackground(ebg) boolean createqueryedit
コントロールのバックグラウンド カラーを有効にします。
enableKeyboardFocus(ekf) boolean createqueryedit
有効にすると、[Tab]キーを押してコントロールに移動し、キーボードまたはマウスで値を選択することができます。このフラグは通常、編集コントロールやリスト コントロールなどで既定で使用されるコントロールから、フォーカスのサポートをオフにするために使用されます。無効にすると、テキスト フィールド内のテキストはマウスで選択できますが、コピーできません(Linuxで「中ボタンでクリックして貼り付け」が有効になっている場合を除く)。
exists(ex) boolean create
指定したオブジェクトが存在するかどうかを返します。他のフラグは無視されます。
fullPathName(fpn) boolean query
すべての親を含むウィジェットのフル パス名を返します。
height(h) int createqueryedit
コントロールの高さです。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。
highlightColor(hlc) [float, float, float] createqueryedit
コントロールのハイライト カラーです。引数は、赤、緑、青のカラー成分に対応しています。それぞれの成分の値は、0.0~1.0 です。
iconMenuCallback(imc) string create
menuEditor のアイコンにアタッチされたポップアップ メニューを作成するときにコールされる、MEL コールバック プロシージャの名前。このコールバックは、アイコンが新しく作成された場合と menuEditor 内でアイコンが移動した場合にコール出されます。コールバックで作成されるポップアップ メニューには、アイコンに関連付けられたメニュー項目を編集するコマンドが含まれていなければなりません。メニューからアクセスできる操作には、項目の削除、項目のラベル、コマンド、イメージ、チェック ボックス、オプション ボックスの編集、サブメニューの作成、sub-menuEditor のポップ アップ表示が含まれている必要があります。

コールバックの引数は、

callbackProc (string $menuEditorName, string $parentIconName, string $menuTitle, string $radialPosition, int $overflowRow); という形式でなければなりません。

ポップアップ メニューの親は、$parentIconName である必要があります。

sub-menuEditor を作成する場合は、親の menuEditor の -imc/iconMenuCallback フラグの値に等しい既定値が採用されるので、このフラグを指定する必要はないことに注意してください。

image(i) [string, string, int] queryedit
メニュー項目に関連付けられたアイコンのファイル名。このアイコンは menuEditor で表示され、メニュー項目を表します。引数はアイコンのファイル名で、後にメニュー項目の位置が続きます。照会すると、すべてのアイコンのファイル名を含む文字配列が返されます。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
isLanguageMel(ilm) [boolean, string, int] query
メニュー項目で使用されるスクリプト言語です。引数は、言語が Mel であるかどうかを示すフラグの後に、メニュー項目の位置を配置したものになります。メニュー項目にオプション ボックス項目が関連していない場合、このフラグは無視されます。照会すると、言語が MEL の場合は true、Python の場合は false となるブール値が返されます。
isObscured(io) boolean query
コントロールが実際に表示されるかどうかを返します。コントロールは、次の場合に隠れた状態になります。非表示の場合、別のコントロールで(完全に、または部分的に)ブロックされた場合、コントロールまたは親のレイアウトを制御できない場合、あるいはコントロールのウィンドウが非表示またはアイコン化されている場合。
label(l) [string, string, int] queryedit
メニュー項目のラベル。引数はラベル テキストで、後にメニュー項目の位置が続きます。照会すると、すべてのラベルを含む文字配列が返されます。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
manage(m) boolean createqueryedit
コントロールの状態を管理します。管理されていないコントロールは表示されず、画面の領域も占有しません。既定では、コントロールは管理できるように作成されます。
menuItemTypes(mit) boolean query
これは照会専用フラグです。menuEditor の各セルに含まれる内容のタイプを表す文字配列が返されます。セルは、「vacant」、通常メニュー項目の「item」、「separator」、「submenu」項目にすることができます。それぞれのケースで、対応する文字列が返されます。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
noBackground(nbg) boolean createedit
コントロールのバックグラウンドをクリア/リセットします。バックグラウンドは、true を渡すと一切描画されず、false を渡すと描画されます。このフラグの状態は、このコントロールの子に継承されます。
numberOfPopupMenus(npm) boolean query
このコントロールにアタッチされるポップアップ メニューの数を返します。
optionBoxCommand(obc) [string, string, int] queryedit
メニュー項目に関連付けられたオプション ボックスの項目で実行されるコマンドかスクリプト。引数はコマンド文字列かスクリプト名で、後にメニュー項目の位置が続きます。メニュー項目にオプション ボックス項目が関連していない場合、このフラグは無視されます。照会すると、すべてのコマンドを含む文字配列が返されます。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
optionBoxPresent(obp) [boolean, string, int] queryedit
メニュー項目にオプション ボックスの項目を関連付けるかどうかが制御されます。引数は存在を示すフラグで、後にメニュー項目の位置が続きます。メニュー項目がサブメニュー項目である場合、このフラグは無視されます。照会すると、すべてのラベルを含むブーリアン配列を返します。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
parent(p) string createquery
コントロールの親のレイアウトです。
popupMenuArray(pma) boolean query
このコントロールにアタッチされる全ポップアップ メニューの名前を返します。
preventOverride(po) boolean createqueryedit
true の場合、コントロールの右マウス ボタン メニューを使用したコントロール アトリビュートのオーバーライドは無効になります。
radioButtonPresent(rbp) [boolean, string, int] queryedit
メニュー項目にラジオ ボタンを含めるかどうかが制御されます。引数は存在を示すフラグで、後にメニュー項目の位置が続きます。メニュー項目がサブメニュー項目である場合、このフラグは無視されます。照会すると、すべてのラベルを含むブーリアン配列を返します。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
radioButtonState(rbs) [boolean, string, int] queryedit
メニュー項目に関連付けられたラジオ ボタンの状態。引数としては、状態を示すフラグに続けてメニュー項目の位置を指定します。メニュー項目にラジオ ボタンが含まれない場合、このフラグは無視されます。照会すると、すべてのラベルを含むブーリアン配列を返します。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
separator(sp) [string, int] queryedit
編集モードでは、指定した位置で menuEditor にセパレータが追加されます。パラメータは、radialPosition と overflowRow です。照会すると、項目がセパレータ項目であるかどうかを表すブーリアン配列を返します。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
statusBarMessage(sbm) string createedit
マウスがコントロール上にある場合にステータス バーに表示する追加の文字列です。
style(st) string queryedit
menuEditor 内のアイコンのスタイル。有効な値は、「iconOnly」、「textOnly」、「iconAndTextHorizontal」、「iconAndTextVertical」です。
subMenuAt(sma) [string, int] edit
指定した位置にサブメニュー項目が作成されます。メニューのラジアル部分に作成されたサブメニューの項目は、指定した位置に現在ある項目(もしあれば)はすべて上書きします。メニューのオーバーフロー(リニア)部分に作成されたサブメニューの項目は、指定した位置に現在ある項目の前に挿入されます。
subMenuEditorWindow(sew) string create
sub-menuEditor を含むウィンドウの名前。sub-menuEditor を作成するときにだけ使用します。親の menuEditor が閉じた場合、または親のメニュー項目が削除された場合、このウィンドウは自動的に閉じます。
subMenuEditorsOpen(seo) boolean query
これは照会専用フラグです。sub-menuEditor が開いていて、特定セルでメニュー項目にアタッチされているかどうかを示すブーリアン配列を返します。セルが空であるか、サブメニュー以外の項目を含んでいても、menuEditor のそれぞれのセルでブーリアン値が返されます(両方のケースで false が返されます)。セルにサブメニュー項目が含まれる場合に限って true が返されます。配列の最初の 8 つのエントリは、ラジアル項目に対応していて(「N」、「NE」、...「NW」の順)、それ以降のすべてのエントリはオーバーフロー(または直線)メニュー項目に対応しています。
subMenuOf(smo) [string, string, int] create
sub-menuEditor がその親の menuEditor にアタッチされます。sub-menuEditor を作成するときにだけ使用します。引数としては、親 menuEditor の名前に続けて、親の中でのサブメニュー項目の位置を指定します。サブメニュー項目は、親の特定位置にすでに存在している必要があります。サブメニュー項目には、複数のサブ menuEditor をアタッチできません。
topLevelMenu(tlm) string queryedit
エディタにアタッチするポップアップ メニュー。エディタ内で実行したすべての編集操作(項目の挿入、削除、移動など)は、このメニューにすぐに反映されます。エディタが sub-menuEditor である場合、このフラグは無視されます。このフラグの値を初期値から変更すると、エディタは適切に更新されます。
useTemplate(ut) string create
コマンドに、現在のものとは異なるコマンド テンプレートを使用するように強制します。
visible(vis) boolean createqueryedit
コントロールの可視の状態です。既定では、コントロールは表示されます。コントロールの実際の外見も、その親レイアウトの可視の状態によって異なることに注意してください。
visibleChangeCommand(vcc) script createqueryedit
コントロールの可視の状態が変更されたときに実行されるコマンドです。
width(w) int createqueryedit
コントロールの幅を指定します。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

import maya.cmds as cmds

# No example is provided as <b>menuEditor</b> is not intended to be called
# independently. It is recommended that you use the Marking Menu editor
# to customize marking menus.