static void ExitTrace(WinEDA_DrawFrame * frame, wxDC * DC) /**********************************************************/ /* Routine de sortie des menus de trace */ { BASE_SCREEN * Screen = frame->GetScreen(); if( Screen->m_CurrentItem) /* trace en cours */ { Screen->ManageCurseur(frame->DrawPanel, DC, FALSE); Screen->ManageCurseur = NULL; Screen->ForceCloseManageCurseur = NULL; EraseStruct(Screen->m_CurrentItem,(SCH_SCREEN*) Screen); Screen->m_CurrentItem = NULL; return; } else g_ItemToRepeat = NULL; // Fin de commande generale }
void AbortBlockCurrentCommand(WinEDA_DrawFrame * frame, wxDC * DC) /******************************************************************/ /* Cancel Current block operation. */ { BASE_SCREEN * screen = frame->GetScreen(); if( screen->ManageCurseur) /* Erase current drawing on screen */ { screen->ManageCurseur(frame->DrawPanel, DC, FALSE); /* Efface dessin fantome */ screen->ManageCurseur = NULL; screen->ForceCloseManageCurseur = NULL; screen->m_CurrentItem = NULL; /* Delete the picked wrapper if this is a picked list. */ if( (screen->BlockLocate.m_Command != BLOCK_PASTE) && screen->BlockLocate.m_BlockDrawStruct ) { if(screen->BlockLocate.m_BlockDrawStruct->m_StructType == DRAW_PICK_ITEM_STRUCT_TYPE) { DrawPickedStruct * PickedList; PickedList = (DrawPickedStruct*)screen->BlockLocate.m_BlockDrawStruct; PickedList->DeleteWrapperList(); } screen->BlockLocate.m_BlockDrawStruct = NULL; } } screen->BlockLocate.m_Flags = 0; screen->BlockLocate.m_State = STATE_NO_BLOCK; screen->BlockLocate.m_Command = BLOCK_ABORT; frame->HandleBlockEnd(DC); screen->BlockLocate.m_Command = BLOCK_IDLE; frame->DisplayToolMsg(wxEmptyString); }