/*
Copyright (c) 2019 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/
/*--------------------------------------------------------------------*\
Pro/TOOLKIT includes
\*--------------------------------------------------------------------*/
#include "ProToolkit.h"
#include "ProMenu.h"
#include "ProUtil.h"
/*--------------------------------------------------------------------*\
Pro/DEVELOP includes
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
C System includes
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
Application includes
\*--------------------------------------------------------------------*/
#include "TestError.h"
#include "UtilMessage.h"
#include "TestGraphics.h"
#include <ProTKRunTime.h>
/*--------------------------------------------------------------------*\
Macros
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
Data types
\*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*\
Application global/external data
\*--------------------------------------------------------------------*/
/*---------------------------------------------------------------------*\
Functions declaration
\*---------------------------------------------------------------------*/
int ProTestText( void*, int );
int ProTestTextFontIdCurrentSet( void*, int );
int ProTestTextHeightCurrentSet( void*, int );
int ProTestTextWidthFactorCurrentSet( void*, int );
int ProTestTextRotationAngleCurrentSet( void*, int );
int ProTestTextSlantAngleCurrentSet( void*, int );
int ProTestTextAttributesCurrentGet( void*, int );
int ProTestTextAttributesCurrentUnset( void*, int );
int ProTestTextFontIdGet( void*, int );
/*===========================================================================*\
Function : user_set_text
Purpose : To set text attributes
\*===========================================================================*/
/*---------------------------------------------------------------------*\
Function: ProTestText()
Purpose: On-buttun function. Create and run Text Set menu to test
ProText functions.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestText( void* p_dummy, int int_dummy )
{
ProError status;
int menu_id; /* The identifier of the created menu */
int action;
/*-----------------------------*\
Create new menu Text Set
\*-----------------------------*/
/* Load base menu from file */
status = ProMenuFileRegister((char*) "Text Set",(char*) "tktext.mnu", &menu_id );
TEST_CALL_REPORT( "ProMenuFileRegister()", "ProTestText()",
status, status != PRO_TK_NO_ERROR );
/* Define menu buttons */
ProMenubuttonActionSet((char*) "Text Set",(char*) "Font",
(ProMenubuttonAction)ProTestTextFontIdCurrentSet, 0, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Height",
(ProMenubuttonAction)ProTestTextHeightCurrentSet, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Width",
(ProMenubuttonAction)ProTestTextWidthFactorCurrentSet, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Rotate",
(ProMenubuttonAction)ProTestTextRotationAngleCurrentSet, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Slant",
(ProMenubuttonAction)ProTestTextSlantAngleCurrentSet, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Get Attr",
(ProMenubuttonAction)ProTestTextAttributesCurrentGet, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Unset Attr",
(ProMenubuttonAction)ProTestTextAttributesCurrentUnset, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Dflt Font Get",
(ProMenubuttonAction)ProTestTextFontIdGet, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Done",
(ProMenubuttonAction)ProMenuDelete, NULL, 0 );
ProMenubuttonActionSet((char*) "Text Set",(char*) "Text Set",
(ProMenubuttonAction)ProMenuDelete, NULL, 0 );
/*-----------------------*\
Run menu Text Set
\*-----------------------*/
status = ProMenuCreate( PROMENUTYPE_MAIN,(char*) "Text Set", &menu_id );
TEST_CALL_REPORT( "ProMenuCreate()", "ProTestText()",
status, status != PRO_TK_NO_ERROR );
if( status == PRO_TK_NO_ERROR )
{
status = ProMenuProcess((char*) "Text Set", &action );
TEST_CALL_REPORT( "ProMenuProcess()", "ProTestText()",
status, status != PRO_TK_NO_ERROR );
}
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextFontIdCurrentSet()
Purpose: On-buttun function. Set current font id to the value
entered by user.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextFontIdCurrentSet( void* p_dummy, int int_dummy )
{
ProError status;
int font_id;
ProUtilMsgPrint( "gen", "TEST %0s", "Enter a value: " );
if( !ProUtilIntGet( NULL, NULL, &font_id ) )
return -1;
status = ProTextFontIdCurrentSet( font_id );
TEST_CALL_REPORT( "ProTextFontIdCurrentSet()",
"ProTestTextFontIdCurrentSet()",
status, status != PRO_TK_NO_ERROR );
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextHeightCurrentSet()
Purpose: On-buttun function. Set current text height to the value
entered by user.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextHeightCurrentSet( void* p_dummy, int int_dummy )
{
ProError status;
double height;
ProUtilMsgPrint( "gen", "TEST %0s", "Enter a value: " );
if( !ProUtilDoubleGet( NULL, NULL, &height ) )
return -1;
status = ProTextHeightCurrentSet( height );
TEST_CALL_REPORT( "ProTextHeightCurrentSet()",
"ProTestTextHeightCurrentSet()",
status, status != PRO_TK_NO_ERROR );
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextWidthFactorCurrentSet()
Purpose: On-buttun function. Set current text width factor
to the value entered by user.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextWidthFactorCurrentSet( void* p_dummy, int int_dummy )
{
ProError status;
double width_factor;
ProUtilMsgPrint( "gen", "TEST %0s", "Enter a value: " );
if( !ProUtilDoubleGet( NULL, NULL, &width_factor ) )
return -1;
status = ProTextWidthFactorCurrentSet( width_factor );
TEST_CALL_REPORT( "ProTextWidthFactorCurrentSet()",
"ProTestTextWidthFactorCurrentSet()",
status, status != PRO_TK_NO_ERROR );
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextRotationAngleCurrentSet()
Purpose: On-buttun function. Set current text rotation angle
to the value entered by user.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextRotationAngleCurrentSet( void* p_dummy, int int_dummy )
{
ProError status;
double rotation_angle;
ProUtilMsgPrint( "gen", "TEST %0s", "Enter a value: " );
if( !ProUtilDoubleGet( NULL, NULL, &rotation_angle ) )
return -1;
status = ProTextRotationAngleCurrentSet( rotation_angle );
TEST_CALL_REPORT( "ProTextRotationAngleCurrentSet()",
"ProTestTextRotationAngleCurrentSet()",
status, status != PRO_TK_NO_ERROR );
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextSlantAngleCurrentSet()
Purpose: On-buttun function. Set current text slant angle
to the value entered by user.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextSlantAngleCurrentSet( void* p_dummy, int int_dummy )
{
ProError status;
double slant_angle;
ProUtilMsgPrint( "gen", "TEST %0s", "Enter a value: " );
if( !ProUtilDoubleGet( NULL, NULL, &slant_angle ) )
return -1;
status = ProTextSlantAngleCurrentSet( slant_angle );
TEST_CALL_REPORT( "ProTextSlantAngleCurrentSet()",
"ProTestTextSlantAngleCurrentSet()",
status, status != PRO_TK_NO_ERROR );
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextAttributesCurrentGet()
Purpose: On-buttun function. Get and print out the current text
attributes.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextAttributesCurrentGet( void* p_dummy, int int_dummy )
{
ProError status;
ProTextAttribute attributes;
status = ProTextAttributesCurrentGet( &attributes );
TEST_CALL_REPORT( "ProTextAttributesCurrentGet()",
"ProTestTextAttributesCurrentGet()",
status, status != PRO_TK_NO_ERROR );
if( status == PRO_TK_NO_ERROR )
{
ProTKPrintf( "\nCurrent text settings:" );
ProTKPrintf( "\n\tfont_id = %d", attributes.font_id );
ProTKPrintf( "\theight = %lf\twidth = %lf\trotate = %lf\tslant = %lf\n",
attributes.height, attributes.width_factor,
attributes.rot_angle, attributes.slant_angle );
}
return 0;
}
/*---------------------------------------------------------------------*\
Function: ProTestTextAttributesCurrentUnset()
Purpose: On-buttun function. Set the current text attributes to
default.
Returns: 0 - success; -1 - error.
\*---------------------------------------------------------------------*/
int ProTestTextAttributesCurrentUnset( void* p_dummy, int int_dummy )
{
ProError status;
status = ProTextAttributesCurrentUnset();
TEST_CALL_REPORT( "ProTextAttributesCurrentUnset()",
"ProTestTextAttributesCurrentUnset()",
status, status != PRO_TK_NO_ERROR );
if( status == PRO_TK_NO_ERROR )
{
ProTKPrintf( "\nText attributes is default." );
/* Print out current text settings */
ProTestTextAttributesCurrentGet( NULL, 0 );
}
return 0;
}
/*===========================================================================*\
Function : user_get_font_id
Purpose : To get a font name & id
\*===========================================================================*/
/*---------------------------------------------------------------------*\
Function: ProTestTextFontIdGet()
Purpose: On-button function. Test text font functions.
Get deflt font id, use it to get font name, then use the
name to get font id.
Returns: 0
\*---------------------------------------------------------------------*/
int ProTestTextFontIdGet( void* p_dummy, int int_dummy )
{
ProError status;
ProLine w_font_name;
char font_name[80];
int font_id;
/* Get the default text font identifier */
ProTextFontDefaultIdGet( &font_id );
TEST_CALL_REPORT( "ProTextFontDefaultIdGet()", "ProTestTextFontIdGet()",
(ProError)0, 0 );
/* Get the font name for the specified font identifier */
status = ProTextFontNameGet( font_id, w_font_name );
TEST_CALL_REPORT( "ProTextFontNameGet()", "ProTestTextFontIdGet()",
status, status != PRO_TK_NO_ERROR );
ProWstringToString( font_name, w_font_name );
/* Get the identifier for the specified text font name */
status = ProTextFontNameToId( w_font_name, &font_id );
TEST_CALL_REPORT( "ProTextFontNameToId()", "ProTestTextFontIdGet()",
status, status != PRO_TK_NO_ERROR );
if( status == PRO_TK_NO_ERROR )
ProTKPrintf( "Font Name = %s, Font Id = %d\n", font_name, font_id );
return 0;
}