#ifndef PRO_EXTOBJCB_H
#define PRO_EXTOBJCB_H
#include <ProToolkit.h>
#include <ProObjects.h>
#include <ProExtobj.h>
#include <ProExtobjRef.h>
PRO_BEGIN_C_DECLS
/* Creo Parametric TOOLKIT external object callbacks - related stuff */
/* Callbacks */
typedef ProError (*ProExtobjCBAct)(ProExtobj **extobjects,
ProExtobjClass *extobjclass,
ProAppData *ntf_data,
int n_objects);
/*
Purpose: This is the generic callback for the user function.
Input Arguments:
extobjects - An array of <i>n_objects</i> pointers to external object
handles
extobjclass - A pointer to the external object class handle (common for
all the passed objects)
ntf_data - An array of <i>n_objects</i> pointers to application data
n_objects - The number of <i>ntf_data</i> and <i>extobjects</i>
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function was successful.
*/
typedef struct
{
int enabled_cbs; /* to enable/disable callbacks */
/* Alternate display / selection functions
(beware of performance penalties) */
ProExtobjCBAct display_CB; /* not implemented yet */
ProExtobjCBAct select_CB; /* not implemented yet */
/* Reference / owner event notification functions */
ProExtobjCBAct owner_modify_CB; /* not implemented yet */
ProExtobjCBAct owner_suppress_CB; /* not implemented yet */
ProExtobjCBAct owner_delete_CB; /* not implemented yet */
ProExtobjCBAct ref_modify_CB;
ProExtobjCBAct ref_suppress_CB;
ProExtobjCBAct ref_delete_CB;
} ProExtobjCallbacks;
/* Specific structures to be passed by callback as user data -
depending on event type
*/
typedef struct
{
ProExtobjRefInfo *ref_infos; /*array of infos on affected refs*/
int n_refs; /* number of affected refs */
} ProEONtf_RefData;
/* Function prototypes */
extern ProError ProExtobjCallbacksSet (ProExtobjClass *extobjclass,
ProExtobjCallbacks *callbacks);
/*
Purpose: Sets the <i>ProExtobjCallbacks</i> structure for objects of the
specified class of external objects. If callbacks for this class
are already set, this function resets them.
Input Arguments:
extobjclass - The class of external objects
callbacks - The callback information
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the information.
PRO_BAD_INPUTS - One or more of the arguments are invalid.
*/
/* In release 19.0 only callbacks for the following actions
can be enabled: PRO_EO_ACT_REF_MODIF, PRO_EO_ACT_REF_SUPPR,
PRO_EO_ACT_REF_DELETE */
extern ProError ProExtobjCBEnable (ProExtobjClass *extobjclass,
int action_attr,
int to_enable);
/*
Purpose: Updates the enabled_cbs field in the data structure
<i>ProExtobjCallbacks</i>, which governs which callbacks are
active. <pre> If to_enable == TRUE, enabled_cbs | action_attr else
enabled_cbs & ~action_attr</pre>
Input Arguments:
extobjclass - The handle to the external object class
action_attr - A bitmask constructed from types of notify actions (such
as PRO_EO_ALT_DISPLAY or PRO_EO_ALT_SELECT)
to_enable - A Boolean flag that specifies whether to perform the action
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully updated the information.
PRO_BAD_INPUTS - The external class handle is invalid or you attempted
to enable callback for an unsupported action.
*/
PRO_END_C_DECLS
#endif /* PRO_EXTOBJCB_H */