#ifndef PROSELBUFFER_H
#define PROSELBUFFER_H
#include <ProSelection.h>
PRO_BEGIN_C_DECLS
extern ProError ProSelbufferSelectionsGet (ProSelection **ret_buff);
/*
Purpose: Get contents of the active selection buffer
Input Arguments:
none
Output Arguments:
ret_buff - ProArray of ProSelection. Free this array using
ProSelectionarrayFree.
Return Values:
PRO_TK_NO_ERROR - buffer is in session and was returned.
PRO_TK_BAD_INPUTS - The argument was invalid (NULL).
PRO_TK_CANT_ACCESS - There is no Object/Action selection tool active.
PRO_TK_E_NOT_FOUND - There are no objects in the current selection
tool.
*/
extern ProError ProSelbufferClear ( void );
/*
Purpose: Clear the currently active selection buffer of all contents.
Input Arguments:
none
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The buffer was successfully cleared.
PRO_TK_CANT_ACCESS - There is no Object/Action selection tool active.
PRO_TK_CANT_MODIFY - Buffer modification is prohibited.
*/
extern ProError ProSelbufferSelectionRemove (int index);
/*
Purpose: Removes the selection at the indicated location from the selection
tool buffer.
Input Arguments:
index - Index of the item to remove from the currently active selection
tool. This index would be obtained from the index that the item
resides in after a call to ProSelbufferSelectionsGet().
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - The index input was invalid.
PRO_TK_CANT_ACCESS - There is no Object/Action selection tool active.
PRO_TK_CANT_MODIFY - Buffer modification is prohibited.
*/
extern ProError ProSelbufferSelectionAdd (ProSelection object);
/*
Purpose: Programmatically add an item to the buffer of the currently active
selection tool.
Input Arguments:
object - The object to add to the buffer. This selection must reference
an item that could have been selected in the current model
(its owner, component path, and/or drawing view values must be
properly constructed).
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - The input argument was invalid.
PRO_TK_CANT_ACCESS - There is no Object/Action selection tool active.
PRO_TK_INVALID_ITEM - The selection does not correctly reference the
current model.
PRO_TK_NOT_DISPLAYED - The item is not currently displayed and so
cannot be added to the buffer.
PRO_TK_BAD_CONTEXT - The selection cannot be added to the buffer in
combination with one or more objects that are
already in the buffer (e.g. geometry and features
selected at the same time).
PRO_TK_GENERAL_ERROR - The function failed to add the requested item to
the buffer.
PRO_TK_CANT_MODIFY - Buffer modification is prohibited.
PRO_TK_MULTIBODY_UNSUPPORTED - input collection is not supported in
multi-body models.
*/
extern ProError ProSelbufferCollectionAdd( ProCollection collection );
/*
Purpose: Add a collection (chain or surface collection) to the current
active selection buffer.
Input Arguments:
collection - The collection object
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed to add the requested item to
the buffer.
See Also:
ProSelectionCollectionGet()
*/
typedef ProError (*ProSelbufferChangePostAction) ();
/*
Purpose: This is the notification function called when there is change in
selection buffer.
<p> Users must supply this function by calling
<b>ProNotificationSet()</b> with the notify type
PRO_SELBUFFER_CHANGE_POST.
Input Arguments:
none
Output Arguments:
none
Return Values:
Ignored.
See Also:
ProNotificationSet()
*/
PRO_END_C_DECLS
#endif /* PROSELBUFFER_H */