/*
	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 <ProMode.h>
#include <ProMenuBar.h>

/*---------------------- Application Includes ------------------------*/
#include <TestError.h>

extern int UserMenuDeleteAndPop();
extern int UserFullRegenerate();
extern int UsrNonlinMaterialCreateWrapper();

/*====================================================================*\
FUNCTION: UserSolidSetup()
PURPOSE:  Set up the solid operations menu
\*====================================================================*/
int UserSolidSetup()
{
  int menu_id, action, status;

  status = ProMenuFileRegister("UGSOLID", "ugsolid.mnu", &menu_id);
  ERROR_CHECK( "UserSolidSetup", "ProMenuFileRegister", status );

  status = ProMenubuttonActionSet("UGSOLID","-Create Material",
     (ProMenubuttonAction)UsrNonlinMaterialCreateWrapper, NULL, 0);
  ERROR_CHECK( "UserSolidSetup", "ProMenubuttonActionSet", status );

  status = ProMenubuttonActionSet("UGSOLID","-Full Regen",
     (ProMenubuttonAction)UserFullRegenerate, NULL, 0);
  ERROR_CHECK( "UserSolidSetup", "ProMenubuttonActionSet", status );

  status = ProMenubuttonActionSet("UGSOLID","-Info->Mass",
     (ProMenubuttonAction)UserPartInfoMass_AO, NULL, 0);
  ERROR_CHECK( "UserSolidSetup", "ProMenubuttonActionSet", status );

  if (UserPartInfoMass_TestAO (MODE_BLIND) != ACCESS_AVAILABLE)
    ProMenubuttonVisibilitySet ("UGSOLID","-Info->Mass", PRO_B_FALSE);

  status = ProMenubuttonActionSet("UGSOLID", "-Done/Return",
     (ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
  ERROR_CHECK( "UserSolidSetup", "ProMenubuttonActionSet", status );

  status = ProMenubuttonActionSet("UGSOLID", "UGSOLID",
     (ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
  ERROR_CHECK( "UserSolidSetup", "ProMenubuttonActionSet", status );

  status = ProMenuPush();
  ERROR_CHECK( "UserSolidSetup", "ProMenuPush", status );

  status = ProMenuCreate(PROMENUTYPE_MAIN, "UGSOLID", &menu_id);
  ERROR_CHECK( "UserSolidSetup", "ProMenuCreate", status );

  status = ProMenuProcess("UGSOLID", &action);
  ERROR_CHECK( "UserSolidSetup", "ProMenuProcess", status );

  return(PRO_TK_NO_ERROR);	
}