📄 configframe.cpp
字号:
void ConfigFrame::OnListFileUnsel(wxListEvent &event){ long selItem = event.GetIndex(); listCtrlReport->SetItemImage(selItem,winInfo[selItem].isCheck); curSel = -1;}void ConfigFrame::OnPaint(wxPaintEvent& event){}void ConfigFrame::OnMyButtons(wxCommandEvent &event){ wxCSConv conv(_("gb2312")); switch(event.GetId()) { case ID_LOGIN: { ShowLoginPage(); break; } case ID_RESTART: { system("init 6"); break; } case ID_SHUTDOWN: { system("init 0"); break; } case ID_NET: { ShowNetworkPage(); break; } case ID_SELALL: { int i=0; if( (buttonSel->GetLabel()).Contains(wxString("全选",conv)) ) { for(i=0;i<MAX_WIN;i++){ if(winInfo[i].port > 0) { if(winInfo[i].isCheck ==0) winInfo[i].isCheck = 2; } listCtrlReport->SetItemImage(i,winInfo[i].isCheck); } buttonSel->SetLabel(wxString("全否",conv)); }else{ buttonSel->SetLabel(wxString("全选",conv)); for(i=0;i<MAX_WIN;i++){ if(winInfo[i].port > 0) { winInfo[i].isCheck = 0; } listCtrlReport->SetItemImage(i,winInfo[i].isCheck); } } break; } case ID_OUTPUT: { struct sockaddr_in client_addr; int listenfd; memset(&client_addr, 0, sizeof(client_addr)); char szSQL[256]; int selNums =0; MYSQL_RES *res ; int devCount; memset(szSQL,0,sizeof(szSQL)); //发送socket请求 listenfd = socket(AF_INET, SOCK_STREAM, 0); if(listenfd < 0) { return; } client_addr.sin_family = AF_INET; if(m_radioHAlign->GetValue() == 1) client_addr.sin_port = htons(5100); else client_addr.sin_port = htons(5101); wxString str= odc2->GetValue(); inet_aton((const char *)str.mb_str(wxConvUTF8), &client_addr.sin_addr); if(connect(listenfd, (struct sockaddr*)&client_addr, sizeof(struct sockaddr)) == -1) { wxMessageBox(wxString("连接服务器失败!",conv),wxString("错误",conv),wxOK|wxCENTRE,this,460,300); close(listenfd); return; } selNums=0; for(int i=0;i<MAX_WIN;i++) { if(winInfo[i].port > 0 && winInfo[i].isCheck) { selNums ++; listCtrlReport->SetItemBackgroundColour(i,(wxColour &)*wxGREEN); sprintf(szSQL,"select pid from serverinfolist where server_type=%d and server_ip='%s' and port=%d",winInfo[i].server_type,winInfo[i].server_ip,winInfo[i].port); if ( ! mysql_query( myData, szSQL ) ) { res = mysql_store_result( myData ) ; devCount = (int) mysql_num_rows( res ) ; if(devCount == 0) sprintf(szSQL,"insert into serverinfolist(server_type,server_ip,url,device,port,by1,by2) values(%d,'%s','%s','%s',%d,'%s',%d);",winInfo[i].server_type,winInfo[i].server_ip,winInfo[i].url,winInfo[i].device,winInfo[i].port,winInfo[i].by1,winInfo[i].by2); else sprintf(szSQL,"update serverinfolist set url='%s',device='%s',by1='%s',by2=%d where server_type=%d and server_ip='%s' and port=%d;",winInfo[i].url,winInfo[i].device,winInfo[i].by1,winInfo[i].by2,winInfo[i].server_type,winInfo[i].server_ip,winInfo[i].port); mysql_query( myData, szSQL ); if(res) mysql_free_result(res); } send(listenfd,(char *)&pRequest[i],sizeof(TRequest),0); listCtrlReport->SetItemBackgroundColour(i,wxColor(241,243,250)); listCtrlReport->SetItemImage(i,0); winInfo[i].isCheck = 0; } } if(selNums ==0) { wxMessageBox(wxString("请选择需要输出的图像!",conv),wxString("警告",conv),wxOK|wxCENTRE,this,460,300); } if(listenfd) close(listenfd); buttonSel->SetLabel(wxString("全选",conv)); break; } default: break; }}void ConfigFrame::OnSelectIPList(wxCommandEvent &event){ wxCSConv conv(_("gb2312")); // 只是用来初始化 list 列表的显示 //listCtrlReport->SetBackgroundColour(*wxWHITE); switch(event.GetId()) { case ID_IPLISTCHANGE: { //初始化操作 memset(&pRequest,0,sizeof(pRequest)); memset(&winInfo,0,sizeof(winInfo)); curSel = -1; listCtrlReport->DeleteAllItems(); wxString str= odc2->GetValue(); if(!str.Contains(wxString("服务器IP地址",conv))) { MYSQL_ROW row ; MYSQL_RES * res; wxString strName; char szSQL[256]; memset(szSQL,0,sizeof(szSQL)); if(m_radioHAlign->GetValue() == 1) { for(int i=0;i<MAX_WIN;i++) { strName.Printf(wxString("[第 %d 屏幕]",conv),i+1); listCtrlReport->InsertItem(i,0); listCtrlReport->SetItem(i,1,strName); } sprintf(szSQL,"select url,device,port,by2,by1 from serverinfolist where server_type='2' and server_ip='%s' order by pid",(const char *)str.mb_str(wxConvUTF8)); }else{ for(int i=0;i<16;i++) { strName.Printf(wxString("[第 %d 窗口]",conv),i+1); listCtrlReport->InsertItem(i,0); listCtrlReport->SetItem(i,1,strName); } sprintf(szSQL,"select url,device,port,by2,by1 from serverinfolist where server_type='3' and server_ip='%s' order by pid",(const char *)str.mb_str(wxConvUTF8)); } if ( ! mysql_query( myData, szSQL ) ) { res = mysql_store_result( myData ) ; while ( (row = mysql_fetch_row( res )) ) { listCtrlReport->SetItem(atoi(row[2])-1,2,ConvertFromStrs(row[4])); listCtrlReport->SetItem(atoi(row[2])-1,3,ConvertFromStrs(row[0])); memset(&pRequest[atoi(row[2]) -1],0,sizeof(TRequest)); memset(&winInfo[atoi(row[2]) -1],0,sizeof(TWinInfo)); pRequest[atoi(row[2]) -1].code = atoi(row[2]); sprintf(pRequest[atoi(row[2]) -1].m_strText,"%s" , row[0]); if(m_radioHAlign->GetValue() == 1) winInfo[atoi(row[2]) -1].server_type = 2; else winInfo[atoi(row[2]) -1].server_type = 3; sprintf(winInfo[atoi(row[2]) -1].by1,"%s",row[4]); sprintf(winInfo[atoi(row[2]) -1].server_ip,"%s",(const char *)(odc2->GetValue()).mb_str(wxConvUTF8)); sprintf(winInfo[atoi(row[2]) -1].url,"%s",row[0]); sprintf(winInfo[atoi(row[2]) -1].device,"%s",row[1]); winInfo[atoi(row[2]) -1].port = atoi(row[2]); winInfo[atoi(row[2]) -1].by2 = atoi(row[3]); } if(res) mysql_free_result(res); } }else { curSel = -1; memset(&pRequest,0,sizeof(pRequest)); listCtrlReport->DeleteAllItems(); } break; } default: break; }}void ConfigFrame::OnCheckBox(wxCommandEvent &event){ curSel = -1; wxCSConv conv(_("gb2312")); memset(&pRequest,0,sizeof(pRequest)); listCtrlReport->DeleteAllItems(); m_arrItems.Clear(); m_arrItems.Add( wxString("服务器IP地址列表...",conv) ); MYSQL_ROW row ; MYSQL_RES * res; int devCount; char szSQL[256]; memset(szSQL,0,sizeof(szSQL)); switch(event.GetId()) { case ID_CHECKBOX1: { if(m_radioHAlign->IsChecked()) { m_radioHAlign->SetValue(1); m_radioVAlign->SetValue(0); strcpy(szSQL,"select server_ip from serveriplist where server_code=2"); if ( ! mysql_query( myData, szSQL ) ) { res = mysql_store_result( myData ) ; devCount = (int) mysql_num_rows( res ) ; while ( (row = mysql_fetch_row( res )) ) { m_arrItems.Add(wxString(row[0],wxConvUTF8)); } if(res) mysql_free_result(res); } if(odc2) delete odc2; odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString, wxPoint(200,97), wxDefaultSize, m_arrItems, wxNO_BORDER | wxCB_READONLY //(long)0 // ); odc2->SetSelection(0); odc2->SetBackgroundColour(wxColor(241,243,250)); for(int i=0;i<MAX_WIN;i++) winInfo[i].server_type = 2; }else { m_radioHAlign->SetValue(0); m_radioVAlign->SetValue(1); strcpy(szSQL,"select server_ip from serveriplist where server_code=3"); if ( ! mysql_query( myData, szSQL ) ) { res = mysql_store_result( myData ) ; devCount = (int) mysql_num_rows( res ) ; while ( (row = mysql_fetch_row( res )) ) { m_arrItems.Add(wxString(row[0],wxConvUTF8)); } if(res) mysql_free_result(res); } if(odc2) delete odc2; odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString, wxPoint(200,97), wxDefaultSize, m_arrItems, wxNO_BORDER | wxCB_READONLY //(long)0 // ); odc2->SetSelection(0); odc2->SetBackgroundColour(wxColor(241,243,250)); for(int i=0;i<MAX_WIN;i++) winInfo[i].server_type = 3; } break; } case ID_CHECKBOX2: { if(m_radioVAlign->IsChecked()) { m_radioVAlign->SetValue(1); m_radioHAlign->SetValue(0); strcpy(szSQL,"select server_ip from serveriplist where server_code=3"); if ( ! mysql_query( myData, szSQL ) ) { res = mysql_store_result( myData ) ; devCount = (int) mysql_num_rows( res ) ; while ( (row = mysql_fetch_row( res )) ) { m_arrItems.Add(wxString(row[0],wxConvUTF8)); } if(res) mysql_free_result(res); } if(odc2) delete odc2; odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString, wxPoint(200,97), wxDefaultSize, m_arrItems, wxNO_BORDER | wxCB_READONLY //(long)0 // ); odc2->SetSelection(0); odc2->SetBackgroundColour(wxColor(241,243,250)); for(int i=0;i<MAX_WIN;i++) winInfo[i].server_type = 3; }else { m_radioVAlign->SetValue(0); m_radioHAlign->SetValue(1); strcpy(szSQL,"select server_ip from serveriplist where server_code=2"); if ( ! mysql_query( myData, szSQL ) ) { res = mysql_store_result( myData ) ; devCount = (int) mysql_num_rows( res ) ; while ( (row = mysql_fetch_row( res )) ) { m_arrItems.Add(wxString(row[0],wxConvUTF8)); } if(res) mysql_free_result(res); } if(odc2) delete odc2; odc2 = new wxOwnerDrawnComboBox(headPanel,ID_IPLISTCHANGE,wxEmptyString, wxPoint(200,97), wxDefaultSize, m_arrItems, wxNO_BORDER | wxCB_READONLY //(long)0 // ); odc2->SetSelection(0); odc2->SetBackgroundColour(wxColor(241,243,250)); for(int i=0;i<MAX_WIN;i++) winInfo[i].server_type = 2; } break; } default: break; }}ConfigFrame::~ConfigFrame(){}void ConfigFrame::ShowListPage(){ m_sizerFrame->Show(loginPage,0,0); m_sizerFrame->Show(networkPage,0,0); m_sizerFrame->Layout(); m_panel->Show(0);}void ConfigFrame::ShowLoginPage(){ m_sizerFrame->Show(loginPage,1,0); m_sizerFrame->Show(networkPage,0,0); m_sizerFrame->Layout(); m_panel->Show(1); loginPage->pEdit3->Clear();}void ConfigFrame::ShowNetworkPage(){ m_sizerFrame->Show(loginPage,0,0); m_sizerFrame->Show(networkPage,1,0); m_sizerFrame->Layout(); m_panel->Show(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -