📄 movedemo.c
字号:
#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */#include <ansi_c.h>#include <userint.h>#include "movedemo.h"#include "movectrl.h"/***********//* Globals *//***********/int mainPanel, movableCtrlPanel;/*******************************//* Private Function Prototypes *//*******************************/static void InsertPanelControlsIntoRing (int panel, int ringPanel, int ringCtrl);static void UpdateSettingCheckBoxes (int panel);/*************//* Functions *//*************/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 */ mainPanel = LoadPanel (0, "movedemo.uir", PANEL); movableCtrlPanel = LoadPanel (mainPanel, "movedemo.uir", MOVABLE); SetPanelPos (movableCtrlPanel, 14, 24); MakeMovableCtrl (movableCtrlPanel, -1, "", 1, 1, 1, 1); InsertPanelControlsIntoRing (movableCtrlPanel, mainPanel, PANEL_CTRLRING); DisplayPanel (movableCtrlPanel); DisplayPanel (mainPanel); RunUserInterface (); DiscardPanel (mainPanel); return 0;}static void InsertPanelControlsIntoRing (int panel, int ringPanel, int ringCtrl){ int ctrl, ctrlStyle; char ctrlName[256]; GetPanelAttribute (panel, ATTR_PANEL_FIRST_CTRL, &ctrl); while (ctrl > 0) { GetCtrlAttribute (panel, ctrl, ATTR_CTRL_STYLE, &ctrlStyle); /* Check to see the type of control */ if ((ctrlStyle >= CTRL_RAISED_BOX) && (ctrlStyle <= CTRL_FLAT_ROUNDED_BOX)) strcpy (ctrlName, "CTRL_DECORATION"); /* decoration */ else if (ctrlStyle == CTRL_TEXT_MSG) GetCtrlVal (panel, ctrl, ctrlName); /* text msg */ else GetCtrlAttribute (panel, ctrl, ATTR_LABEL_TEXT, ctrlName); InsertListItem (ringPanel, ringCtrl, -1, ctrlName, ctrl); GetCtrlAttribute (panel, ctrl, ATTR_NEXT_CTRL, &ctrl); } UpdateSettingCheckBoxes (ringPanel);}static void UpdateSettingCheckBoxes (int panel){ int ctrlID, movable, sizable, labelMovable; GetCtrlVal (panel, PANEL_CTRLRING, &ctrlID); GetMovableCtrlAttribute (movableCtrlPanel, ctrlID, MOVECTRL_ATTR_CTRL_MOVABLE, &movable); GetMovableCtrlAttribute (movableCtrlPanel, ctrlID, MOVECTRL_ATTR_CTRL_SIZABLE, &sizable); GetMovableCtrlAttribute (movableCtrlPanel, ctrlID, MOVECTRL_ATTR_LABEL_MOVABLE, &labelMovable); SetCtrlVal (panel, PANEL_MOVABLE, movable); SetCtrlVal (panel, PANEL_SIZABLE, sizable); SetCtrlVal (panel, PANEL_LABELMOVABLE, labelMovable);}int CVICALLBACK ShutDown (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0;}int CVICALLBACK ShowHelp (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int helpPanel, eventPanel, eventControl; switch (event) { case EVENT_COMMIT: helpPanel = LoadPanel (0, "movedemo.uir", HELPPANEL); InstallPopup (helpPanel); GetUserEvent (1, &eventPanel, &eventControl); RemovePopup (0); break; } return 0;}int CVICALLBACK SaveSettings (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char configName[256]; int numItems, prevIndex; switch (event) { case EVENT_COMMIT: GetCtrlVal (panel, PANEL_CONFIGNAME, configName); SaveMovableCtrlSettings (movableCtrlPanel, -1, configName); /* Put name in history list (if it's not already there) */ GetIndexFromValue (panel, PANEL_NAMEHISTORY, &prevIndex, configName); if (prevIndex == -1) { InsertListItem (panel, PANEL_NAMEHISTORY, -1, configName, configName); GetNumListItems (panel, PANEL_NAMEHISTORY, &numItems); SetCtrlIndex (panel, PANEL_NAMEHISTORY, numItems - 1); } break; } return 0;}int CVICALLBACK LoadSettings (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char configName[256]; switch (event) { case EVENT_COMMIT: GetCtrlVal (panel, PANEL_CONFIGNAME, configName); LoadMovableCtrlSettings (movableCtrlPanel, -1, configName); UpdateSettingCheckBoxes (panel); break; } return 0;}int CVICALLBACK SetSizable (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int ctrlID, sizable; switch (event) { case EVENT_COMMIT: GetCtrlVal (panel, PANEL_CTRLRING, &ctrlID); GetCtrlVal (panel, control, &sizable); SetMovableCtrlAttribute (movableCtrlPanel, ctrlID, MOVECTRL_ATTR_CTRL_SIZABLE, sizable); break; } return 0;}int CVICALLBACK SetLabelMovable (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int ctrlID, labelMovable; switch (event) { case EVENT_COMMIT: GetCtrlVal (panel, PANEL_CTRLRING, &ctrlID); GetCtrlVal (panel, control, &labelMovable); SetMovableCtrlAttribute (movableCtrlPanel, ctrlID, MOVECTRL_ATTR_LABEL_MOVABLE, labelMovable); break; } return 0;}int CVICALLBACK SetMovable (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int ctrlID, movable; switch (event) { case EVENT_COMMIT: GetCtrlVal (panel, PANEL_CTRLRING, &ctrlID); GetCtrlVal (panel, control, &movable); SetMovableCtrlAttribute (movableCtrlPanel, ctrlID, MOVECTRL_ATTR_CTRL_MOVABLE, movable); break; } return 0;}int CVICALLBACK ChangeCtrl (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: UpdateSettingCheckBoxes (panel); break; } return 0;}int CVICALLBACK SelectHistoryItem (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char configName[256]; switch (event) { case EVENT_COMMIT: GetCtrlVal (panel, PANEL_NAMEHISTORY, configName); SetCtrlVal (panel, PANEL_CONFIGNAME, configName); break; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -