/* Copyright (c) 2024 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved. */ /*-------------------------- Pro/Toolkit includes ---------------------------*/ #include <ProToolkit.h> #include <ProMdl.h> #include <ProCsys.h> #include <ProDrawing.h> /*-------------------------- Application includes ---------------------------*/ #include <TestError.h> /*================================================================*\ 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; ProDrawing 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((ProMdl*)&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 \*----------------------------------------------------------------*/ status = ProDrawingSheetsCount(p_draw, &num_sheets); ERROR_CHECK("UserSheetDelete","ProDrawingSheetsCount",status); 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; ProTKSprintf (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) { status = ProDrawingCurrentSheetGet(p_draw, &sheet_num); ERROR_CHECK("UserSheetDelete","ProDrawingCurrentSheetGet",status); if (sheet_num < 1) return (PRO_TK_GENERAL_ERROR); } /*----------------------------------------------------------------*\ Delete the specified sheet from the current drawing-type object. \*----------------------------------------------------------------*/ status = ProDrawingSheetDelete(p_draw, sheet_num); ERROR_CHECK("UserSheetDelete","ProDrawingSheetDelete",status); if (status !=PRO_TK_NO_ERROR) return (PRO_TK_GENERAL_ERROR); ProTKSprintf(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); }