//--------------------------------------------------------- bool CWKSP_Shapes::Edit_On_Mouse_Move(wxWindow *pMap, CSG_Rect rWorld, wxPoint pt, wxPoint ptLast, int Key) { switch( m_Edit_Mode ) { case EDIT_SHAPE_MODE_Split: case EDIT_SHAPE_MODE_Move: { CSG_Shape *pShape = m_Edit_Shapes.Get_Shape(1); if( pShape && pShape->Get_Point_Count() > 0 && (pt.x != ptLast.x || pt.y != ptLast.y) ) { wxClientDC dc(pMap); dc.SetLogicalFunction(wxINVERT); Edit_Shape_Draw_Move(dc, rWorld, ptLast, pShape->Get_Point(0, 0, false)); Edit_Shape_Draw_Move(dc, rWorld, pt , pShape->Get_Point(0, 0, false)); } return( true ); } //----------------------------------------------------- case EDIT_SHAPE_MODE_Normal: default: if( m_Edit_pShape ) { //--------------------------------------------- if( m_Edit_iPart >= 0 && (m_Edit_iPoint < 0 || Key & MODULE_INTERACTIVE_KEY_LEFT) && (pt.x != ptLast.x || pt.y != ptLast.y) ) { wxClientDC dc(pMap); dc.SetLogicalFunction(wxINVERT); Edit_Shape_Draw_Move(dc, rWorld, ptLast); Edit_Shape_Draw_Move(dc, rWorld, pt); return( true ); } //--------------------------------------------- else { int iPart, iPoint; double ClientToWorld = rWorld.Get_XRange() / (double)pMap->GetClientSize().x; CSG_Point Point(rWorld.Get_XMin() + pt.x * ClientToWorld, rWorld.Get_YMax() - pt.y * ClientToWorld); switch( Edit_Shape_HitTest(Point, EDIT_TICKMARK_SIZE * ClientToWorld, iPart, iPoint) ) { default: pMap->SetCursor(IMG_Get_Cursor(ID_IMG_CRS_SELECT )); break; case 1: pMap->SetCursor(IMG_Get_Cursor(ID_IMG_CRS_EDIT_POINT_MOVE)); break; case 2: pMap->SetCursor(IMG_Get_Cursor(ID_IMG_CRS_EDIT_POINT_ADD )); break; } return( true ); } } } return( false ); }
//--------------------------------------------------------- bool CVIEW_Map_Control::Set_Mode(int Mode) { if( m_Mode != Mode ) { if( m_Mode == MAP_MODE_DISTANCE ) { _Distance_Reset(); } m_Mode = Mode; switch( m_Mode ) { case MAP_MODE_ZOOM: default: SetCursor(IMG_Get_Cursor(ID_IMG_CRS_SELECT)); break; case MAP_MODE_PAN: SetCursor(IMG_Get_Cursor(ID_IMG_CRS_HAND)); break; case MAP_MODE_PAN_DOWN: SetCursor(IMG_Get_Cursor(ID_IMG_CRS_HAND_GRAP)); break; case MAP_MODE_SELECT: SetCursor(IMG_Get_Cursor(ID_IMG_CRS_INFO)); break; case MAP_MODE_DISTANCE: SetCursor(IMG_Get_Cursor(ID_IMG_CRS_SELECT)); _Distance_Reset(); break; } return( true ); } return( false ); }