drag.h 1.77 KB
Newer Older
dickelbeck's avatar
dickelbeck committed
1 2 3 4
/***************************************************************/
/* Edition des Modules: Structures et variables de gestion des */
/*		fonctions de "DRAG" des segments de piste				*/
/***************************************************************/
5 6 7 8 9

/*** Class to handle a list of track segments to drag ***/
class DRAG_SEGM
{
public:
dickelbeck's avatar
dickelbeck committed
10 11 12 13 14 15

    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 */
16 17

private:
dickelbeck's avatar
dickelbeck committed
18 19
    wxPoint    m_StartInitialValue;
    wxPoint    m_EndInitialValue; /* For abort: initial m_Start and m_End values for m_Segm */
20 21


dickelbeck's avatar
dickelbeck committed
22
public:
23

dickelbeck's avatar
dickelbeck committed
24 25
    DRAG_SEGM( TRACK * segm );
    ~DRAG_SEGM();
26

dickelbeck's avatar
dickelbeck committed
27
    void SetInitialValues();
28 29
};

dickelbeck's avatar
dickelbeck committed
30
/* Variables */
31

32 33
extern DRAG_SEGM* g_DragSegmentList;    /* pointe le debut de la liste
                                         * des structures DRAG_SEGM */
34 35

/* routines specifiques */
dickelbeck's avatar
dickelbeck committed
36 37 38 39 40 41 42 43 44 45 46 47 48 49
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();


/* 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 
 */
void    AddSegmentToDragList( WinEDA_DrawPanel* panel, wxDC* DC,
                              int flag, TRACK* Track );