既存のコマンドの操作
次の関数について説明します。
関数 ProCmdCmdIdFind() を使用すると、既存のコマンドのコマンド ID を検出できるので、アクセス関数や括弧関数をコマンドに追加できます。ID を検出するためにコマンド名を知っておく必要があります。トレイルファイルを使った UI 名の確認のセクションを参照して、コマンド名を確認するために UI 名を確認します。
ProCmdAccessFuncAdd() および ProCmdAccessFuncRemove() 関数を使用して、特定のコマンドに対してアクセス関数を実行できます。(アクセス関数については、ProCmdActionAdd() を参照してください)。追加関数が access_id を返します。アクセス関数を非アクティブにする際は、この ID を今後の使用のために保存する必要があります。
ProCmdBracketFuncAdd() 関数を使用すると、所定のコマンドの実行直前または直後に呼び出される関数を作成できます。この関数は、既存の コマンドの最初または最後 (あるいは両方) に会社のロジックを追加するのに使用します。また、今後実行するコマンドをキャンセルするためにも使用できます。この関数は、次のように宣言されます。
ProError ProCmdBracketFuncAdd (
uiCmdCmdId cmd_id,
uiCmdCmdBktFn bracket_func,
char *bracket_func_name,
void **pp_bracket_data );
この関数は次の引数をとります。
cmd_id - コマンド識別子。
bracket_func - コマンドの前後に呼び出されるコールバック関数です。uiCmdCmdBktFn にキャストされます。
typedef int (*uiCmdCmdBktFn)
( uiCmdCmdId command,
uiCmdValue *p_new_value,
int entering_command,
void **pp_bracket_data);
入力するコマンド引数は、コマンドの実行前は 1、実行後は 0 になります。呼び出しがコマンド実行前に行われ、そのコマンドの実行をキャンセルする場合は 0 が返ります。それ以外の場合は、0 以外の値が返ります。
bracket_func_name - 括弧関数の名前。
pp_bracket_data - 括弧関数に渡されるデータを含む void**
*モデルツリー操作関数を使用するモデルツリーコマンドを括弧関数として使用することはできません。このようなコマンドは再定義が開始する前に終了します。通知関数 ProNotificationSet() を使用して、再定義前後のコールバックの通知をそれぞれ取得および設定できます。列挙データ型 ProNotifyType の値を PRO_FEATURE_REDEFINE_POST または PRO_FEATURE_REDEFINE_PRE に設定する必要があります。
これは役に立ちましたか?