ace7d6c2a03c2ad76c14134546785b8c3fa61ac2 kate Tue Jan 8 11:39:09 2019 -0800 Implement 'packDense' setting (tentative name) to support Regeneron 2nd contract amino acide display. This setting will pack items on a single line if they are adjacent (suppresses padding between packed items). refs #22739 diff --git src/inc/spaceSaver.h src/inc/spaceSaver.h index a328543..a109f68 100644 --- src/inc/spaceSaver.h +++ src/inc/spaceSaver.h @@ -70,33 +70,41 @@ /* Add new nodes for multiple windows to space saver. */ struct spaceNode *spaceSaverAddOverflowExtended(struct spaceSaver *ss, int start, int end, void *val, boolean allowOverflow, struct spaceSaver *parentSs, bool noLabel); /* Add a new node to space saver. Returns NULL if can't fit item in * and allowOverflow == FALSE. If allowOverflow == TRUE then put items * that won't fit in last row. parentSs allows specification of destination for node from alternate window.*/ struct spaceNode *spaceSaverAddOverflow(struct spaceSaver *ss, int start, int end, void *val, boolean allowOverflow); /* Add a new node to space saver. Returns NULL if can't fit item in * and allowOverflow == FALSE. If allowOverflow == TRUE then put items * that won't fit in first row (ends up being last row after * spaceSaverFinish()). */ -struct spaceNode *spaceSaverAddOverflowMulti(struct spaceSaver *ss, struct spaceRange *rangeList, struct spaceNode *nodeList, - boolean allowOverflow); +struct spaceNode *spaceSaverAddOverflowMulti(struct spaceSaver *ss, struct spaceRange *rangeList, + struct spaceNode *nodeList, boolean allowOverflow); /* Add new nodes for multiple windows to space saver. Returns NULL if can't fit item in * and allowOverflow == FALSE. If allowOverflow == TRUE then put items * that won't fit in first row (ends up being last row after * spaceSaverFinish()). */ +struct spaceNode *spaceSaverAddOverflowMultiOptionalPadding(struct spaceSaver *ss, + struct spaceRange *rangeList, struct spaceNode *nodeList, + boolean allowOverflow, boolean doPadding); +/* Add new nodes for multiple windows to space saver. Returns NULL if can't fit item in + * and allowOverflow == FALSE. If allowOverflow == TRUE then put items + * that won't fit in first row (ends up being last row after + * spaceSaverFinish()). Allow caller to suppress padding between items (show adjacent items on single row */ + void spaceSaverSetRowHeights(struct spaceSaver *ss, struct spaceSaver *holdSs, int (*itemHeight)(void *item)); /* Determine maximum height of items in a row. Return total height. Used by tracks with variable height items */ int spaceSaverGetRowHeightsTotal(struct spaceSaver *ss); /* Return height of all rows. Used by tracks with variable height items */ void spaceSaverFinish(struct spaceSaver *ss); /* Tell spaceSaver done adding nodes. */ #endif /* SPACESAVER_H */