void free_recursive_labels( tsPlotGraphData data , tsLabelItem *pCurrentLabel ) { if ( pCurrentLabel == NULL ) return; free_recursive_labels(data,pCurrentLabel->pNextLabel); DiscardCtrl ( data.panel , pCurrentLabel->controlID ); free(pCurrentLabel); return; }
/* 菜单栏-Switch View Mode-切换视图 */ void CVICALLBACK switchViewMode(int menuBar, int menuItem, void *callbackData, int panel){ if(CPanels[0] <=0 && TPanels[0]<=0) return; int tempReceiveFlag = receiveFlag; pauseDataAcq(); if(tabFlag == 0){ //Child-Panel => Tab-Pages //创建Tab if(tabCtrl <=0){ tabWidth = pWidth-extraRight-averSpaceH; tabHeight = pHeight - averSpaceV*2 + 12; tabCtrl = NewCtrl(panelHdl, CTRL_TABS, "", mHeight + 5, averSpaceH); SetCtrlAttribute(panelHdl, tabCtrl, ATTR_WIDTH, tabWidth); SetCtrlAttribute(panelHdl, tabCtrl, ATTR_HEIGHT, tabHeight); } for(int i=0; i<validMonNum; i++){ InsertPanelAsTabPage(panelHdl, tabCtrl, -1, CPanels[i]); } for(int i=0; i<validMonNum; i++){ GetPanelHandleFromTabPage(panelHdl, tabCtrl, i, &TPanels[i]); SetCtrlAttribute(TPanels[i], PGraphs[i], ATTR_WIDTH, tabWidth-3); SetCtrlAttribute(TPanels[i], PGraphs[i], ATTR_HEIGHT, tabHeight-15); SetAxisScalingMode(TPanels[i], PGraphs[i], VAL_LEFT_YAXIS, graphScaleMode, yAxisRange[0], yAxisRange[1]); SetCtrlAttribute(TPanels[i], PGraphs[i], ATTR_YFORMAT,VAL_FLOATING_PT_FORMAT); SetCtrlAttribute (TPanels[i], PGraphs[i], ATTR_POINTS_PER_SCREEN, 40); } tabFlag = 1; for(int i=0; i<validMonNum; i++){ DiscardPanel(CPanels[i]); CPanels[i] = 0; } }else{ //Tab-Pages => Child-Panel for(int i=0; i<validMonNum; i++){ CPanels[i] = ConvertTabPageToChildPanel(panelHdl, tabCtrl, i); SetCtrlAttribute(CPanels[i], PGraphs[i], ATTR_WIDTH, cWidth); SetCtrlAttribute(CPanels[i], PGraphs[i], ATTR_HEIGHT, cHeight); } for(int i=0; i<validMonNum; i++){ if(PGraphs[i]>0){ SetCtrlAttribute(CPanels[i], PGraphs[i], ATTR_WIDTH, cWidth); SetCtrlAttribute(CPanels[i], PGraphs[i], ATTR_WIDTH, cWidth); SetCtrlAttribute (CPanels[i], PGraphs[i], ATTR_POINTS_PER_SCREEN, 24); } } tabFlag = 0; for(int i=0; i<validMonNum; i++){ DisplayPanel(CPanels[i]); TPanels[i] = 0; } DiscardCtrl(panelHdl, tabCtrl); tabCtrl = 0; }//else receiveFlag = tempReceiveFlag; if(receiveFlag == 0){ if(tabFlag == 0){ for(int i=0; i<validMonNum; i++) PlotStripChart(CPanels[i], PGraphs[i], resultData[i], READ_LENGTH/24, 0, 0, VAL_DOUBLE); }else{ PlotStripChart(TPanels[0], PGraphs[0], resultData[0], READ_LENGTH/24, 0, 0, VAL_DOUBLE); } }else{ startDataAcq(); } }