/*
Copyright (c) 2019 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/
/*--------------------------------------------------------------------*\
Pro/TOOLKIT includes
\*--------------------------------------------------------------------*/
#include <ProToolkit.h>
#include <ProObjects.h>
#include <ProMdl.h>
#include <ProMenu.h>
#include <ProDrawing.h>
#include <ProMessage.h>
#include <ProUtil.h>
#include <ProDwgtable.h>
/*--------------------------------------------------------------------*\
Pro/DEVELOP includes
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
C System includes
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
Application includes
\*--------------------------------------------------------------------*/
#include "TestError.h"
/*--------------------------------------------------------------------*\
Application macros
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
Application data types
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
Application global/external data
\*--------------------------------------------------------------------*/
ProError ProTestDrawingMerge();
/*====================================================================*\
FUNCTION : ProTestDraw()
PURPOSE : Define and activate menu of Toolkit Test commands drawing
\*====================================================================*/
int ProTestDraw()
{
ProError status;
ProMdl model;
int action;
int ProTestLayerMenu (ProMdl *mod);
int ProTestDrwSimpRep ();
int ProTestDrwSheets ();
int ProTestDetail ();
int ProTestDrawingView (ProMdl *mod);
int ProTestDimensionMenu (ProMdl *model);
ProError ProTestDrawingInfo();
ProError ProTestDrwTable();
status = ProMdlCurrentGet(&model);
TEST_CALL_REPORT("ProMdlCurrentGet()", "ProTestDraw()",
status, status != PRO_TK_NO_ERROR);
ProMenuPush ();
ProMenuFileRegister((char*)"TkDrawing",(char*)"tkdrawing.mnu", NULL);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Layer",
(ProMenubuttonAction)ProTestLayerMenu, &model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Dimension",
(ProMenubuttonAction)ProTestDimensionMenu, &model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Table",
(ProMenubuttonAction)ProTestDrwTable, NULL, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Sheets",
(ProMenubuttonAction)ProTestDrwSheets, &model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Simp Rep",
(ProMenubuttonAction)ProTestDrwSimpRep, NULL, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Detail",
(ProMenubuttonAction)ProTestDetail, &model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-View",
(ProMenubuttonAction)ProTestDrawingView, &model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Info",
(ProMenubuttonAction)ProTestDrawingInfo,&model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Drawing Merge",
(ProMenubuttonAction)ProTestDrawingMerge,&model, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"TkDrawing",
(ProMenubuttonAction)ProMenuDelete, NULL, 0);
ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Done/Return",
(ProMenubuttonAction)ProMenuDelete, NULL, 0);
ProMenuCreate(PROMENUTYPE_MAIN, (char*)"TkDrawing", NULL);
ProMenuProcess((char*)"", &action);
ProMenuPop();
return (0);
}
/*====================================================================*\
FUNCTION : ProTestDetail()
PURPOSE : Define and activate menu of Toolkit Test commands drawing
\*====================================================================*/
int ProTestDetail (void** app_data, int int_dummy)
{
ProDrawing drawing = (ProDrawing)*app_data;
int menu_id;
ProError err;
int ProTestEntity();
int ProTestDtlNoteMenu();
int ProTestSymInst();
int ProTestDtlGroupMenu();
int ProTestSymDefMenu(ProDrawing drawing);
err = ProMenuFileRegister((char*)"-Detail",(char*)"tkdetail.mnu", &menu_id);
err = ProMenubuttonActionSet((char*)"-Detail",(char*)"-Detail",
(ProMenubuttonAction)ProMenuDelete, NULL, 0);
err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Entity",
(ProMenubuttonAction)ProTestEntity, &drawing, 0);
err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Note",
(ProMenubuttonAction)ProTestDtlNoteMenu, &drawing, 0);
err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Symdef",
(ProMenubuttonAction)ProTestSymDefMenu, drawing, 0);
err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Syminst",
(ProMenubuttonAction)ProTestSymInst, drawing, 0);
err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Group",
(ProMenubuttonAction)ProTestDtlGroupMenu, drawing, 0);
err = ProMenuCreate(PROMENUTYPE_MAIN, (char*)"-Detail",&menu_id);
err = ProMenuProcess((char*)"", &menu_id);
return (0);
}
/*====================================================================*
Function : ProTestDrawingMerge
Purpose : Merge two drawings
\*====================================================================*/
ProError ProTestDrawingMerge()
{
ProDrawing drawing1,drawing2;
wchar_t name [PRO_FAMILY_MDLNAME_SIZE];
ProError status;
ProFileName WMSGFIL = {'u','s','e','r','m','s','g','.','t','x','t','\0'};
/*------------------------------------------------------------*\
Get the current model
\*------------------------------------------------------------*/
status = ProMdlCurrentGet ((ProMdl*)&drawing1);
TEST_CALL_REPORT ("UserDrawingMerge", "ProMdlCurrentGet", status,
status != PRO_TK_NO_ERROR);
if (status != PRO_TK_NO_ERROR) return(status);
/*------------------------------------------------------------*\
Get drawings to merge
\*------------------------------------------------------------*/
status = ProMessageDisplay (WMSGFIL, (char*)"USER %0s",
"Enter model name which you want to merge");
TEST_CALL_REPORT ("UserDrawingMerge", "ProMessageDisplay", status,
status != PRO_TK_NO_ERROR);
status = ProMessageStringRead (PRO_FAMILY_MDLNAME_SIZE, (wchar_t*)name);
TEST_CALL_REPORT ("ProMessageStringRead", "UserDrawingMerge", status,
status != PRO_TK_NO_ERROR);
if (status != PRO_TK_NO_ERROR) return(status);
status = ProMdlnameRetrieve (name, PRO_MDLFILE_DRAWING ,
(ProMdl*)&drawing2);
TEST_CALL_REPORT ("ProMdlnameRetrieve", "UserDrawingMerge", status,
status != PRO_TK_NO_ERROR);
if (status != PRO_TK_NO_ERROR) return(status);
status = ProDrawingMerge (drawing1, drawing2);
TEST_CALL_REPORT ("UserDrawingMerge", "ProDrawingMerge", status,
status != PRO_TK_NO_ERROR);
/*--------------------------------------------------------------*\
To get handle for second drawing
\*--------------------------------------------------------------*/
status = ProMdlnameRetrieve (name,PRO_MDLFILE_DRAWING , (ProMdl*)&drawing2);
TEST_CALL_REPORT ("ProMdlnameRetrieve", "UserDrawingMerge", status,
status != PRO_TK_NO_ERROR);
return (status);
}