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