#ifndef PRODTLGROUP_H
#define PRODTLGROUP_H
#include <ProDtlitem.h>
#include <ProDtlattach.h>
typedef struct pro_groupdata *ProDtlgroupdata;
PRO_BEGIN_C_DECLS
/*================================================================*\
ProDtlgroup functions
\*=================================================================*/
extern ProError ProDtlgroupCreate(
ProDrawing drawing,
ProDtlgroupdata data,
ProDtlgroup *group);
/*
Purpose: Create the group of drawing draft entities, symbols, notes.
Input Arguments:
drawing - The drawing handle.
data - The group data handle
Output Arguments:
group - Created group
Return Values:
PRO_TK_NO_ERROR - The function successfully created the group.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
PRO_TK_GENERAL_ERROR - Can't create the group with specified arguments.
*/
extern ProError ProDtlgroupDataGet(
ProDtlgroup *group,
ProDtlgroupdata *data);
/*
Purpose: Get a group data for the specified group.
Input Arguments:
group - The group handle.
Output Arguments:
data - The group data.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the group data.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
PRO_TK_GENERAL_ERROR - Can't retrieve the group data with specified
arguments.
*/
extern ProError ProDtlgroupDelete(
ProDtlgroup *group);
/*
Purpose: Delete specified group.
Input Arguments:
group - The group handle
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully deleted the group.
PRO_TK_BAD_INPUTS - Bad input argument.
PRO_TK_GENERAL_ERROR - Can't delete the group.
*/
extern ProError ProDtlgroupModify(
ProDtlgroup *group,
ProDtlgroupdata data);
/*
Purpose: Modify the specified group.
Input Arguments:
group - The group handle
data - The group data
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully modified the group.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
PRO_TK_GENERAL_ERROR - Can't modify the group with specified arguments.
*/
extern ProError ProDrawingDtlgroupsCollect(
ProDrawing drawing,
int sheet,
ProDtlgroup **groups);
/*
Purpose: Collect groups in the specified drawing.
Input Arguments:
drawing - The drawing handle
sheet - The sheet number
Output Arguments:
groups - The pointer to ProArray of ProDtlgroup handles. The function
allocates memory for the array, user must release the memory
using ProArrayFree.
Return Values:
PRO_TK_NO_ERROR - The function successfully collected the groups.
PRO_TK_BAD_INPUTS - One or more arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed.
PRO_TK_E_NOT_FOUND - No groups were found.
PRO_TK_OUT_OF_MEMORY - The function found too many entities to be
contained in the output ProArray. Use
ProDrawingDtlgroupVisit instead.
*/
extern ProError ProDrawingDtlgroupVisit(
ProDrawing drawing,
int sheet,
ProDtlitemVisitAction visit_action,
ProDtlitemFilterAction filter_action,
ProAppData appdata);
/*
Purpose: Visit groups in the specified drawing.
Input Arguments:
drawing - The drawing handle
sheet - The sheet number
visit_action - Visit action function
filter_action - Filter action function. If NULL, all groups are visited
using the action function.
appdata - The application data
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully visited the groups.
PRO_TK_BAD_INPUTS - One or more arguments was invalid.
PRO_TK_GENERAL_ERROR - The function failed.
PRO_TK_E_NOT_FOUND - No groups were found.
Other - Return value passed by the caller's visit function.
*/
/*================================================================*\
ProDtlgroupdata functions
\*=================================================================*/
extern ProError ProDtlgroupdataAlloc(
ProDrawing drawing,
ProName name,
ProDtlgroupdata *groupdata);
/*
Purpose: Allocate and initialize memory for group data. User must release
memory using ProDtlgroupdataFree.
Input Arguments:
drawing - The drawing handle.
name - Name of group.
Output Arguments:
groupdata - group data handle.
Return Values:
PRO_TK_NO_ERROR - The function successfully allocate memory.
PRO_TK_BAD_INPUTS - Bad input argument.
PRO_TK_OUT_OF_MEMORY - Not enough memory for allocation.
*/
extern ProError ProDtlgroupdataFree(
ProDtlgroupdata groupdata);
/*
Purpose: Release memory allocated by ProDtlgroupdataAlloc.
Input Arguments:
groupdata - The group data.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully release memory.
PRO_TK_BAD_INPUTS - Bad input argument.
*/
extern ProError ProDtlgroupdataIdGet(
ProDtlgroupdata groupdata,
int *id);
/*
Purpose: Get group Id .
Input Arguments:
groupdata - The group data.
Output Arguments:
id - The group id
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved id.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
*/
extern ProError ProDtlgroupdataNameGet(
ProDtlgroupdata groupdata,
ProName name);
/*
Purpose: Get a group name.
Input Arguments:
groupdata - The group data.
Output Arguments:
name - The group name
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the name.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
*/
extern ProError ProDtlgroupdataItemAdd(
ProDtlgroupdata groupdata,
ProDtlitem *item);
/*
Purpose: Add an item to the group.
Input Arguments:
groupdata - The group data.
item - The detail item.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully added the item.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
PRO_TK_INVALID_TYPE - Invalid type of item.
PRO_TK_OUT_OF_MEMORY - Not enough memory.
*/
extern ProError ProDtlgroupdataItemsSet(
ProDtlgroupdata groupdata,
ProDtlitem *items);
/*
Purpose: Set items to the group data.
Input Arguments:
groupdata - The group data handle.
items - A ProArray of detail items.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the items.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
PRO_TK_INVALID_TYPE - Invalid type of one of item.
PRO_TK_OUT_OF_MEMORY - Not enough memory.
*/
extern ProError ProDtlgroupdataItemsCollect(
ProDtlgroupdata groupdata,
ProDtlitem **items);
/*
Purpose: Collect group data items in the specified group data.
Input Arguments:
groupdata - The group data.
Output Arguments:
items - Pointer to ProArray of detail items. Function allocates memory
for argument, user must release the memory using ProArrayFree.
Return Values:
PRO_TK_NO_ERROR - The function successfully collected the items.
PRO_TK_BAD_INPUTS - Bad one or more input arguments.
PRO_TK_INVALID_TYPE - Invalid type of one of item.
PRO_TK_E_NOT_FOUND - The group does not contain any items.
*/
extern ProError ProDtlgroupErase(
ProDtlgroup *group );
/*
Purpose: Makes a group disappear from the drawing until the drawing is
regenerated.
Input Arguments:
group - The group handle.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully erased the group.
PRO_TK_BAD_INPUTS - Invalid input argument. PRO_TK_GENERAL_ERROR-
Cannot erase a group.
*/
extern ProError ProDtlgroupDraw(
ProDtlgroup *group );
/*
Purpose: Makes a group appear on the drawing until the drawing is
regenerated.
Input Arguments:
group - The group handle.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully displayed the group.
PRO_TK_BAD_INPUTS - Invalid input argument.
PRO_TK_GENERAL_ERROR - Cannot draw a group.
*/
extern ProError ProDtlgroupdataIsDisplayed(
ProDtlgroupdata data,
ProBoolean *is_displayed);
/*
Purpose: checks if the draft group is displayed
Input Arguments:
data - The draft group data.
Output Arguments:
is_displayed - PRO_B_TRUE if the draft entity is displayed
Return Values:
PRO_TK_NO_ERROR - The function completed successfully.
PRO_TK_BAD_INPUTS - Invalid input argument(s).
*/
extern ProError ProDtlgroupdataDisplayedSet(
ProDtlgroupdata data,
ProBoolean displayed);
/*
Purpose: Marks the draft entity to be displayed
Input Arguments:
data - The draft group data.
displayed - PRO_B_TRUE if the draft group is to be displayed
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function completed successfully.
PRO_TK_BAD_INPUTS - Invalid input argument(s).
*/
PRO_END_C_DECLS
#endif