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.