📄 mainfrm.cpp
字号:
m_displayer.OnDeleteVisualObject();
break;
case VK_ESCAPE:
if( m_displayer.GetStyle() & WS_MAXIMIZE){
m_displayer.doFullScreen();
}
break;
default:
break;
}
CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CMainFrame::OnMonitorCommand(UINT nID)
{
switch( nID ) {
case ID_MONITOR_CONNECT:
m_soccerMonior.doCommand(CmdConnect);
break;
case ID_MONITOR_DISCONNECT:
m_soccerMonior.doCommand(CmdDisconnect);
break;
case ID_MONITOR_RECONNECT:
m_soccerMonior.doCommand(CmdReconnect);
break;
case ID_MONITOR_KICKOFF:
m_soccerMonior.doCommand(CmdKickoff);
break;
case ID_MONITOR_DROPBALL:
m_soccerMonior.doCommand(CmdDropball,m_displayer.getSelectedPoint());
break;
case ID_MONITOR_FOULLEFT:
m_soccerMonior.doCommand(CmdFoulleft,m_displayer.getSelectedPoint());
break;
case ID_MONITOR_FOULRIGHT:
m_soccerMonior.doCommand(CmdFoulright,m_displayer.getSelectedPoint());
break;
case ID_MONITOR_MOVEPLAYER:
m_soccerMonior.doCommand(CmdMoveplayer,m_displayer.getSelectedSide(),m_displayer.getSelectedNum(),m_displayer.getSelectedPoint());
case ID_MONITOR_DISCARDPLAYER:
m_soccerMonior.doCommand(CmdDiscard,m_displayer.getSelectedSide(),m_displayer.getSelectedNum());
break;
case ID_MONITOR_SAVELOG:
m_logPlayer.DoCommand(CmdSaveLog);
break;
default:
break;
};
}
void CMainFrame::OnUpdateMonitorCommand(CCmdUI *pCmdUI)
{
switch( pCmdUI->m_nID ) {
case ID_MONITOR_CONNECT:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdConnect));
break;
case ID_MONITOR_DISCONNECT:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdDisconnect));
break;
case ID_MONITOR_RECONNECT:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdReconnect));
break;
case ID_MONITOR_KICKOFF:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdKickoff));
break;
case ID_MONITOR_DROPBALL:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdDropball));
break;
case ID_MONITOR_FOULLEFT:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdFoulleft));
break;
case ID_MONITOR_FOULRIGHT:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdFoulright));
break;
case ID_MONITOR_DISCARDPLAYER:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdDiscard));
break;
case ID_MONITOR_MOVEPLAYER:
pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdMoveplayer));
break;
default:
break;
};
}
void CMainFrame::addDispInfo(const dispinfo_t2* pInfo)
{
if( m_logPlayer.addDispInfo(pInfo) ) {// 视觉信息
m_displayer.SetDisplayInfo(m_logPlayer.GetLastDispInfo());
}
}
void CMainFrame::cleanAllInfo(void)
{
m_displayer.SetDisplayInfo(NULL);
m_logPlayer.DoCommand(CmdClean);
}
void CMainFrame::OnObjectDetails()
{
m_displayer.OnObjectDetails();
}
void CMainFrame::showLogplay(bool value)
{
m_displayer.showLogplay(value);
if(value){
DisplayCycle(m_logPlayer.GetDisplayInfo());
}
}
void CMainFrame::OnDispSelectObject(UINT nID)
{
m_displayer.DoCommand(CmdSelect,nID-ID_DISPLAYER_SELECTLEFT1);
}
void CMainFrame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch (nChar) {
case ',':
case '<': // left
SendMessage(WM_COMMAND,ID_LOGPLAYER_BACKWARD);
break;
case '.':
case '>':
SendMessage(WM_COMMAND,ID_LOGPLAYER_FORWARD);
break;
case 'L':
case 'l':
SendMessage(WM_COMMAND,ID_LOGPLAYER_LOAD);
break;
case 'S':
case 's':
SendMessage(WM_COMMAND,ID_MONITOR_SAVELOG);
break;
case 'X':
case 'x': // play
SendMessage(WM_COMMAND,ID_LOGPLAYER_PLAY);
break;
case 'C':
case 'c': // pause
SendMessage(WM_COMMAND,ID_LOGPLAYER_STOP);
break;
case 'V':
case 'v': // stop
SendMessage(WM_COMMAND,ID_LOGPLAYER_REWIND);
break;
case 'J':
case 'j': // jump to a cycle
SendMessage(WM_COMMAND,ID_LOGPLAYER_JUMPTO);
break;
case 'B':
case 'b': // Reverse
SendMessage(WM_COMMAND,ID_LOGPLAYER_REVERSE);
break;
case 'A':
case 'a': // Acelerate
SendMessage(WM_COMMAND,ID_LOGPLAYER_ACCELERATE);
break;
case 'd':
case 'D': // Decelerate
SendMessage(WM_COMMAND,ID_LOGPLAYER_DECELERATE);
break;
case 'g':
case 'G': // DrawingBox
SendMessage(WM_COMMAND,ID_DRAWINGTOOLS);
break;
case 'K':
case 'k': // kick off
SendMessage(WM_COMMAND,ID_MONITOR_KICKOFF);
break;
case '1': // left 1
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT1);
break;
case '!': // right 1
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT1);
break;
case '2': // left 2
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT2);
break;
case '@': // right 2
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT2);
break;
case '3': // left 3
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT3);
break;
case '#': // right 3
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT3);
break;
case '4': // left 4
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT4);
break;
case '$': // right 4
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT4);
break;
case '5': // left 5
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT5);
break;
case '%': // right 5
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT5);
break;
case '6': // left 6
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT6);
break;
case '^': // right 6
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT6);
break;
case '7': // left 7
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT7);
break;
case '&': // right 7
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT7);
break;
case '8': // left 8
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT8);
break;
case '*': // right 8
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT8);
break;
case '9': // left 9
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT9);
break;
case '(': // right 9
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT9);
break;
case '0': // left 10
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT10);
break;
case ')': // right 10
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT10);
break;
case '-': // left 11
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT11);
break;
case '_': // right 11
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT11);
break;
case '~':
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTNONE);
break;
case '`': // ball
SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTBALL);
break;
case 'q':
case 'Q':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN);
break;
case 'w':
case 'W':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+1);
break;
case 'e':
case 'E':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+2);
break;
case 'r':
case 'R':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+3);
break;
case 't':
case 'T':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+4);
break;
case 'y':
case 'Y':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+5);
break;
case 'u':
case 'U':
SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+6);
break;
case 'n':
case 'N': // new doctor
SendMessage(WM_COMMAND,ID_SYSTEM_NEW);
break;
case 'h':
case 'H': // hide/show window
SendMessage(WM_COMMAND,ID_SYSTEM_HIDE);
break;
case 'i':
case 'I': // 新建连接
SendMessage(WM_COMMAND,ID_MONITOR_CONNECT);
break;
case 'p':
case 'P': // 重新连接
SendMessage(WM_COMMAND,ID_MONITOR_RECONNECT);
break;
case 'o':
case 'O': // 断开连接
SendMessage(WM_COMMAND,ID_MONITOR_DISCONNECT);
break;
case 'f':
case 'F': // 切换窗口
m_displayer.doFullScreen();
break;
case '{':
case '[':
SendMessage(WM_COMMAND,ID_TOOLBOX_STATISTICS);
break;
case '}':
case ']':
SendMessage(WM_COMMAND,ID_TOOLBOX_PRESENT);
break;
case '+':
SendMessage(WM_COMMAND,ID_DISPLAYER_BALLDETAIL);
break;
case '=':
SendMessage(WM_COMMAND,ID_ANALYZER_TYPEXPLORER);
break;
case '|':
SendMessage(WM_COMMAND,ID_DISPLAYER_OFFSIDELINE);
break;
case '\\':
SendMessage(WM_COMMAND,ID_DISPLAYER_PASSCOURSE);
break;
default:
break;
}
CFrameWnd::OnChar(nChar, nRepCnt, nFlags);
}
void CMainFrame::OpenLogFile(CString strFile)
{
m_logPlayer.DoCommand(CmdOpen,strFile);
DisplayCycle(m_logPlayer.GetDisplayInfo());
}
void CMainFrame::OnNewDoctor()
{
char strFileName[MAX_FILE_LEN];
GetModuleFileName(NULL,strFileName,MAX_FILE_LEN);
ShellExecute(NULL,NULL,strFileName,NULL,NULL,SW_SHOW);
}
void CMainFrame::OnMainFrameHide()
{
if( GetStyle() & WS_VISIBLE ) { // visible
ShowWindow(SW_HIDE);
}else {
ShowWindow(SW_SHOW);
}
}
void CMainFrame::OnDrawingtools()
{
m_displayer.OnDrawingTools();
}
void CMainFrame::OnDropFiles(HDROP hDropInfo)
{
CFrameWnd::OnDropFiles(hDropInfo);
}
void CMainFrame::OnAutoplayer()
{
CAutoplayConfiger dlg;
dlg.DoModal();
}
void CMainFrame::analyzeCycle(const showinfo_t2& info)
{
m_analyzer.analyzeOneCycleInfo(info);
}
CStatisticDialog* CMainFrame::getStatisticDlg()
{
while( m_pStatisticDlg == NULL ){
if( m_pStatisticDlg = new CStatisticDialog(&m_analyzer)){
m_pStatisticDlg->Create(IDD_STATDIALOG,this);
}
}
return m_pStatisticDlg;
}
void CMainFrame::OnToolboxStatistics()
{
m_analyzer.statData();
if( getStatisticDlg()->GetStyle() & WS_VISIBLE ){
getStatisticDlg()->ShowWindow(SW_HIDE);
}else{
getStatisticDlg()->ShowWindow(SW_SHOW);
getStatisticDlg()->ShowStatistic();
}
}
const CAnalyzer* CMainFrame::getAnalyzer() const
{
return &m_analyzer;
}
void CMainFrame::OnToolboxPresent()
{
m_analyzer.statData();
m_displayer.OnToolboxPresent();
}
void CMainFrame::OnUpdateSelectBar(CCmdUI *pCmdUI)
{
int side = m_displayer.getSelectedSide();
UINT num = m_displayer.getSelectedNum();
int diff;
if( side == LEFT ){
diff = num - 1;
}else if( side == RIGHT ){
diff = num + 10;
}else {
diff = MAX_PLAYER * 2;
}
if( pCmdUI->m_nID - ID_DISPLAYER_SELECTLEFT1 == diff){
pCmdUI->SetCheck(1);
}else{
pCmdUI->SetCheck(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -