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); }
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; }