アクションを実行するには、DtActionInvoke() 関数を使用します。
DtActionInvoke (widget, action, args, argCount, termOpts, execHost,, contexDir, useIndicator,statusUpdateCb, client_data)
DtActionInvoke() は、アクション・データベースから、指定されたアクション名に一致するエントリを探して、指定されたクラス、型、およびカウントの引き数を受け入れます。アクションを実行する前に、アプリケーションはデータベースを初期化し、読み込まなければならないので注意してください。
次のコードは、actions.c の中の activateCB() (描画ボタンの起動コールバック) の一部です。
DtActionInvocationID actionId;
/* If a file was specified, build the file argument list */
printf("%s(%s)¥n",action,file);
if (file != NULL && strlen(file) != 0) {
ap = (DtActionArg*) XtCalloc(1, sizeof(DtActionArg));
ap[0].argClass = DtACTION_FILE;
ap[0].u.file.name = file;
nap = 1;
}
/* Invoke the specified action */
actionId = DtActionInvoke(shell,action,ap,nap,NULL,NULL,NULL,True,NULL,NULL);