/*
Copyright (c) 2019 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/
/*---------------------- Pro/Toolkit Includes ------------------------*/
#include <ProToolkit.h>
#include <ProMenu.h>
/*---------------------- Function Prototypes -------------------------*/
ProError ProUserJValueGet();
int ProUserValueSet();
int ProUserJustificationSet();
/*------------------------------------------------------------*\
Declare the values for the justification options, and for
Done and Quit.
\*------------------------------------------------------------*/
#define EX9_TOP 0
#define EX9_BOTTOM 1
#define EX9_LEFT 0
#define EX9_RIGHT 1
#define EX9_QUIT 0
#define EX9_DONE 1
/*------------------------------------------------------------*\
Command-function to close a menu, returning the selected value
\*------------------------------------------------------------*/
ProError ProUserJValueGet(void *dummy, int value)
{
ProMenuDeleteWithStatus(value);
return(0);
}
/*------------------------------------------------------------*\
Command function to set a given variable with a given value
\*------------------------------------------------------------*/
int ProUserValueSet(int *option, int value)
{
*option = value;
}
/*------------------------------------------------------------*\
Function to set the vertical and horizontal
justification options.
\*------------------------------------------------------------*/
int ProUserJustificationSet(int *vert, int *horz)
{
int menuId;
int action;
ProError status;
/*------------------------------------------------------------*\
Set the new value to be the old by default
\*------------------------------------------------------------*/
int new_vert = *vert,
new_horz = *horz;
/*------------------------------------------------------------*\
Set up the vertical justification menu
\*------------------------------------------------------------*/
status = ProMenuFileRegister("vert_just","vert_just.mnu", &menuId);
status = ProMenubuttonActionSet("vert_just", "Top",
(ProMenubuttonAction)ProUserValueSet, &new_vert, EX9_TOP);
status = ProMenubuttonActionSet("vert_just", "Bottom",
(ProMenubuttonAction)ProUserValueSet, &new_vert, EX9_BOTTOM);
status = ProMenubuttonActionSet("vert_just", "vert_just",
(ProMenubuttonAction)ProMenuHold, NULL, 0);
status = ProMenuCreate(PROMENUTYPE_MAIN,"vert_just", &menuId);
status = ProMenubuttonHighlight("vert_just",
(new_vert == EX9_TOP) ? "Top" : "Bottom");
/*------------------------------------------------------------*\
Set up the horizontal justification menu
\*------------------------------------------------------------*/
status = ProMenuFileRegister("horz_just","horz_just.mnu", &menuId);
status = ProMenubuttonActionSet("horz_just", "Left",
(ProMenubuttonAction)ProUserValueSet, &new_horz, EX9_LEFT);
status = ProMenubuttonActionSet("horz_just", "Right",
(ProMenubuttonAction)ProUserValueSet, &new_horz, EX9_RIGHT);
status = ProMenubuttonActionSet("horz_just", "horz_just",
(ProMenubuttonAction)ProMenuHold, NULL, 0);
status = ProMenuCreate(PROMENUTYPE_SUB, "horz_just", &menuId);
status = ProMenubuttonHighlight("horz_just",
(new_horz == EX9_LEFT) ? "Left" : "Right");
/*------------------------------------------------------------*\
Set up the Done/Quit menu
\*------------------------------------------------------------*/
status = ProMenuFileRegister("done_quit","donequit.mnu", &menuId);
status = ProMenubuttonActionSet("done_quit", "Done",
(ProMenubuttonAction)ProUserJValueGet, NULL, EX9_DONE);
status = ProMenubuttonActionSet("done_quit", "Quit",
(ProMenubuttonAction)ProUserJValueGet, NULL, EX9_QUIT);
status = ProMenubuttonActionSet("done_quit", "done_quit",
(ProMenubuttonAction)ProUserJValueGet, NULL, EX9_QUIT);
status = ProMenuCreate(PROMENUTYPE_SUB, "done_quit", &menuId);
/*------------------------------------------------------------*\
If the user selected Done,
set the values to be the new ones
\*------------------------------------------------------------*/
if(ProMenuProcess("", &action) == EX9_DONE)
{
*vert = new_vert;
*horz = new_horz;
}
/*------------------------------------------------------------*\
Close the other two menus
\*------------------------------------------------------------*/
ProMenuDelete();
ProMenuDelete();
return(0);
}