Skip to content

Commit

Permalink
Adopt C99 bool in the printing API.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sgtatham committed Nov 13, 2018
1 parent cd6cadb commit f6965b9
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 15 deletions.
9 changes: 4 additions & 5 deletions devel.but
Original file line number Diff line number Diff line change
Expand Up @@ -2394,15 +2394,14 @@ capabilities.

\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
Expand Down
4 changes: 2 additions & 2 deletions drawing.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ void print_end_doc(drawing *dr)
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);
Expand Down Expand Up @@ -347,7 +347,7 @@ void print_line_width(drawing *dr, int 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);
}
2 changes: 1 addition & 1 deletion nullfe.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{ 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) {}
Expand Down
4 changes: 2 additions & 2 deletions ps.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ static void ps_line_width(void *handle, float 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;

Expand Down Expand Up @@ -408,7 +408,7 @@ static const struct drawing_api ps_drawing = {
ps_text_fallback,
};

psdata *ps_init(FILE *outfile, int colour)
psdata *ps_init(FILE *outfile, bool colour)
{
psdata *ps = snew(psdata);

Expand Down
8 changes: 4 additions & 4 deletions puzzles.h
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ void print_begin_puzzle(drawing *dr, float xm, float xc,
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);
Expand All @@ -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 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
Expand Down Expand Up @@ -538,7 +538,7 @@ void document_print(document *doc, drawing *dr);
/*
* 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);

Expand Down Expand Up @@ -699,7 +699,7 @@ struct drawing_api {
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,
Expand Down
2 changes: 1 addition & 1 deletion windows.c
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ static void win_line_width(void *handle, float width)
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;

Expand Down

0 comments on commit f6965b9

Please sign in to comment.