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.
This commit is contained in:
Simon Tatham
2018-11-13 21:38:53 +00:00
parent cd6cadbecf
commit f6965b92e1
6 changed files with 14 additions and 15 deletions

View File

@ -2394,15 +2394,14 @@ capabilities.
\S{print-line-dotted} \cw{print_line_dotted()} \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 This function is called to toggle the drawing of dotted lines during
printing. It is not supported during drawing. printing. It is not supported during drawing.
The parameter \cq{dotted} is a boolean; \cw{TRUE} means that future Setting \cq{dotted} to \cw{true} means that future lines drawn by
lines drawn by \cw{draw_line()}, \cw{draw_circle} and \cw{draw_line()}, \cw{draw_circle} and \cw{draw_polygon()} will be
\cw{draw_polygon()} will be dotted, and \cw{FALSE} means that they dotted. Setting it to \cw{false} means that they will be solid.
will be solid.
Some front ends may impose restrictions on the width of dotted Some front ends may impose restrictions on the width of dotted
lines. Asking for a dotted line via this front end will override any lines. Asking for a dotted line via this front end will override any

View File

@ -264,7 +264,7 @@ void print_end_doc(drawing *dr)
dr->api->end_doc(dr->handle); 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) int *hatch, float *r, float *g, float *b)
{ {
assert(colour >= 0 && colour < dr->ncolours); assert(colour >= 0 && colour < dr->ncolours);
@ -347,7 +347,7 @@ void print_line_width(drawing *dr, int width)
dr->api->line_width(dr->handle, (float)sqrt(dr->scale) * width); 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); dr->api->line_dotted(dr->handle, dotted);
} }

View File

@ -40,7 +40,7 @@ int print_rgb_grey_colour(drawing *dr, float r, float g, float b, float grey)
int print_rgb_hatched_colour(drawing *dr, float r, float g, float b, int hatch) int print_rgb_hatched_colour(drawing *dr, float r, float g, float b, int hatch)
{ return 0; } { return 0; }
void print_line_width(drawing *dr, int width) {} 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, void midend_supersede_game_desc(midend *me, const char *desc,
const char *privdesc) {} const char *privdesc) {}
void status_bar(drawing *dr, const char *text) {} void status_bar(drawing *dr, const char *text) {}

4
ps.c
View File

@ -232,7 +232,7 @@ static void ps_line_width(void *handle, float width)
ps_printf(ps, "%g setlinewidth\n", width); 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; psdata *ps = (psdata *)handle;
@ -408,7 +408,7 @@ static const struct drawing_api ps_drawing = {
ps_text_fallback, ps_text_fallback,
}; };
psdata *ps_init(FILE *outfile, int colour) psdata *ps_init(FILE *outfile, bool colour)
{ {
psdata *ps = snew(psdata); psdata *ps = snew(psdata);

View File

@ -292,7 +292,7 @@ void print_begin_puzzle(drawing *dr, float xm, float xc,
void print_end_puzzle(drawing *dr); void print_end_puzzle(drawing *dr);
void print_end_page(drawing *dr, int number); void print_end_page(drawing *dr, int number);
void print_end_doc(drawing *dr); 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 *hatch, float *r, float *g, float *b);
int print_mono_colour(drawing *dr, int grey); /* 0==black, 1==white */ int print_mono_colour(drawing *dr, int grey); /* 0==black, 1==white */
int print_grey_colour(drawing *dr, float grey); int print_grey_colour(drawing *dr, float grey);
@ -302,7 +302,7 @@ int print_rgb_grey_colour(drawing *dr, float r, float g, float b, float grey);
int print_rgb_hatched_colour(drawing *dr, float r, float g, float b, int print_rgb_hatched_colour(drawing *dr, float r, float g, float b,
int hatch); int hatch);
void print_line_width(drawing *dr, int width); 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 * midend.c
@ -538,7 +538,7 @@ void document_print(document *doc, drawing *dr);
/* /*
* ps.c * ps.c
*/ */
psdata *ps_init(FILE *outfile, int colour); psdata *ps_init(FILE *outfile, bool colour);
void ps_free(psdata *ps); void ps_free(psdata *ps);
drawing *ps_drawing_api(psdata *ps); drawing *ps_drawing_api(psdata *ps);
@ -699,7 +699,7 @@ struct drawing_api {
void (*end_page)(void *handle, int number); void (*end_page)(void *handle, int number);
void (*end_doc)(void *handle); void (*end_doc)(void *handle);
void (*line_width)(void *handle, float width); 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, char *(*text_fallback)(void *handle, const char *const *strings,
int nstrings); int nstrings);
void (*draw_thick_line)(void *handle, float thickness, void (*draw_thick_line)(void *handle, float thickness,

View File

@ -799,7 +799,7 @@ static void win_line_width(void *handle, float width)
fe->linewidth = (int)(width * fe->printpixelscale); 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; frontend *fe = (frontend *)handle;