/***************************************************************/ /* Edition des Modules: Structures et variables de gestion des */ /* fonctions de "DRAG" des segments de piste */ /***************************************************************/ /*** Class to handle a list of track segments to drag ***/ class DRAG_SEGM { public: DRAG_SEGM * Pnext; /* Pointeur de chainage */ TRACK * m_Segm; /* pointeur sur le segment a "dragger */ D_PAD * m_Pad_Start; /* pointeur sur le Pad origine si origine segment sur pad */ D_PAD * m_Pad_End; /* pointeur sur le Pad fin si fin segment sur pad */ int m_Flag; /* indicateur divers */ private: wxPoint m_StartInitialValue; wxPoint m_EndInitialValue; /* For abort: initial m_Start and m_End values for m_Segm */ public: DRAG_SEGM(TRACK * segm); ~DRAG_SEGM(); void SetInitialValues(); }; /* Variables */ eda_global DRAG_SEGM * g_DragSegmentList; /* pointe le debut de la liste des structures DRAG_SEGM */ /* routines specifiques */ void Dessine_Segments_Dragges(WinEDA_DrawPanel * panel, wxDC * DC); void Build_Drag_Liste(WinEDA_DrawPanel * panel, wxDC * DC, MODULE * Module); void Build_1_Pad_SegmentsToDrag(WinEDA_DrawPanel * panel, wxDC * DC, D_PAD * PtPad ); void Collect_TrackSegmentsToDrag(WinEDA_DrawPanel * panel, wxDC * DC, wxPoint & point, int MasqueLayer, int net_code); void EraseDragListe(); void AddSegmentToDragList(WinEDA_DrawPanel * panel, wxDC * DC, int flag, TRACK * Track); /* Add the segment"Track" to the drag list, and erase it from screen flag = STARTPOINT (if the point to drag is the start point of Track) or ENDPOINT */