/*****************************************************************************\ FILE : UgViewsList.c PURPOSE : Pro/TOOLKIT User Guide - drawing view creation 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 : UserViewsList() Purpose : List all the Views in a drawing \*---------------------------------------------------------------------------*/ ProError UserViewsList() { int status; ProMdl p_draw; ProMdldata drawing_data; char drawing_name[PRO_NAME_SIZE]; char drawing_type[PRO_TYPE_SIZE]; int view_id, sheet; double outline[2][3]; double view_scale; FILE * fp; ProCharName filename = {'v','i','e','w','s','.','l','s','t','\0'}; ProFileName wfilename; /*------------------------------------------*\ get information about the current drawing \*------------------------------------------*/ status = ProMdlCurrentGet( &p_draw); ERROR_CHECK( "UserViewsList", "ProMdlCurrentGet", status ); if (status != PRO_TK_NO_ERROR) return(status); status = ProMdlDataGet( p_draw, &drawing_data); ERROR_CHECK( "UserViewsList", "ProMdlDataGet", status ); if (status != PRO_TK_NO_ERROR) return(status); /*------------------------------------------*\ Open file and write drawing data as header \*------------------------------------------*/ fp = fopen(filename, "w"); ProWstringToString(drawing_name, drawing_data.name); ProWstringToString(drawing_type, drawing_data.type); fprintf(fp, "%s.%s contains the following views :\n", drawing_name, drawing_type); /*------------------------------------------*\ Visit all the views in this drawing \*------------------------------------------*/ for (view_id = prodrw_get_first_view_id ((Prohandle) p_draw); view_id > -1; view_id = prodrw_get_next_view_id ((Prohandle) p_draw, view_id)) { sheet = prodrw_get_view_sheet ((Prohandle) p_draw, view_id); ERROR_CHECK( "UserViewsList", "prodrw_get_view_sheet", (sheet < 0)); if (sheet < 0) return (PRO_TK_GENERAL_ERROR); status = prodrw_get_view_outline ((Prohandle) p_draw, view_id, outline); ERROR_CHECK( "UserViewsList", "prodrw_get_view_outline",(status <=0)); if (status <=0) return (PRO_TK_GENERAL_ERROR); status = prodrw_get_view_scale ((Prohandle) p_draw, view_id, &view_scale); ERROR_CHECK( "UserViewsList", "prodrw_get_view_scale",(status <=0)); if (status <=0) return (PRO_TK_GENERAL_ERROR); fprintf (fp," View %d, sheet %d :-\n", view_id, sheet); fprintf (fp," Bottom left %5.2f, %5.2f\n", outline[0][0], outline[0][1]); fprintf (fp," Top right %5.2f, %5.2f\n", outline[1][0], outline[1][1]); fprintf (fp," Scale %f\n", view_scale); } fclose(fp); /*------------------------------------------*\ display the file in an information window \*------------------------------------------*/ ProStringToWstring(wfilename, filename); status = ProInfoWindowDisplay(wfilename, NULL, NULL); ERROR_CHECK( "UserViewsList", "ProInfoWindowDisplay", status ); return(status); }