#include "gType.h" #include "GraphLow.h" #include "GraphBase.h" #include "GlobalString.h" #include "RuntimeData.h" #include "Runtime.h" #include "Gui.h" #include "ListViewDevice.h" #define TextTopOffSet 6 #define ListLineCnt 10 #define IconVcnt 5 #define IconHcnt 10 #define HLineTextRight 780 #define HSpace 33 #define clOdd clMoneyGreen #define clEven clWhiteBlue static const char cType[8] = "类型"; static const char cIndex[8] = {"编号"}; static const char cActive[8] = {"搭载/"}; static const char cCarry[8] = {"已登记"}; static const char cVoltage[8] = {"电压"}; static const char cCurrent[8] = {"电流"}; static const char cDescp[8] = {"描述"}; static const char cUserCode[8] = {"用户码"}; static const char cAddr[8] = {"地址"}; static const char cAtr1[8] = {"特征1"}; static const char cAtr2[8] = {"特征2"}; static const char cAtr3[8] = {"特征3"}; static const char cAtr4[8] = {"特征4"}; static const int Lv0Left[5] ={ 10, 120, 280, 460, 610 }; static const int Lv1Left[6] ={ 4, 64, 164, 230, 340, 410 }; void TListViewDevice::Init() { this->DevProperty = nullptr; Tag.Reset(); Items[0].Reset(); Items[1].Reset(); Items[2].Reset(); IsShow = 0; } void TListViewDevice::SetFontSize(int size) { FontSize = size; FontHeight = GetFontHeight(FontSize); LineCount =Content.Height / FontHeight; } void TListViewDevice::SetListColWidth(int w0, int w1, int w2, int w3, int w4,int w5,int w6, int w7, int w8) { unsigned int i; ListView.ColWidth[0] = w0; ListView.ColWidth[1] = w1; ListView.ColWidth[2] = w2; ListView.ColWidth[3] = w3; ListView.ColWidth[4] = w4; ListView.ColWidth[5] = w5; ListView.ColWidth[6] = w6; ListView.ColWidth[7] = w7; ListView.ColWidth[8] = w8; ListView.ColRight[0] = ListView.ColLeft[0] + w0; for(i=1; i<9; i++){ ListView.ColLeft[i] = ListView.ColRight[i-1] +1; ListView.ColRight[i] = ListView.ColLeft[i] + ListView.ColWidth[i]; } } void TListViewDevice::RenderBackGround(void) { RectFillRender(ContentGeometry.Left, ContentGeometry.Top, ContentGeometry.Right, ContentGeometry.Bottom, ContentColor); } void TListViewDevice::RenderBackGround(unsigned int aClr) { RectFillRender(ContentGeometry.Left, ContentGeometry.Top, ContentGeometry.Right, ContentGeometry.Bottom, aClr); } void TListViewDevice::RenderContent(void) { #define FixColColor clMedGray #define OddColor clNearMoneyGreen unsigned int x,y, y2, clr; RectFillRender(Content.Left, Content.Top, Content.Right, Content.Bottom, Color); } void TListViewDevice::DrawSelfLevel0(void) { RenderBackGround(); RectFillRender(Lv.Caption.Left, Lv.Caption.Top, Lv.Caption.Right, Lv.Caption.Bottom, CaptionColor); if(LanguageEnCn == 0){ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "回路->注册信息"); }else{ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "Loop->Registered Information"); } for(int i=0; i注册信息->单回路查询 "); }else{ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "Circuit->Registered Information"); } for(int i=0; i注册信息->单回路查询->部件数据"); }else{ TextRender_string24(Lv.Caption.Left + 10, Lv.Caption.Top +4, clNearWhite, CaptionColor, "Loop->Registered Information->Single Loop->Device"); } for(int i=0; i HLineTextRight ){ DrawY = DrawY + HSpace; DrawX = Content.Left +6; } } void TListViewDevice::ShowTypeList(unsigned char aP0, unsigned char Type1, unsigned char Type2, int Is2Type, char *p, int tLen) { int i,ToDraw, Addr, DrawText ,Path,ThisLen, aFrom, Found, NewLine; if(aP0 == 0)return; if(aP0 >40) return; LastDrawX = -1; LastDrawY = -1; Path = aP0 -1; ToDraw = 0; DrawText =0; Found = 0; for(i=0; i<251; i++){ if(Is2Type){ if( (Port[Path].ExistTable[i] == 0xA5) && (( Port[Path].dTypeTable[i] == Type1) || (Port[Path].dTypeTable[i] == Type2) )){ Addr = i + 1; if(Found == 0){ aFrom = i + 1; Found = 1; } }else{ if(Found){ if(aFrom == Addr){ //Show One Addr ToDraw = 1; }else{ //Show Multi Addr ToDraw = 2; } } Found = 0; } }else{ if( (Port[Path].ExistTable[i] == 0xA5) && ( Port[Path].dTypeTable[i] == Type1 )){ Addr = i + 1; if(Found == 0){ aFrom = i + 1; Found = 1; } }else{ if(Found){ if(aFrom == Addr){ //Show One Addr ToDraw = 1; }else{ //Show Multi Addr ToDraw = 2; } } Found = 0; } } if(i == 250){ if(Found){ if(aFrom == Addr){ //Show One Addr ToDraw = 1; }else{ //Show Multi Addr ToDraw = 2; } } Found = 0; } if(ToDraw){ if(DrawText == 0){ CheckNewLine(tLen); TextRender_string24(DrawX,DrawY,clNearBlack, p); DrawX = DrawX + tLen; DrawText = 1; } if(ToDraw == 1){ if(Addr > 99){ ThisLen = 3 * 12; }else if(Addr >9){ ThisLen = 2 * 12; }else{ ThisLen = 1 * 12; } CheckNewLine(ThisLen); TextDigitRenderLeft24_1t3(DrawX,DrawY,clNearBlack,Addr); DrawX = DrawX + ThisLen; ThisLen = 1 *12; CheckNewLine(ThisLen); TextRender_string24(DrawX,DrawY,clNearBlack, ","); LastDrawX = DrawX; LastDrawY = DrawY; DrawX = DrawX + ThisLen; }else if(ToDraw == 2){ if(aFrom > 99){ ThisLen = 3 * 12; }else if(aFrom >9){ ThisLen = 2 * 12; }else{ ThisLen = 1 * 12; } CheckNewLine(ThisLen); TextDigitRenderLeft24_1t3(DrawX,DrawY,clNearBlack,aFrom); DrawX = DrawX + ThisLen; //_________________________ ThisLen = 1 *12; CheckNewLine(ThisLen); TextRender_string24(DrawX,DrawY,clNearBlack, "~"); DrawX = DrawX + ThisLen; //_________________________ if(Addr > 99){ ThisLen = 3 * 12; }else if(Addr >9){ ThisLen = 2 * 12; }else{ ThisLen = 1 * 12; } CheckNewLine(ThisLen); TextDigitRenderLeft24_1t3(DrawX,DrawY,clNearBlack,Addr); DrawX = DrawX + ThisLen; ThisLen = 1 *12; CheckNewLine(ThisLen); TextRender_string24(DrawX,DrawY,clNearBlack, ","); LastDrawX = DrawX; LastDrawY = DrawY; DrawX = DrawX + ThisLen; } ToDraw = 0; } } if(DrawText){ if(LastDrawX >0){ TextRender_string24(LastDrawX,LastDrawY,clNearBlack, Color, " "); if( (LastDrawX + 36) < HLineTextRight){ TextRender_string24(LastDrawX,LastDrawY,clNearBlack, Color, " "); DrawX = DrawX + 32; }else{ DrawY = DrawY + HSpace; DrawX = Content.Left +6; } } TypeCharHasShow = 1; } } void TListViewDevice::ClearSpliteCount() { Count.Smoke =0; Count.Tempe =0; Count.HandReport =0; Count.HydKp =0; Count.ModuleInput =0; Count.ModuleInOut =0; Count.ModuleOutput =0; Count.Va =0; Count.FDisplay =0; Count.cOther =0; Count.SmokeTempe = 0; Count.Tt = 0; } void TListViewDevice::GetSpliteCount(unsigned char aP0) { unsigned int sPath0,sPath1,aType0,aType1; int i, j; unsigned int aIndex, aCount; unsigned char aType; ClearSpliteCount(); if(aP0 == 0) return; if(aP0 > dPORT_MAX_COUNT)return; i = aP0-1; if(MainCtl.fData.Split.ExistTablePort[i] == 0xA5){ for(j=0; j<250; j++){ if(Port[i].ExistTable[j] == 0xA5){ aType = Port[i].dTypeTable[j]; //if( (Port[i].StateTable[j] & (dEpStateBitFault + dEpStateBitMask)) == 0) { if(1){ if(aType == 0){ //Count.cOther++; //Count.Tt++; }else if( (aType == dgTYPE_SMOKE_DETECTOR) ){ Count.Smoke++; Count.Tt++; }else if( aType == dgTYPE_TEMPE_DETECTOR ){ Count.Tempe++; Count.Tt++; }else if( (aType == dgTYPE_HAND_REPORT ) ){ Count.HandReport++; Count.Tt++; }else if( (aType == dgTYPE_FIRE_HydrantKp ) ){ Count.HydKp++; Count.Tt++; }else if( (aType == dgTYPE_IN_MODULE ) ){ Count.ModuleInput++; Count.Tt++; }else if( (aType == dgTYPE_INOUT_MODULE_NonSource) || (aType == dgTYPE_INOUT_MODULE_Source) ){ Count.ModuleInOut++; Count.Tt++; }else if( (aType == dgTYPE_OUT_MODULE) ){ Count.ModuleOutput++; Count.Tt++; }else if( (aType == dgType_VAALRAM ) ){ Count.Va++; Count.Tt++; }else if( aType == dgTYPE_DISPLAY_PAD ){ Count.FDisplay++; Count.Tt++; }else if(aType == dgTYPE_SMOKE_TEMPE_DETECTOR ){ Count.SmokeTempe++; Count.Tt++; }else{ Count.cOther++; Count.Tt++; } } } } } } void TListViewDevice::ShowFig(unsigned char aP0) { RectFillRender(Content.Left, Content.Top+42, Content.Right, Content.Bottom, Color); TextRender_string24(Content.Left+20, Content.Top+42 + 0*32 , clNearBlack, "烟感:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 1*32 , clNearBlack, "温感:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 2*32 , clNearBlack, "输入模块:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 3*32 , clNearBlack, "输出模块:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 4*32 , clNearBlack, "手报:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 5*32 , clNearBlack, "消钮:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 6*32 , clNearBlack, "输入输出模块:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 7*32 , clNearBlack, "层显:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 8*32 , clNearBlack, "声光警报器:" ); TextRender_string24(Content.Left+20, Content.Top+42 + 9*32 , clNearBlack, "其他:" ); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 0*32 ,clNearBlack, Count.Smoke); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 1*32 ,clNearBlack, Count.Tempe); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 2*32 ,clNearBlack, Count.ModuleInput); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 3*32 ,clNearBlack, Count.ModuleOutput); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 4*32 ,clNearBlack, Count.HandReport); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 5*32 ,clNearBlack, Count.HydKp); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 6*32 ,clNearBlack, Count.ModuleInOut); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 7*32 ,clNearBlack, Count.FDisplay); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 8*32 ,clNearBlack, Count.Va); TextDigitRender3Right24(Content.Left+200, Content.Top+42 + 9*32 ,clNearBlack, Count.cOther); TextRender_string24(Content.Left+420, Content.Top+42 + 0*32 , clNearBlack, "烟温一体:" ); TextDigitRender3Right24(Content.Left+600, Content.Top+42 + 0*32 ,clNearBlack, Count.SmokeTempe); } void TListViewDevice::ShowCount(unsigned char aP0) { DrawX = Content.Left +6; DrawY = Content.Top + 42; //dgTYPE_SMOKE_DETECTOR, //dgTYPE_TEMPE_DETECTOR, //dgTYPE_HAND_REPORT, //dgTYPE_FIRE_hydrant_Kp, //dgTYPE_IN_MODULE, //dgTYPE_OUT_MODULE, //dgTYPE_INOUT_MODULE_NonSource, //dgTYPE_INOUT_MODULE_Source, //dgType_VAALRAM, //dgTYPE_DISPLAY_PAD RectFillRender(Content.Left, Content.Top+42, Content.Right, Content.Bottom, Color); TypeCharHasShow = 0; if(MainCtl.fData.Split.ExistTablePort[aP0-1] == 0xA5){ ShowTypeList(aP0, dgTYPE_SMOKE_DETECTOR, 0, 0, "烟感:", 5*12); ShowTypeList(aP0, dgTYPE_TEMPE_DETECTOR, 0, 0, "温感:", 5*12); ShowTypeList(aP0, dgTYPE_IN_MODULE, 0, 0, "输入模块:", 9*12); ShowTypeList(aP0, dgTYPE_OUT_MODULE, 0, 0, "输出模块:", 9*12); ShowTypeList(aP0, dgTYPE_HAND_REPORT, 0, 0, "手报:", 5*12); ShowTypeList(aP0, dgTYPE_FIRE_HydrantKp, 0, 0, "消钮:", 5*12); ShowTypeList(aP0, dgTYPE_INOUT_MODULE_NonSource, dgTYPE_INOUT_MODULE_Source, 1, "输入输出模块:", 13*12); ShowTypeList(aP0, dgTYPE_DISPLAY_PAD, 0, 0, "层显:", 5*12); ShowTypeList(aP0, dgType_VAALRAM, 0, 0, "声光警报器:", 11*12); ShowTypeList(aP0, dgTYPE_SMOKE_TEMPE_DETECTOR, 0, 0, "烟温一体:", 5*12); } if(TypeCharHasShow == 0){ TextRender_string24(Content.Left, Content.Top+42, clNearBlack, "本回路未挂载终端设备" ); } } void TListViewDevice::DrawList(void) { int i,t,x,y; unsigned int tAddr; unsigned int ExistCnt, cnt, aP0, aP1, dType; if(Tag.ViewingLevel == 0){ for(i=0, t=Items[0].TopInx; (i<8) && (tFullRedraw(Prm); } } }else if(Prm == 1){ RectFillRender(GuiRedrawDataList[1][0], GuiRedrawDataList[1][1], GuiRedrawDataList[1][2], GuiRedrawDataList[1][3], Color); Caption.Enable = 1; if(Tag.ViewingLevel == 0){ DrawSelfLevel0(); DrawList(); Check4SelectedLv0(); }else if(Tag.ViewingLevel == 1){ DrawSelfLevel1(); DrawList(); Check4SelectedLv1(); }else if(Tag.ViewingLevel == 2){ if(DevProperty != nullptr){ DevProperty->FullRedraw(Prm); } } } } void TListViewDevice::ShowCircuitDet() { if(IsPath0Found){ TextRender_string24(Content.Left + 200,Content.Top + 4,clNearBlack, Color, " " ); TextRender_string24(Content.Left + 260,Content.Top + 4,clNearBlack, Color, "设备数量: " ); TextDigitRender3Right24(Content.Left + 368,Content.Top + 4,clNearBlack, Count.Tt); TextRender_string24(Content.Left + 540,Content.Top + 4,clNearBlack, "左右键切换显示内容" ); }else{ TextRender_string24(Content.Left + 200,Content.Top + 4,clNearBlack, Color, "此回路未登记 " ); TextRender_string24(Content.Left + 540,Content.Top + 4,clNearBlack, Color, " " ); } } void TListViewDevice::CalcIconDrawPrm(void) { } TGuiMsgReturn TListViewDevice::QueryKeyIn(unsigned char aKey) { TGuiMsgReturn aMsg; aMsg = DevProperty->KeyIn(aKey); if(aMsg == guiMsgReturn){ return guiMsgReturn; } return guiMsgNone; } TGuiMsgReturn TListViewDevice::EditKeyIn(unsigned char aKey) { TGuiMsgReturn aMsg; //editting return guiMsgNone; } void TListViewDevice::ClearSelectedLv0(void) { int iT; iT = Tag.Level[0].Inx + 2; if(iT > 9)return; RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + Lv.Grid.Right[iT], Lv.Grid.Top[iT] + 3, ItemColor); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + 3, Lv.Grid.Bottom[iT], ItemColor); //draw rectangle RectFillRender(Lv.Grid.Right[iT] -3, Lv.Grid.Top[iT], Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], ItemColor); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Bottom[iT] -3, Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], ItemColor); //draw rectangle } void TListViewDevice::Check4SelectedLv0(void) { int iT; iT = Tag.Level[0].Inx + 2; if(iT > 9)return; RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + Lv.Grid.Right[iT], Lv.Grid.Top[iT] + 3, clBlue); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + 3, Lv.Grid.Bottom[iT], clBlue); //draw rectangle RectFillRender(Lv.Grid.Right[iT] -3, Lv.Grid.Top[iT], Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], clBlue); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Bottom[iT] -3, Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], clBlue); //draw rectangle } void TListViewDevice::ClearSelectedLv1(void) { int iT; iT = Tag.Level[1].Inx + 2; if(iT > 9)return; RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + Lv.Grid.Right[iT], Lv.Grid.Top[iT] + 3, ItemColor); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + 3, Lv.Grid.Bottom[iT], ItemColor); //draw rectangle RectFillRender(Lv.Grid.Right[iT] -3, Lv.Grid.Top[iT], Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], ItemColor); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Bottom[iT] -3, Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], ItemColor); //draw rectangle } void TListViewDevice::Check4SelectedLv1(void) { int iT; iT = Tag.Level[1].Inx + 2; if(iT > 9)return; RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + Lv.Grid.Right[iT], Lv.Grid.Top[iT] + 3, clBlue); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Top[iT], Lv.Grid.Left[iT] + 3, Lv.Grid.Bottom[iT], clBlue); //draw rectangle RectFillRender(Lv.Grid.Right[iT] -3, Lv.Grid.Top[iT], Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], clBlue); //draw rectangle RectFillRender(Lv.Grid.Left[iT], Lv.Grid.Bottom[iT] -3, Lv.Grid.Right[iT], Lv.Grid.Bottom[iT], clBlue); //draw rectangle } TGuiMsgReturn TListViewDevice::KeyIn(unsigned char aKey) { int ind,i,aIndex, Found; unsigned char aP0; TGuiMsgReturn aMsg = guiMsgNone; TGuiMsgReturn aMsg2Rtn = guiMsgNone; //Up or Down One Index___________________ if(Tag.ViewingLevel == 0){ if(VK_LEFT ==aKey){ }else if(VK_RIGHT == aKey){ }else if(VK_UP == aKey){ if(Tag.Level[0].Inx >0){ ClearSelectedLv0(); Tag.Level[0].Inx--; Items[0].Inx--; Items[0].Path = Items[0].Item[Items[0].Inx]; Check4SelectedLv0(); }else{ if(Items[0].Inx >0){ Items[0].Inx--; Items[0].Path = Items[0].Item[Items[0].Inx]; Items[0].TopInx = Items[0].Inx; DrawList(); } } }else if(VK_DOWN == aKey){ if(Tag.Level[0].Inx < 7){ if(Items[0].Inx < (Items[0].Count-1)){ ClearSelectedLv0(); Tag.Level[0].Inx++; Items[0].Inx++; Items[0].Path = Items[0].Item[Items[0].Inx]; Check4SelectedLv0(); } }else{ Tag.Level[0].Inx = 7; if(Items[0].Inx < (Items[0].Count-1)){ Items[0].Inx++; Items[0].Path = Items[0].Item[Items[0].Inx]; Items[0].TopInx++; if(Items[0].TopInx <0)Items[0].TopInx =0; DrawList(); } } }else if(aKey == VK_TAB){ }else if(aKey == VK_EXECUTE){ //Open path Device if(Items[0].Count > 0){ if(Items[0].Inx < Items[0].Count){ if(Items[0].Path < dPORT_MAX_COUNT){ Tag.ViewingLevel = 1; Tag.Level[1].Inx = 0; Items[1].TopInx = 0; Items[1].Inx = 0; Items[1].Path = Items[1].Inx; RenderBackGround(); DrawSelfLevel1(); DrawList(); Check4SelectedLv1(); } } } }else if(aKey == VK_RETURN){ aMsg = guiMsgReturn; }else{ } }else if(Tag.ViewingLevel == 1){ if(VK_LEFT ==aKey){ int GoInx; if(Items[1].TopInx <1){ GoInx = 248; Items[1].Inx = GoInx; Items[1].TopInx = GoInx; }else{ GoInx = (Items[1].Inx / 8 -1) * 8; if(GoInx <0)GoInx = 0; Items[1].Inx = GoInx; Items[1].TopInx = GoInx; } Items[1].Path = Items[1].Inx; DrawList(); ClearSelectedLv1(); Tag.Level[1].Inx = 0; Check4SelectedLv1(); }else if(VK_RIGHT == aKey){ int GoInx; GoInx = (Items[1].Inx / 8 +1) * 8; if(GoInx > 248)GoInx = 0; Items[1].Inx = GoInx; Items[1].TopInx = GoInx; Items[1].Path = Items[1].Inx; DrawList(); ClearSelectedLv1(); Tag.Level[1].Inx = 0; Check4SelectedLv1(); }else if(VK_UP == aKey){ if(Tag.Level[1].Inx >0){ ClearSelectedLv1(); Tag.Level[1].Inx--; Items[1].Inx--; Items[1].Path = Items[1].Inx; Check4SelectedLv1(); }else{ if(Items[1].Inx >0){ Items[1].Inx--; Items[1].TopInx = Items[1].Inx; Items[1].Path = Items[1].Inx; DrawList(); } } }else if(VK_DOWN == aKey){ if(Tag.Level[1].Inx < 7){ if(Items[1].Inx < (dEP_MAX_COUNT_PER_PORT-1)){ ClearSelectedLv1(); Tag.Level[1].Inx++; Items[1].Inx++; Items[1].Path = Items[1].Inx; Check4SelectedLv1(); } }else{ Tag.Level[1].Inx = 7; if(Items[1].Inx < (dEP_MAX_COUNT_PER_PORT-1)){ Items[1].TopInx++; Items[1].Inx++; Items[1].Path = Items[1].Inx; DrawList(); } } }else if(aKey == VK_TAB){ }else if(aKey == VK_EXECUTE){ this->DevProperty->Init(TDevProperty::htNoType, 1); this->DevProperty->aPanel = this->aPanel; this->DevProperty->IList = this->IList; this->DevProperty->IList->RealtimeData.Reset(); this->DevProperty->IList->TextOutClear(); this->DevProperty->SetPath(MainCtl.fData.Split.MyNum, Items[0].Path+1, Items[1].Path+1); this->DevProperty->Show(); this->DevProperty->Init4DType(); this->DevProperty->DrawCommonInfTitle(); this->DevProperty->RenewCommonInf(); Tag.ViewingLevel = 2; }else if(aKey == VK_RETURN){ Tag.ViewingLevel = 0; DrawSelfLevel0(); DrawList(); Check4SelectedLv0(); }else{ } }else if(Tag.ViewingLevel == 2){ aMsg2Rtn = this->DevProperty->KeyIn(aKey); if(aMsg2Rtn == guiMsgReturn){ Tag.ViewingLevel = 1; RenderBackGround(); DrawSelfLevel1(); DrawList(); Check4SelectedLv1(); } } //____________________________________________________________________<- List View return aMsg; } void TListViewDevice::ClearPath(void) { ListView.TopIndex = 0; } void TListViewDevice::ClearPath1(void) { ListView.TopIndex = 0; } void TListViewDevice::LoadPath0Item() { for(int i=0; i40){ return; } aP0--; theRDev = &Port[aP0]; if(theRDev->fData.Common.dType == dgTYPE_PORT){ px = theRDev->fData.Port.Id; if(px){ ItemEnter.Path0 = px; px--; thePort = (TPort *)theRDev; ClearPath1(); for(i=0; i< dEP_MAX_COUNT_PER_PORT; i++){ if(Port[px].ExistTable[i] == 0xA5) LoadPath1Item(&EpDev[px][i]); } } } ListView.SelectedCol = 0; ListView.TopIndex = 0; } void TListViewDevice::SetEditMode(unsigned int aMode) { EditMode = aMode; }