/*****************************************************************************\ FILE : UgSheetDelete.c PURPOSE : Pro/TOOLKIT User Guide Example - drawing sheets HISTORY.. DATE BUILD AUTHOR MODIFICATIONS 04-Dec-97 H-02-02 Philippe $$1 Created \*****************************************************************************/ /*-------------------------- Pro/Develop includes ---------------------------*/ #include #include /*-------------------------- Pro/Toolkit includes ---------------------------*/ #include #include #include /*-------------------------- Application includes ---------------------------*/ #include /*================================================================*\ FUNCTION : UserSheetDelete PURPOSE : Deletes a drawing sheet from the current drawing-type object. \*================================================================*/ int UserSheetDelete () { int status; int i_range[2], num_sheets, sheet_num; ProMdl p_draw; ProCharLine astr; int win_id; ProFileName WMSGFIL = {'m','s','g','_','u','g','d','w','g','.','t','x','t','\0'}; /*------------------------------------------------------------*\ Get the current model \*------------------------------------------------------------*/ status = ProMdlCurrentGet(&p_draw); ERROR_CHECK("UserSheetDelete","ProMdlCurrentGet",status); if (status != PRO_TK_NO_ERROR) return(status); /*----------------------------------------------------------------*\ Get the total number of sheets of the current drawing-type object \*----------------------------------------------------------------*/ num_sheets = prodrw_number_sheets ( (Prohandle) p_draw); ERROR_CHECK("UserSheetDelete","prodrw_number_sheets",(num_sheets<=0)); if (num_sheets <= 0) return(PRO_TK_GENERAL_ERROR); /*----------------------------------------------------------------*\ Prompt for a sheet number or use the current one \*----------------------------------------------------------------*/ i_range[0] = 1; i_range[1] = num_sheets; sprintf (astr, "Enter sheet number [1-%d] [CUR] : ", num_sheets); status = ProMessageDisplay(WMSGFIL, "USER %0s", astr); ERROR_CHECK("UserSheetDelete","ProMessageDisplay",status); status = ProMessageIntegerRead(i_range, &sheet_num); ERROR_CHECK("UserSheetDelete","ProMessageIntRead",status); if (status != PRO_TK_NO_ERROR) { sheet_num = prodrw_get_current_sheet ( (Prohandle) p_draw); ERROR_CHECK("UserSheetDelete","prodrw_get_current_sheet",(sheet_num<=0)); if (sheet_num < 1) return (PRO_TK_GENERAL_ERROR); } /*----------------------------------------------------------------*\ Delete the specified sheet from the current drawing-type object. \*----------------------------------------------------------------*/ status = prodrw_delete_sheet ( (Prohandle) p_draw, sheet_num); ERROR_CHECK("UserSheetDelete","prodrw_delete_sheet", (status !=PRODRW_DEL_SHEET_SUCCESS)); if (status !=PRODRW_DEL_SHEET_SUCCESS) return (PRO_TK_GENERAL_ERROR); /*----------------------------------------------------------------*\ Display status in message window \*----------------------------------------------------------------*/ if (status != PRODRW_DEL_SHEET_SUCCESS) { sprintf(astr, "Error %d in user_del_dwg_sheet", status); status = ProMessageDisplay(WMSGFIL, "USER %0s", astr); ERROR_CHECK("UserSheetDelete","ProMessageDisplay",status); return (PRO_TK_GENERAL_ERROR); } sprintf(astr, "Sheet No. %0d deleted from drawing.", sheet_num); status = ProMessageDisplay(WMSGFIL, "USER %0s", astr); ERROR_CHECK("UserSheetDelete","ProMessageDisplay",status); /*------------------------------------------------------------*\ Update the changes by repainting the window \*------------------------------------------------------------*/ status = ProWindowCurrentGet(&win_id); ERROR_CHECK("UserSheetDelete","ProWindowCurrentGet",status); status = ProWindowRepaint (win_id); ERROR_CHECK("UserSheetDelete","ProWindowRepaint",status); return (sheet_num); }