b9d476612fdc106e8451223ea470e04779a5d1f5 tdreszer Tue Sep 14 15:53:14 2010 -0700 Composite views needed to be distinguished from subtracks diff --git src/hg/inc/trackDb.h src/hg/inc/trackDb.h index 9e801a2..4420a6e 100644 --- src/hg/inc/trackDb.h +++ src/hg/inc/trackDb.h @@ -60,6 +60,7 @@ #define SUPERTRACK_MASK 0x10 #define COMPOSITE_MASK 0x20 +#define COMPOSITE_VIEW_MASK 0x40 #define SUPERTRACK_CHILD_MASK 0x01 #define COMPOSITE_CHILD_MASK 0x02 #define PARENT_MASK 0xF0 @@ -69,6 +70,7 @@ #define CHILD_NODE(nodeType) ((nodeType) & CHILD_MASK) #define SUPERTRACK_NODE(nodeType) (((nodeType) & SUPERTRACK_MASK) == SUPERTRACK_MASK) #define COMPOSITE_NODE(nodeType) (((nodeType) & COMPOSITE_MASK ) == COMPOSITE_MASK ) +#define COMPOSITE_VIEW_NODE(nodeType) (((nodeType) & COMPOSITE_VIEW_MASK ) == COMPOSITE_VIEW_MASK ) #define SUPERTRACK_CHILD_NODE(nodeType) (((nodeType) & SUPERTRACK_CHILD_MASK) == SUPERTRACK_CHILD_MASK) #define COMPOSITE_CHILD_NODE(nodeType) (((nodeType) & COMPOSITE_CHILD_MASK ) == COMPOSITE_CHILD_MASK ) #define INDEPENDENT_NODE(nodeType) (((nodeType) & TREETYPE_MASK ) == 0 ) @@ -109,6 +111,12 @@ return tdb && tdb->parent && COMPOSITE_CHILD_NODE( tdb->treeNodeType); } +INLINE boolean tdbIsCompositeView(struct trackDb *tdb) +/* Is this trackDb struct marked as a child of a composite track ? */ +{ +return tdb && tdb->subtracks && COMPOSITE_VIEW_NODE( tdb->treeNodeType); +} + INLINE void tdbMarkAsSuperTrack(struct trackDb *tdb) /* Marks a trackDb struct as a supertrack */ { @@ -133,6 +141,12 @@ tdb->treeNodeType |= COMPOSITE_CHILD_MASK; } +INLINE void tdbMarkAsCompositeView( struct trackDb *tdb) +/* Marks a trackDb struct as a view of a composite track */ +{ +tdb->treeNodeType |= COMPOSITE_VIEW_MASK; +} + struct trackDb *trackDbLoad(char **row); /* Load a trackDb from row fetched with select * from trackDb * from database. Dispose of this with trackDbFree(). */