Exemplo n.º 1
0
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
}
Exemplo n.º 2
0
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);
}