The way in which rows are printed by a printrow
object is
controlled by various options. These options are given by a
printrow::options
object.
struct options { enum o_flags { numbers = 0x01, miss_numbers = 0x02 }; unsigned int flags; text_style style; dimension xspace, yspace; struct line_style { dimension width; colour col; }; map<int, line_style> lines; void defaults(void); };
The flags
member contains various flags; bit values are given by
the enumerated type o_flags
, and possible values for flags
can be obtained by logically ORing these values together. The bits
are as follows:
options::numbers
bit controls whether the actual numbers of the
rows are printed. If this bit is not set, only lines will be printed.
options::miss_numbers
bit, then any numbers which would
appear underneath lines are missed out. An example of this may be seen
in the Ringing World diary, where all rows except lead heads are
printed with this property.
The style
member controls the style in which the rows are
printed; for the declaration of the text_style
class, see
The text_style class. This option may not be changed during printing.
The xspace
and yspace
members give the horizontal space
between numbers in a row, and the vertical space between rows, respectively.
For the declaration of the dimension
class, see
The dimension class. These options may not be changed during
printing.
The lines
member controls which “blue lines” are printed. Each
element of the map has an integer, denoting the bell number, and a
line_style
element which defines the style of the line. The two
members of line_style
are a dimension
object, giving the
width of the line, and a colour
object, giving the colour of the
line. This option may be changed in between columns, but not in the
middle of a column.
For example, suppose that we wish to print rows in 10-point Helvetica, with
spacing of 12 points horizontally and vertically. We want to draw a blue
line half a point thick for the second bell. The following code sets
up a printrow::options
object to accomplish this:
printrow::options o; o.flags = printrow::options::numbers; o.style.size = 100; o.style.font = "Helvetica"; o.xspace.n = 12; o.yspace.n = 12; line_style s; s.width.n = 1; s.width.d = 2; s.width.u = dimension::points; s.col.grey = false; s.col.red = 0; s.col.green = 0; s.col.blue = 1.0; o.lines[1] = s;
There is one member function of printrow::options
.