示例#1
0
void WinEDA_ModuleEditFrame::Load_Module_Module_From_BOARD( MODULE * Module )
/***************************************************************************/
{
MODULE * NewModule;

	if ( Module == NULL )
		{
		if (m_Parent->m_PcbFrame == NULL) return;
		if (m_Parent->m_PcbFrame->m_Pcb == NULL) return;
		if (m_Parent->m_PcbFrame->m_Pcb->m_Modules == NULL) return;

		Module = Select_1_Module_From_BOARD(m_Parent->m_PcbFrame->m_Pcb);
		}

	if ( Module == NULL ) return;

	m_CurrentScreen->m_CurrentItem = NULL;

	Clear_Pcb(NULL, TRUE);

	m_Pcb->m_Status_Pcb = 0;
	NewModule = new MODULE(m_Pcb);
	NewModule->Copy(Module);
	NewModule->m_Link = Module->m_TimeStamp;

	Module = NewModule;
	Module->m_Parent = m_Pcb;
	Module->Pback = m_Pcb->m_Modules; Module->Pnext = NULL;
	m_Pcb->m_Modules = Module;

	Module->m_Flags = 0;

	build_liste_pads();

	m_CurrentScreen->m_Curseur.x = m_CurrentScreen->m_Curseur.y = 0;
	Place_Module(Module, NULL);
	if( Module->m_Layer != CMP_N) Change_Side_Module(Module, NULL);
	Rotate_Module(NULL, Module, 0, FALSE);
	m_CurrentScreen->ClrModify();
	Zoom_Automatique(TRUE);
}
示例#2
0
MODULE * WinEDA_BasePcbFrame::Copie_Module(MODULE * module)
/**********************************************************/
/* copie le module "module" en position courante */
{
MODULE * newmodule;

	if (module == NULL ) return NULL;

	m_CurrentScreen->SetModify();

	 /* Duplication du module */
	m_Pcb->m_Status_Pcb = 0;
	newmodule = new MODULE(m_Pcb);
	newmodule->Copy(module);
	newmodule->m_Parent = m_Pcb;
	newmodule->AddToChain(module);
	newmodule->m_Flags = IS_NEW;

	build_liste_pads();

	newmodule->Display_Infos(this);
	m_Pcb->m_Status_Pcb  &= ~CHEVELU_LOCAL_OK;
	return newmodule;
}