⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uguislider.c

📁 Pro.TOOLKIT.Wildfire插件设计.配套光盘-141M.zip
💻 C
字号:
/*-----------------------------------------------------------------------------  File:		UgUISlider.c  Description:	ProTK doc code sample            PTC             File   Date   Version   Author  Vers  Comment--------- -------  -------- ----- ---------------------------------------------25-Oct-00  J-01-21  Scott   $$1   Submitted.-----------------------------------------------------------------------------*/#include <ProToolkit.h>#include <ProDimension.h>#include <ProFeature.h>#include <ProSelection.h>#include <ProUICheckbutton.h>#include <ProUIPushbutton.h>#include <ProUIDialog.h>#include <ProUIInputpanel.h>#include <ProUILabel.h>#include <ProUISlider.h>#define  OK     1#define  CANCEL 0static ProName msgfil;/*====================================================================*\ FUNCTION : UsrModAngle() PURPOSE  : Command to modify an angular dimension using a slider \*====================================================================*/ UsrModAngle() {     ProError status;     ProSelection *sel;     int n_sel, angle;     double value;     ProName wname;     ProCharName name;     ProCharLine prompt;     ProDimension dimension;     ProDimensiontype dtype;    while(1)     { /*--------------------------------------------------------------------*\         Select a feature or a dimension \*--------------------------------------------------------------------*/         status = ProSelect("feature,dimension",1,                            NULL,NULL,NULL,NULL,&sel,&n_sel);        if(status != PRO_TK_NO_ERROR || n_sel < 1)             break;        ProSelectionModelitemGet(sel[0], &dimension);/*--------------------------------------------------------------------*\         If it's a feature, display the dimensions \*--------------------------------------------------------------------*/         if(dimension.type == PRO_FEATURE)             ProFeatureParamsDisplay(sel[0], PRO_DIM_PARAM);        else         { /*--------------------------------------------------------------------*\             Check that it's angular \*--------------------------------------------------------------------*/             ProDimensionTypeGet(&dimension, &dtype);            if(dtype != PRODIMTYPE_ANGLE)                 continue;/*--------------------------------------------------------------------*\             Get the current value \*--------------------------------------------------------------------*/             ProDimensionValueGet(&dimension, &value);            angle = (int)value;/*--------------------------------------------------------------------*\             Get the name and form a prompt string \*--------------------------------------------------------------------*/             ProDimensionSymbolGet(&dimension, wname);            ProWstringToString(name, wname);            sprintf(prompt,"Enter the new value of %s",name);/*--------------------------------------------------------------------*\             Input the new angle using a dialog box with a slider \*--------------------------------------------------------------------*/             if(!UsrAngleGet(prompt, &angle))                 continue;/*--------------------------------------------------------------------*\             Set the new value and update the dim display \*--------------------------------------------------------------------*/             value = (double)angle;             if(ProDimensionValueSet(&dimension, value) != PRO_TK_NO_ERROR)             {               ProMessageDisplay(msgfil,"USER Could not modify dimension");                 continue;             }             ProDimensionDisplayUpdate(&dimension);         }     } }/*====================================================================*\ FUNCTION : UsrOKAction() PURPOSE  : Action function for the OK button \*====================================================================*/ static void UsrSliderOKAction(     char *dialog,     char *component,     ProAppData data) {     ProUIDialogExit(dialog, OK); } /*====================================================================*\ FUNCTION : UsrCancelAction() PURPOSE  : Action function for the CANCEL button \*====================================================================*/ static void UsrSliderCancelAction(     char *dialog,     char *component,     ProAppData data) {     ProUIDialogExit(dialog, CANCEL); } /*====================================================================*\ FUNCTION : UsrSliderAction() PURPOSE  : Callback for movement of the slider \*====================================================================*/ void UsrSliderAction(     char *dialog,     char *component,     ProAppData data) {     ProName wstr;     ProCharName str;     int *angle = (int*)data;/*--------------------------------------------------------------------*\     Get the new value \*--------------------------------------------------------------------*/     ProUISliderIntegerGet(dialog,component,angle);/*--------------------------------------------------------------------*\     Set the input panel to the same value \*--------------------------------------------------------------------*/     sprintf(str,"%d",*angle);     ProStringToWstring(wstr, str);     ProUIInputpanelValueSet(dialog,"InputPanel",wstr); } /*====================================================================*\ FUNCTION : UsrInputpanelAction() PURPOSE  : Callback for input to the input panel \*====================================================================*/ void UsrInputpanelAction(     char *dialog,     char *component,     ProAppData data) {     wchar_t *wstr;     ProCharName str;     int *angle = (int*)data;/*--------------------------------------------------------------------*\     Get the current value as an integer \*--------------------------------------------------------------------*/     ProUIInputpanelValueGet(dialog,component,&wstr);     ProWstringToString(str, wstr);     *angle = atoi(str);/*--------------------------------------------------------------------*\     Set the slider to the same value \*--------------------------------------------------------------------*/     ProUISliderIntegerSet(dialog,"Slider",*angle); }/*====================================================================*\ FUNCTION : UsrAngleGet() PURPOSE  : Input an angle using a dialog with a slider \*====================================================================*/ int UsrAngleGet(     char *text, /* Text of the prompt displayed on the dialog */     int *angle) {     int status;     ProName wstr;     ProCharName str;     ProLine wline;/*--------------------------------------------------------------------*\     Load the dialog from the resource file \*--------------------------------------------------------------------*/     ProUIDialogCreate("angle","angle");/*--------------------------------------------------------------------*\     Set the prompt as the text of the Label component \*--------------------------------------------------------------------*/     ProStringToWstring(wline,text);     ProUILabelTextSet("angle","Prompt",wline);/*--------------------------------------------------------------------*\     Set the OK and Cancel callbacks \*--------------------------------------------------------------------*/     ProUIPushbuttonActivateActionSet("angle","OK",				     UsrSliderOKAction,NULL);    ProUIPushbuttonActivateActionSet("angle","Cancel",				     UsrSliderCancelAction,NULL);/*--------------------------------------------------------------------*\     Set the slider action and initial value \*--------------------------------------------------------------------*/     ProUISliderUpdateActionSet("angle","Slider",UsrSliderAction, angle);    ProUISliderIntegerSet("angle","Slider",*angle);/*--------------------------------------------------------------------*\     Set the input panel action and initial value \*--------------------------------------------------------------------*/     ProUIInputpanelActivateActionSet("angle","InputPanel",                                             UsrInputpanelAction,angle);     sprintf(str,"%d",*angle);     ProStringToWstring(wstr, str);     ProUIInputpanelValueSet("angle","InputPanel",wstr);/*--------------------------------------------------------------------*\     Display and activate the dialog \*--------------------------------------------------------------------*/     ProUIDialogActivate("angle",&status);/*--------------------------------------------------------------------*\     Dispose of the dialog \*--------------------------------------------------------------------*/     ProUIDialogDestroy("angle");    return(status==OK?1:0); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -