/*
Copyright (c) 2024 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/
/*---------------------- Pro/Toolkit Includes ------------------------*/
#include <ProToolkit.h>
#include <ProMenu.h>
#include <ProMdl.h>
#include <ProMenuBar.h>
#include <ProUtil.h>
#include <PTApplsUnicodeUtils.h>
/*---------------------- Application Includes ------------------------*/
#include <TestError.h>
/*---------------------- Function Prototypes -------------------------*/
int user_initialize(int argc, char *argv[], char *proe_vsn, char *build);
void user_terminate();
/*------------------------- External Data ----------------------------*/
extern int UserPartSetup();
extern int UserAssemblySetup();
extern int UserMechanicaSetup();
extern int UserUnicodeToNativeAndLegacy();
extern int UserUnicodeToUnicode();
extern int UserReadNativeToUnicode();
extern int UserReadUnicodeToUnicode();
extern int UserManufactureSetup();
extern int UserDrawingSetup();
extern ProError UserREADMESetup();
extern ProError UserGuideMain();
extern int UserNewDrawingMenuSetup();
extern int UserUIMenuSetup();
extern int UserPopupmenusSetup();
extern int UserCustomRelFunctionsDefine();
extern int UserCustomModelChecksDefine();
extern int UserSolidNoteCreate();
/*====================================================================*\
Function : user_initialize
Purpose : Initialize Pro/TOOLKIT program
\*====================================================================*/
int user_initialize(
int argc, /** Number of arguments **/
char *argv[], /** Pro/E arguments **/
char *proe_vsn, /** Pro/E version **/
char *build) /** Pro/E build **/
{
int menu,i;
uiCmdCmdId cmd_id;
ProFileName wmsgfil;
ProError err;
/*--------------------------------------------------------------------*\
Print out Pro/E version and build and set up logging if required
\*--------------------------------------------------------------------*/
ProTKPrintf("\n");
for(i=0;i<argc;i++)
ProTKPrintf("\targv[%d] = %s\n", i, argv[i]);
ProTKPrintf("\tPro/E version = %s\n", proe_vsn);
ProTKPrintf("\tPro/E build = %s\n", build);
if (argc > 4)
ProTestErrlogOpen(argv[4], proe_vsn, build);
else
ProTestErrlogOpen("pt_userguide", proe_vsn, build);
/*---------------------------------------------------------------------*\
Set up the entry point to the demos
\*---------------------------------------------------------------------*/
ProStringToWstring (wmsgfil, "utilities.txt");
err = ProMenubarMenuAdd ("UGMENU", "-UG MENU",
"Utilities", PRO_B_TRUE, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarMenuAdd()",err);
err = ProCmdActionAdd("-UG README!",
(uiCmdCmdActFn)UserREADMESetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UG README!", "-UG README!",
"Enter the README menu of the User Guide",
NULL, PRO_B_FALSE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
/*--------------------------------------------------------------------*\
Register a menu button icon for the command
\*--------------------------------------------------------------------*/
err = ProCmdIconSet (cmd_id, "tkreadme.gif");
ERROR_CHECK("user_initialize","ProCmdIconSet()",err);
/*--------------------------------------------------------------------*\
Make the command available as a Toolbar button
\*--------------------------------------------------------------------*/
err = ProCmdDesignate (cmd_id,
"-UG README!",
"Enter the README menu of the User Guide",
"UG README description",
wmsgfil);
ERROR_CHECK("user_initialize","ProCmdDesignate()",err);
err = ProCmdActionAdd("-UsrGuide Main",
(uiCmdCmdActFn)UserGuideMain,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide Main", "-UsrGuide Main",
"Enter the Main menu of the User Guide.",
NULL, PRO_B_FALSE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
err = ProCmdIconSet (cmd_id, "tkmain.gif");
ERROR_CHECK("user_initialize","ProCmdIconSet()",err);
err = ProCmdDesignate (cmd_id,
"-UsrGuide Main",
"Enter the Main menu of the User Guide.",
"UG Main description",
wmsgfil);
ERROR_CHECK("user_initialize","ProCmdDesignate()",err);
err = ProCmdActionAdd("-TK Round",
(uiCmdCmdActFn)UserEdgeRoundCreate,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProCmdIconSet (cmd_id, "tkround");
ERROR_CHECK("user_initialize","ProCmdIconSet()",err);
err = ProCmdDesignate (cmd_id,
"-UsrGuide Round",
"Userguide Round Example",
"UG Round description",
wmsgfil);
ERROR_CHECK("user_initialize","ProCmdDesignate()",err);
err = ProCmdActionAdd("-TK Note Create",
(uiCmdCmdActFn)UserSolidNoteCreate,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProCmdIconSet (cmd_id, "tknote");
ERROR_CHECK("user_initialize","ProCmdIconSet()",err);
err = ProCmdDesignate (cmd_id,
"-UsrGuide Solid Note",
"Userguide Solid Note Example",
"UG Solid Note description",
wmsgfil);
ERROR_CHECK("user_initialize","ProCmdDesignate()",err);
/*--------------------------------------------------------------------*\
Part menu
\*--------------------------------------------------------------------*/
err = ProCmdActionAdd("-UsrGuide Part",
(uiCmdCmdActFn)UserPartSetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide Part", "-UsrGuide Part",
"Enter the Part menu of the User Guide.",
NULL, PRO_B_TRUE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
err = ProMenuFileRegister("part","part.mnu",&menu);
ERROR_CHECK("user_initialize","ProMenuFileRegister()",err);
err = ProMenuAuxfileRegister("part","part.aux",&menu);
ERROR_CHECK("user_initialize","ProMenuAuxfileRegister()",err);
err = ProMenubuttonActionSet("part","-UG Part",
(ProMenubuttonAction)UserPartSetup,NULL,0);
ERROR_CHECK("user_initialize","ProMenubuttonActionSet()",err);
/*--------------------------------------------------------------------*\
Assembly menu
\*--------------------------------------------------------------------*/
err = ProCmdActionAdd("-UsrGuide Asm",
(uiCmdCmdActFn)UserAssemblySetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide Asm", "-UsrGuide Asm",
"Enter the Assembly menu of the User Guide.",
NULL, PRO_B_TRUE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
err = ProMenuFileRegister("assembly","assembly.mnu",&menu);
ERROR_CHECK("user_initialize","ProMenuFileRegister()",err);
err = ProMenuAuxfileRegister("assembly","assembly.aux",&menu);
ERROR_CHECK("user_initialize","ProMenuAuxfileRegister()",err);
err = ProMenubuttonActionSet("assembly","-UG Assembly",
(ProMenubuttonAction)UserAssemblySetup,NULL,0);
ERROR_CHECK("user_initialize","ProMenubuttonActionSet()",err);
err = ProCmdActionAdd("-UsrGuide MFG",
(uiCmdCmdActFn)UserManufactureSetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide MFG", "-UsrGuide MFG",
"Enter the MFG menu of the User Guide.",
NULL, PRO_B_TRUE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
err = ProMenuFileRegister("manufacture","mfg.mnu",&menu);
ERROR_CHECK("user_initialize","ProMenuFileRegister()",err);
err = ProMenuAuxfileRegister("manufacture","mfg.aux",&menu);
ERROR_CHECK("user_initialize","ProMenuAuxfileRegister()",err);
err = ProMenubuttonActionSet("manufacture","-UG MFG",
(ProMenubuttonAction)UserManufactureSetup,NULL,0);
ERROR_CHECK("user_initialize","ProMenubuttonActionSet()",err);
/*--------------------------------------------------------------------*\
Drawing menu
\*--------------------------------------------------------------------*/
err = ProCmdActionAdd("-UsrGuide New Drw",
(uiCmdCmdActFn)UserNewDrawingMenuSetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide New Drawing", "-UsrGuide New Drawing",
"Enter the New Drawing menu of the User Guide.",
NULL, PRO_B_TRUE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
err = ProCmdActionAdd("-UsrGuide Drw",
(uiCmdCmdActFn)UserDrawingSetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize", "ProCmdActionAdd()", err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide Drawing", "-UsrGuide Drawing",
"Enter the New Drawing menu of the User Guide.",
NULL, PRO_B_TRUE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize", "ProMenubarmenuPushbuttonAdd()", err);
err = ProMenuFileRegister("drawing","draw.mnu", &menu);
ERROR_CHECK("user_initialize","ProMenuFileRegister()",err);
err = ProMenuAuxfileRegister("drawing","draw.aux", &menu);
ERROR_CHECK("user_initialize","ProMenuAuxfileRegister()",err);
err = ProMenubuttonActionSet("drawing","-UG Drawing",
(ProMenubuttonAction)UserDrawingSetup,NULL,0);
err = ProMenubuttonActionSet("drawing","-UG New Drawing",
(ProMenubuttonAction)UserNewDrawingMenuSetup,NULL,0);
ERROR_CHECK("user_initialize","ProMenubuttonActionSet()",err);
err = ProCmdActionAdd("-UsrGuide UI",
(uiCmdCmdActFn)UserUIMenuSetup,
uiProe2ndImmediate, NULL,
PRO_B_TRUE, PRO_B_TRUE, &cmd_id);
ERROR_CHECK("user_initialize","ProCmdActionAdd()",err);
err = ProMenubarmenuPushbuttonAdd(
"UGMENU", "-UsrGuide UI", "-UsrGuide UI",
"Enter the UI menu of the User Guide.",
NULL, PRO_B_TRUE, cmd_id, wmsgfil);
ERROR_CHECK("user_initialize","ProMenubarmenuPushbuttonAdd()",err);
err = ProMenuFileRegister("drawing","draw.mnu", &menu);
ERROR_CHECK("user_initialize","ProMenuFileRegister()",err);
err = ProMenuAuxfileRegister("drawing","ui.aux",&menu);
ERROR_CHECK("user_initialize","ProMenuAuxfileRegister()",err);
err = ProMenubuttonActionSet("drawing","-UG UI",
(ProMenubuttonAction)UserUIMenuSetup,NULL,0);
ERROR_CHECK("user_initialize","ProMenubuttonActionSet()",err);
/*---------------------------------------------------------------------*\
Initialize popup menus for selected examples
\*---------------------------------------------------------------------*/
UserPopupmenusSetup();
/*---------------------------------------------------------------------*\
Initialize custom relation functions defined in this application
\*---------------------------------------------------------------------*/
UserCustomRelFunctionsDefine();
/*---------------------------------------------------------------------*\
Initialize ModelCheck custom checks defined in this application
\*---------------------------------------------------------------------*/
UserCustomModelChecksDefine();
/*---------------------------------------------------------------------*\
Call init functions for menu examples
\*---------------------------------------------------------------------*/
err = ProUserMenubuttonMoveInit();
ERROR_CHECK("user_initialize","ProUserMenubuttonMoveInit",err);
err = ProUserAddMenuInit();
ERROR_CHECK("user_initialize","ProUserAddMenuInit",err);
err = ProUserConfirmationInit();
ERROR_CHECK("user_initialize","ProUserConfirmationInit",err);
return(0);
}
void user_terminate()
{
}