/* Copyright (c) 2024 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved. */ #include <ProToolkit.h> #include <ProMenuBar.h> #include <ProUtil.h> #include <ProMessage.h> #include <ProBrowser.h> #include <ProWTUtils.h> #include <ProWorkspace.h> #include <ProCore.h> #include <PTWCServer.h> ProFileName message_file; #define POPULATE_MODE_FLAG "populate" #define REGFILE_FLAG "regfile" uiCmdAccessState PTTestAccessDefault () { return ACCESS_AVAILABLE; } /*====================================================================*\ FUNCTION : user_initialize() PURPOSE : Application initialization \*====================================================================*/ int user_initialize(int argc, char* argv[]) { ProBoolean populateMode = PRO_B_FALSE; int i; uiCmdCmdId cmd_id; char initFile [PRO_FILE_NAME_SIZE]; PT_TEST_LOG_INIT /*--------------------------------------------------------------------*\ Set the default initialization file name \*--------------------------------------------------------------------*/ strcpy (initFile, "pt_wc_server_init.dat"); /*--------------------------------------------------------------------*\ Parse command line \*--------------------------------------------------------------------*/ if (argc > 1) { for (i = 1; i < argc; i++) { char* flagString; char* flagInitFile = NULL; int loc; /*--------------------------------------------------------------------*\ Skip the '+' used to signal this argument to Pro/TOOLKIT \*--------------------------------------------------------------------*/ flagString = argv [i] + 1; if (strcmp (flagString, POPULATE_MODE_FLAG)== 0) { populateMode = PRO_B_TRUE; } if (strncmp (flagString, REGFILE_FLAG, strlen (REGFILE_FLAG)) == 0) { flagInitFile = strchr (flagString, '='); strcpy (initFile, flagInitFile + 1); } } } /*--------------------------------------------------------------------*\ Run populate mode, this method will exit Pro/E after its complete \*--------------------------------------------------------------------*/ if (populateMode) { PTWCUtilSetInteractive (PRO_B_FALSE); return (PTWCPopulateServer (initFile)); } ProStringToWstring (message_file_init, "pt_wc_server.txt" ); /*---------------------------------------------------------------------*\ Add the application main menu \*---------------------------------------------------------------------*/ status = ProMenubarMenuAdd ("PTWCServer", "PTWCServerLabel", "Info", PRO_B_TRUE, message_file_init ); PT_TEST_LOG_SUCC ("ProMenubarMenuAdd()"); /*---------------------------------------------------------------------*\ Add the button for creating and checking in the BOM file \*---------------------------------------------------------------------*/ status = ProCmdActionAdd("PTWCServer.CreateBOM", (uiCmdCmdActFn)PTWCCreateOrUpdateDXF, uiProe2ndImmediate, PTWCAccessCreateOrUpdateDXF, PRO_B_TRUE, PRO_B_TRUE, &cmd_id); PT_TEST_LOG_SUCC ("ProCmdActionAdd()"); status = ProMenubarmenuPushbuttonAdd( "PTWCServer", "PTWCCreateUpdateDXF", "PTWCCreateUpdateDXF-Label", "PTWCCreateUpdateDXF-Help", NULL, PRO_B_TRUE, cmd_id, message_file_init); PT_TEST_LOG_SUCC ("ProMenubarmenuPushbuttonAdd()"); /*---------------------------------------------------------------------*\ Add the button for creating and checking in the ProductView OL files as secondary content \*---------------------------------------------------------------------*/ status = ProCmdActionAdd("PTWCServer.PartToPView", (uiCmdCmdActFn)PTWCPartsToProductView, uiProe2ndImmediate, PTWCAccessPartToPView, PRO_B_TRUE, PRO_B_TRUE, &cmd_id); PT_TEST_LOG_SUCC ("ProCmdActionAdd()"); status = ProMenubarmenuPushbuttonAdd( "PTWCServer", "PTWCPartToPView", "PTWCPartToPView-Label", "PTWCPartToPView-Help", NULL, PRO_B_TRUE, cmd_id, message_file_init); PT_TEST_LOG_SUCC ("ProMenubarmenuPushbuttonAdd()"); /*---------------------------------------------------------------------*\ Add the button for automatic addition of a family table instance. \*---------------------------------------------------------------------*/ status = ProCmdActionAdd("PTWCServer.AddInstance", (uiCmdCmdActFn)PTWCAddInstance, uiProe2ndImmediate, PTWCAccessAddInstance, PRO_B_TRUE, PRO_B_TRUE, &cmd_id); PT_TEST_LOG_SUCC ("ProCmdActionAdd()"); status = ProMenubarmenuPushbuttonAdd( "PTWCServer", "PTWCAddInstance", "PTWCAddInstance-Label", "PTWCAddInstance-Help", NULL, PRO_B_TRUE, cmd_id, message_file_init); PT_TEST_LOG_SUCC ("ProMenubarmenuPushbuttonAdd()"); return(0); } void user_terminate() { PT_TEST_LOG_CLOSE }