27#ifndef EDA_ITEM_FLAGS_H 
   28#define EDA_ITEM_FLAGS_H 
   36#define IS_CHANGED              (1UL << 0)     
   37#define IS_LINKED               (1UL << 1)     
   38#define IN_EDIT                 (1UL << 2)     
   39#define IS_MOVING               (1UL << 3)     
   40#define IS_NEW                  (1UL << 4)     
   41#define IS_BROKEN               (1UL << 5)     
   43#define IS_DELETED              (1UL << 7) 
   45#define STARTPOINT              (1UL << 9)     
   46#define ENDPOINT                (1UL << 10)    
   47#define SELECTED                (1UL << 11)    
   48#define SELECTED_BY_DRAG        (1UL << 12)    
   49#define STRUCT_DELETED          (1UL << 13)    
   50#define CANDIDATE               (1UL << 14)    
   51#define SKIP_STRUCT             (1UL << 15)    
   53#define IS_PASTED               (1UL << 17)    
   54#define IS_SHOWN_AS_BITMAP      (1UL << 18) 
   55#define COURTYARD_CONFLICT      (1UL << 19)    
   57#define MALFORMED_F_COURTYARD   (1UL << 20) 
   58#define MALFORMED_B_COURTYARD   (1UL << 21) 
   59#define MALFORMED_COURTYARDS    ( MALFORMED_F_COURTYARD | MALFORMED_B_COURTYARD ) 
   61#define ROUTER_TRANSIENT        (1UL << 22)    
   63#define CONNECTIVITY_CANDIDATE  (1UL << 23)    
   65#define HOLE_PROXY              (1UL << 24)    
   66#define SHOW_ELEC_TYPE          (1UL << 25)    
   67#define BRIGHTENED              (1UL << 26)    
   69#define MCT_SKIP_STRUCT (1 << 27)     
   71#define UR_TRANSIENT             (1UL << 28)    
   73#define IS_DANGLING              (1UL << 29)    
   74#define ENTERED                  (1UL << 30)    
   75#define SELECTION_CANDIDATE      (1UL << 31)    
   80#define EDA_ITEM_ALL_FLAGS UINT32_MAX 
   97    static const FlagDesc flagDescs[] = { { 
IS_CHANGED, 
"IS_CHANGED" },
 
  126    std::vector<std::string> setFlags;
 
  127    for( 
const auto& desc : flagDescs )
 
  129        if( flags & desc.value )
 
  130            setFlags.push_back( desc.name );
 
  133    std::ostringstream oss;
 
  134    for( 
size_t i = 0; i < setFlags.size(); ++i )
 
  140    if( setFlags.empty() )
 
 
#define IS_PASTED
Modifier on IS_NEW which indicates it came from clipboard.
 
#define IS_CHANGED
Item was edited, and modified.
 
#define BRIGHTENED
item is drawn with a bright contour
 
#define IS_SHOWN_AS_BITMAP
 
#define IS_NEW
New item, just created.
 
#define IS_LINKED
Used in calculation to mark linked items (temporary use)
 
#define SELECTED
Item was manually selected by the user.
 
#define SELECTED_BY_DRAG
Item was algorithmically selected as a dragged item.
 
#define SELECTION_CANDIDATE
indicates an item is a candidate for selection
 
std::string EDAItemFlagsToString(EDA_ITEM_FLAGS flags)
 
#define CONNECTIVITY_CANDIDATE
flag indicating that the structure is connected for connectivity
 
#define COURTYARD_CONFLICT
temporary set when moving footprints having courtyard overlapping
 
#define MALFORMED_F_COURTYARD
 
#define MALFORMED_B_COURTYARD
 
#define ROUTER_TRANSIENT
transient items that should NOT be cached
 
#define IS_BROKEN
Is a segment just broken by BreakSegment.
 
#define HOLE_PROXY
Indicates the BOARD_ITEM is a proxy for its hole.
 
#define ENTERED
indicates a group has been entered
 
#define STRUCT_DELETED
flag indication structures to be erased
 
#define ENDPOINT
ends. (Used to support dragging.)
 
#define IN_EDIT
Item currently edited.
 
#define SKIP_STRUCT
flag indicating that the structure should be ignored
 
std::uint32_t EDA_ITEM_FLAGS
 
#define CANDIDATE
flag indicating that the structure is connected
 
#define IS_MOVING
Item being moved.
 
#define UR_TRANSIENT
indicates the item is owned by the undo/redo stack
 
#define SHOW_ELEC_TYPE
Show pin electrical type.
 
#define IS_DANGLING
indicates a pin is dangling
 
#define STARTPOINT
When a line is selected, these flags indicate which.