📄 sample4_10.c
字号:
#include "pwctrl.h"#include "animate.h"#include "easytab.h"#include "toolbar.h"#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */#include <userint.h>#include "sample4_10.h"#define IMAGE_HELP "buttons/help.ico" #define IMAGE_GO "buttons/go.ico"#define IMAGE_STOP "buttons/stop.ico"#define IMAGE_ANIMATEPROPERTY "buttons/bydate.ico"int panelHandle,panelTemp,panelTab1,panelTab2;int tabCtrl,animateCtrl,passwordCtrl; ToolbarType gToolbar; int cycle=0,check[9]={1,1,1,1,1,1,1,1,1};double interval=0.1;ToolbarType InstallToolBar(int panel); int main (int argc, char *argv[]){ if (InitCVIRTE (0, argv, 0) == 0) /* Needed if linking in external compiler; harmless otherwise */ return -1; /* out of memory */ if ((panelHandle = LoadPanel (0, "sample4_10.uir", PANEL)) < 0) return -1; SetCtrlAttribute (panelHandle, PANEL_QUIT, ATTR_VISIBLE, 0); gToolbar=InstallToolBar(panelHandle); animateCtrl=AnimateCtrl_ConvertFromPictRing(panelHandle, PANEL_PICTURERING); AnimateCtrl_SetAttribute (panelHandle, animateCtrl, ATTR_ANIMATE_FRAME_INTERVAL,0.1); AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_STOP_ON_LAST_FRAME, 1); DisplayPanel (panelHandle); RunUserInterface (); Toolbar_Discard(gToolbar); gToolbar = 0; return 0;}void CVICALLBACK Quit (int menuBar, int menuItem, void *callbackData, int panel){ QuitUserInterface (0);}void CVICALLBACK animateProperty (int menuBar, int menuItem, void *callbackData, int panel) { panelTemp=LoadPanel(0, "sample4_10.uir", PANELPW); passwordCtrl=PasswordCtrl_ConvertFromString (panelTemp, PANELPW_PASSWORD); PasswordCtrl_SetAttribute (panelTemp, passwordCtrl, ATTR_PASSWORD_MASK_CHARACTER, '*'); PasswordCtrl_SetAttribute (panelTemp, passwordCtrl, ATTR_PASSWORD_MAX_LENGTH, 8); InstallPopup(panelTemp); }void CVICALLBACK help (int menuBar, int menuItem, void *callbackData, int panel){ MessagePopup("Help","This is the sample program for toolbar,animation,easy tab&password");}ToolbarType InstallToolBar(int panel){ ToolbarType toolbar; int i; if (Toolbar_New (panel, GetPanelMenuBar(panel), "", 0, 0, 1, 1, &toolbar) < 0) return 0; Toolbar_InsertItem (toolbar, END_OF_LIST, kSeparator, 1, NULL, kNoCallback, 0, NULL, NULL, NULL); Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "开始运动", kMenuCallback, MENU_FILE_RUN, NULL, NULL, IMAGE_GO); Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "停止运动", kMenuCallback, MENU_FILE_STOP, NULL, NULL, IMAGE_STOP); Toolbar_InsertItem (toolbar, END_OF_LIST, kSeparator, 1, NULL, kNoCallback, 0, NULL, NULL, NULL); Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "动画属性", kMenuCallback, MENU_TOOL_ANIMATEPROPERTY, NULL, NULL, IMAGE_ANIMATEPROPERTY); Toolbar_InsertItem (toolbar, END_OF_LIST, kSeparator, 1, NULL, kNoCallback, 0, NULL, NULL, NULL); Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "帮助信息", kMenuCallback, MENU_HELP, NULL, NULL, IMAGE_HELP); Toolbar_Display (toolbar); return toolbar;}int CVICALLBACK Quit1 (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0;}int CVICALLBACK Done (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int i; char path[255]={""},temp[10]; switch (event) { case EVENT_COMMIT: //////////////// GetCtrlVal (panelTab2, ANIMATE2_BINARYSWITCH, &cycle); AnimateCtrl_SetAttribute (panelHandle, animateCtrl, ATTR_ANIMATE_STOP_ON_LAST_FRAME, cycle==0); GetCtrlVal (panelTab2, ANIMATE2_NUMERIC, &interval); AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_FRAME_INTERVAL, interval); for(i=0;i<9;i++) { GetCtrlVal (panelTab1, 10-i, &check[i]); if(check[i]) { sprintf(temp,"(F=%d)",i); strcat(path,temp); } } AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_PATH, path); DiscardPanel(panelTemp); break; } return 0;}int CVICALLBACK Password (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char password[15]; int i; switch (event) { case EVENT_COMMIT: PasswordCtrl_GetAttribute (panelTemp, passwordCtrl, ATTR_PASSWORD_VAL, password); if(strcmp(password,"11111111")==0) { DiscardPanel(panelTemp); panelTemp=LoadPanel(0, "sample4_10.uir", PANELTAB); tabCtrl = EasyTab_ConvertFromCanvas(panelTemp, PANELTAB_CANVAS); EasyTab_LoadPanels (panelTemp, tabCtrl, 1, "sample4_10.uir", __CVIUserHInst, ANIMATE1, &panelTab1, ANIMATE2, &panelTab2,0); //init data SetCtrlVal (panelTab2, ANIMATE2_BINARYSWITCH, cycle); SetCtrlVal (panelTab2, ANIMATE2_NUMERIC, interval); for(i=0;i<9;i++) SetCtrlVal (panelTab1, 10-i, check[i]); InstallPopup(panelTemp); } else { MessagePopup("ERROR","Your input is error"); DiscardPanel(panelTemp); } break; } return 0;}int CVICALLBACK Cancel (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: DiscardPanel(panelTemp); break; } return 0;}int CVICALLBACK Run (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 1); break; } return 0;}int CVICALLBACK Stop (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 0); break; } return 0;}void CVICALLBACK Run1 (int menuBar, int menuItem, void *callbackData, int panel){ AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 1);}void CVICALLBACK Stop1 (int menuBar, int menuItem, void *callbackData, int panel){ AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 0);}int CVICALLBACK Animation (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_RIGHT_CLICK: animateProperty(0,0,0,0); break; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -