void CWhiteBoardServerDlg::OnEllipse() { ResetTools(); m_emTool = ELLIPSE; m_btnEllipse.EnableWindow( FALSE ); m_staticCanvas.SetTool( m_emTool ); }
void TOOL_MANAGER::InitTools() { for( auto it = m_toolState.begin(); it != m_toolState.end(); /* iteration in the loop */ ) { TOOL_BASE* tool = it->first; TOOL_STATE* state = it->second; setActiveState( state ); ++it; // keep the iterator valid if the element is going to be erased if( !tool->Init() ) { wxMessageBox( wxString::Format( "Initialization of tool \"%s\" failed", tool->GetName() ) ); // Unregister the tool setActiveState( nullptr ); m_toolState.erase( tool ); m_toolNameIndex.erase( tool->GetName() ); m_toolIdIndex.erase( tool->GetId() ); m_toolTypes.erase( typeid( *tool ).name() ); delete state; delete tool; } } ResetTools( TOOL_BASE::RUN ); }
void CWhiteBoardServerDlg::OnRectangleEmpty() { ResetTools(); m_emTool = RECTANGLE_EMPTY; m_btnRectangelEmpty.EnableWindow( FALSE ); m_staticCanvas.SetTool( m_emTool ); }
void CWhiteBoardServerDlg::OnLine() { ResetTools(); m_emTool = LINE; m_btnLine.EnableWindow( FALSE ); m_staticCanvas.SetTool( m_emTool ); }
void CWhiteBoardServerDlg::OnPencil() { ResetTools(); m_emTool = PENCIL; m_btnPencil.EnableWindow( FALSE ); m_staticCanvas.SetTool( m_emTool ); }
void CWhiteBoardServerDlg::OnEraser() { ResetTools(); m_emTool = ERASER; m_btnEraser.EnableWindow( FALSE ); m_staticCanvas.SetTool( m_emTool ); }
void CWhiteBoardServerDlg::OnCancel() { if( IDOK == MessageBox( "要关闭白板吗?", "关闭", MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON2 ) ) { /// 向所有客户端发送关闭服务器消息 for( int nIndex = 0; nIndex < m_listCtrlInWhiteBoard.GetItemCount(); nIndex++ ) { USER user = m_arrFriendsInWhiteBoard.GetAt( nIndex ); SendUserCommandToIP( WHITEBOARD_SERVER_CLOSED, user.strIP, WHITEBOARD_CLIENT_PORT, NULL ); } /// 关闭UDP套接字 m_pWBSSocket->Close(); delete [] m_pWBSSocket; m_pWBSSocket = NULL; /// 清空用户列表 m_arrFriendsInWhiteBoard.RemoveAll(); m_arrFriendsOutOfWhiteBoard.RemoveAll(); /// 设置默认 ResetTools(); ResetWidth(); m_emTool = PENCIL; m_nWidth = WHITEBOARD_WIDTH_1; m_clDrawColor = DEFAULT_WHITEBOARD_TOOL_COLOR; /// 清除画布 m_staticCanvas.ClearCanvas(); DestroyWindow(); } }