-void setLabelWidthStringToSequence(pit_type const par_offset,
- ParagraphList & pars, docstring const & s)
-{
- pit_type offset = par_offset;
- // Find first of same layout in sequence
- while (!isFirstInSequence(offset, pars)) {
- offset = depthHook(offset, pars, pars[offset].getDepth());
- }
-
- // now apply label width string to every par
- // in sequence
- pit_type const end = pars.size();
- depth_type const depth = pars[offset].getDepth();
- Layout const & layout = pars[offset].layout();
- for (pit_type pit = offset; pit != end; ++pit) {
- while (pars[pit].getDepth() > depth)
- ++pit;
- if (pars[pit].getDepth() < depth)
- return;
- if (pars[pit].layout() != layout)
- return;
- pars[pit].setLabelWidthString(s);
- }
-}
-
-
-int getEndLabel(pit_type p, ParagraphList const & pars)
-{
- pit_type pit = p;
- depth_type par_depth = pars[p].getDepth();
- while (pit != pit_type(pars.size())) {
- Layout const & layout = pars[pit].layout();
- int const endlabeltype = layout.endlabeltype;
-
- if (endlabeltype != END_LABEL_NO_LABEL) {
- if (p + 1 == pit_type(pars.size()))
- return endlabeltype;
-
- depth_type const next_depth =
- pars[p + 1].getDepth();
- if (par_depth > next_depth ||
- (par_depth == next_depth && layout != pars[p + 1].layout()))
- return endlabeltype;
- break;
- }
- if (par_depth == 0)
- break;
- pit = outerHook(pit, pars);
- if (pit != pit_type(pars.size()))
- par_depth = pars[pit].getDepth();
- }
- return END_LABEL_NO_LABEL;
-}
-
-
-Font const outerFont(pit_type par_offset, ParagraphList const & pars)