ref: f6965b92e1915c9f49fafbadf603b4fd0da735bd
parent: cd6cadbecf245b2916350939343db14e2978f782
author: Simon Tatham <anakin@pobox.com>
date: Tue Nov 13 16:38:53 EST 2018
Adopt C99 bool in the printing API. Not many changes here: the 'dotted' flag passed to print_line_dotted is bool, and so is the printing_in_colour flag passed to print_get_colour. Also ps_init() takes a bool. line_dotted is also a method in the drawing API structure, but it's not actually filled in for any non-print-oriented implementation of that API. So only front ends that do platform-specific _printing_ should need to make a corresponding change. In-tree, for example, windows.c needed a fix because it prints via Windows GDI, but gtk.c didn't have to do anything, because its CLI-based printing facility just delegates to ps.c.
--- a/devel.but
+++ b/devel.but
@@ -2394,15 +2394,14 @@
\S{print-line-dotted} \cw{print_line_dotted()}
-\c void print_line_dotted(drawing *dr, int dotted);
+\c void print_line_dotted(drawing *dr, bool dotted);
This function is called to toggle the drawing of dotted lines during
printing. It is not supported during drawing.
-The parameter \cq{dotted} is a boolean; \cw{TRUE} means that future
-lines drawn by \cw{draw_line()}, \cw{draw_circle} and
-\cw{draw_polygon()} will be dotted, and \cw{FALSE} means that they
-will be solid.
+Setting \cq{dotted} to \cw{true} means that future lines drawn by
+\cw{draw_line()}, \cw{draw_circle} and \cw{draw_polygon()} will be
+dotted. Setting it to \cw{false} means that they will be solid.
Some front ends may impose restrictions on the width of dotted
lines. Asking for a dotted line via this front end will override any
--- a/drawing.c
+++ b/drawing.c
@@ -264,7 +264,7 @@
dr->api->end_doc(dr->handle);
}
-void print_get_colour(drawing *dr, int colour, int printing_in_colour,
+void print_get_colour(drawing *dr, int colour, bool printing_in_colour,
int *hatch, float *r, float *g, float *b)
{
assert(colour >= 0 && colour < dr->ncolours);
@@ -347,7 +347,7 @@
dr->api->line_width(dr->handle, (float)sqrt(dr->scale) * width);
}
-void print_line_dotted(drawing *dr, int dotted)
+void print_line_dotted(drawing *dr, bool dotted)
{
dr->api->line_dotted(dr->handle, dotted);
}
--- a/nullfe.c
+++ b/nullfe.c
@@ -40,7 +40,7 @@
int print_rgb_hatched_colour(drawing *dr, float r, float g, float b, int hatch)
{ return 0; }
void print_line_width(drawing *dr, int width) {}
-void print_line_dotted(drawing *dr, int dotted) {}
+void print_line_dotted(drawing *dr, bool dotted) {}
void midend_supersede_game_desc(midend *me, const char *desc,
const char *privdesc) {}
void status_bar(drawing *dr, const char *text) {}
--- a/ps.c
+++ b/ps.c
@@ -232,7 +232,7 @@
ps_printf(ps, "%g setlinewidth\n", width);
}
-static void ps_line_dotted(void *handle, int dotted)
+static void ps_line_dotted(void *handle, bool dotted)
{
psdata *ps = (psdata *)handle;
@@ -408,7 +408,7 @@
ps_text_fallback,
};
-psdata *ps_init(FILE *outfile, int colour)
+psdata *ps_init(FILE *outfile, bool colour)
{
psdata *ps = snew(psdata);
--- a/puzzles.h
+++ b/puzzles.h
@@ -292,7 +292,7 @@
void print_end_puzzle(drawing *dr);
void print_end_page(drawing *dr, int number);
void print_end_doc(drawing *dr);
-void print_get_colour(drawing *dr, int colour, int printing_in_colour,
+void print_get_colour(drawing *dr, int colour, bool printing_in_colour,
int *hatch, float *r, float *g, float *b);
int print_mono_colour(drawing *dr, int grey); /* 0==black, 1==white */
int print_grey_colour(drawing *dr, float grey);
@@ -302,7 +302,7 @@
int print_rgb_hatched_colour(drawing *dr, float r, float g, float b,
int hatch);
void print_line_width(drawing *dr, int width);
-void print_line_dotted(drawing *dr, int dotted);
+void print_line_dotted(drawing *dr, bool dotted);
/*
* midend.c
@@ -538,7 +538,7 @@
/*
* ps.c
*/
-psdata *ps_init(FILE *outfile, int colour);
+psdata *ps_init(FILE *outfile, bool colour);
void ps_free(psdata *ps);
drawing *ps_drawing_api(psdata *ps);
@@ -699,7 +699,7 @@
void (*end_page)(void *handle, int number);
void (*end_doc)(void *handle);
void (*line_width)(void *handle, float width);
- void (*line_dotted)(void *handle, int dotted);
+ void (*line_dotted)(void *handle, bool dotted);
char *(*text_fallback)(void *handle, const char *const *strings,
int nstrings);
void (*draw_thick_line)(void *handle, float thickness,
--- a/windows.c
+++ b/windows.c
@@ -799,7 +799,7 @@
fe->linewidth = (int)(width * fe->printpixelscale);
}
-static void win_line_dotted(void *handle, int dotted)
+static void win_line_dotted(void *handle, bool dotted)
{
frontend *fe = (frontend *)handle;