Pickbutton UI コントロール

pickbutton コントロール は、シーン オブジェクト ピッカー ボタンをロールアウトに配置するのに使用します。これは、3ds Max ユーザ インタフェースの通常のピック ボタンのように作用し、押すとライトグリーンになってオブジェクト ピック モードに入ります。その後、ユーザはシーン オブジェクトをクリックして選択できます。ピック モードが終了し、ボタンが押されていない状態に戻ります。右クリックすると、ピック モードをキャンセルすることができます。

構文は次のようになります。

pickbutton <name> [<caption>] [message:<string>] [filter:<function>] [toolTip:<string>] [autoDisplay:<boolean>]     

pickbutton 項目の位置合わせの既定値は、#center です。

例:

    rollout pick_box_test "Pick Box Test"
    (
    --filter all objects of class Box:
    fn box_filt obj = classof obj == Box
    --Pickbutton to select a Box from the scene
    pickbutton chooseit "Select Box" width:140 filter:box_filt
    --If the user picked an object, then
    on chooseit picked obj do
    (
    --see if the user did not cancel the picking...
    if obj != undefined do
    (
    --if he did not, make the box's wireframe red:
    obj.wirecolor = red
    --and display the name of the object on the button:
    chooseit.text = obj.name
    )
    )--end on
    )--end rollout
    createDialog pick_box_test

フィルタ関数により、Box 以外のオブジェクトは選択できません。

パラメータ

message:   

ピック モードの間、3ds Max ステータス ラインに表示されるオプションのテキストです。既定では、テキストは表示されません。

filter:

ピックするときにカーソルの下にあるシーン オブジェクトの適性をテストするために呼び出されるオプションのフィルタ関数です。1 つの引数(テストするオブジェクト)を使用する関数で、適格な場合は true を返し、不適格な場合は false を返します。

既定では、フィルタリングされません。

例:

次のフィルタ関数を使用すると、「foo」で始まる名前のオブジェクトだけを選択できます。

    fn foo_filter obj = matchPattern obj.name pattern:"foo*"
toolTip:

ボタンのツールチップのテキストを指定します。指定されない場合、ツールチップは表示されません。

autoDisplay:

true に設定すると、選択されたオブジェクトの名前が自動的にボタンにテキスト表示されます。false の場合、または指定されていない場合、ボタンのキャプションは変更されません。

プロパティ

<pickbutton>.object Node

pickbutton を使用して選択された最後のオブジェクトで、オブジェクトが選択されていない場合は undefined です。プロパティは取得と設定のどちらもできます。ノードは指定することも、undefined にすることもできます。

<pickbutton>.tooltip String

チェックボタンのツールチップ文字列を取得/設定します。

3ds Max 9 以降 で使用可能です。

例:

    --If you pick a scene object, the tooltip of the pickbutton will show
    --the name of the object you picked.
    rollout test "Test"
    (
    pickbutton pck_test ">>Pick An Object" tooltip:"Pick A Scene Object..."
    on pck_test picked obj do
    if isValidNode obj do pck_test.tooltip = "You picked " + obj.name
    )
    createDialog test

イベント

on <pickbutton> picked <arg> do <expr>

pickbutton ピック モードでユーザがシーンのオブジェクトを選択したときに呼び出されます。<arg> 引数には選択したオブジェクトが入ります。ユーザがピック モードをキャンセルするとハンドラは呼び出されません。

on <pickbutton> rightclick do <expr>

ボタン上で右マウス ボタンが放されたときに、呼び出されます。3ds Max 8 以降 で使用可能です。