diff --git a/eeshow/Makefile b/eeshow/Makefile index b7bf9ae..2e340f4 100644 --- a/eeshow/Makefile +++ b/eeshow/Makefile @@ -12,7 +12,7 @@ NAME = eeshow OBJS = main.o sch-parse.o sch-render.o lib-parse.o lib-render.o \ - gui.o gui-over.o gui-aoi.o fmt-pango.o \ + gui.o gui-over.o gui-style.o gui-aoi.o fmt-pango.o \ file.o git-util.o git-file.o git-hist.o delta.o \ style.o fig.o record.o cro.o diff.o gfx.o dwg.o text.o misc.o diff --git a/eeshow/gui-over.c b/eeshow/gui-over.c index eb2fa94..409b42d 100644 --- a/eeshow/gui-over.c +++ b/eeshow/gui-over.c @@ -33,14 +33,10 @@ #include "util.h" #include "fmt-pango.h" #include "gui-aoi.h" +#include "gui-style.h" #include "gui-over.h" -#define OVER_BORDER 8 -#define OVER_RADIUS 6 -#define OVER_SEP 8 - - struct overlay { const char *s; struct overlay_style style; @@ -56,97 +52,6 @@ struct overlay { }; -#define NORMAL_FONT "Helvetica 10" -#define BOLD_FONT "Helvetica Bold 10" - -#define NORMAL_PAD 8 -#define NORMAL_RADIUS 6 -#define NORMAL_SKIP 8 -#define NORMAL_WIDTH 2 - -#define DENSE_PAD 4 -#define DENSE_RADIUS 3 -#define DENSE_SKIP 5 -#define DENSE_WIDTH 1 - -#define BG_STANDARD { 0.8, 0.9, 1.0, 0.8 } -#define FG_STANDARD { 0.0, 0.0, 0.0, 1.0 } -#define FRAME_STANDARD { 0.5, 0.5, 1.0, 0.7 } - -#define BG_SELECTED BG_STANDARD -#define FG_SELECTED FG_STANDARD -#define FRAME_SELECTED { 0.0, 0.0, 1.0, 0.8 } - -#define BG_DIFF_NEW BG_STANDARD -#define FG_DIFF_NEW { 0.0, 0.6, 0.0, 1.0 } -#define FRAME_DIFF_NEW FRAME_STANDARD - -#define BG_DIFF_NEW_SELECTED BG_DIFF_NEW -#define FG_DIFF_NEW_SELECTED FG_DIFF_NEW -#define FRAME_DIFF_NEW_SELECTED FRAME_SELECTED - -#define BG_DIFF_OLD BG_STANDARD -#define FG_DIFF_OLD { 0.8, 0.0, 0.0, 1.0 } -#define FRAME_DIFF_OLD FRAME_STANDARD - -#define BG_DIFF_OLD_SELECTED BG_DIFF_OLD -#define FG_DIFF_OLD_SELECTED FG_DIFF_OLD -#define FRAME_DIFF_OLD_SELECTED FRAME_SELECTED - - -#define BOX_ATTRS(style) \ - .pad = style##_PAD, \ - .radius = style##_RADIUS, \ - .skip = style##_SKIP, \ - .width = style##_WIDTH - -#define NORMAL BOX_ATTRS(NORMAL) -#define DENSE BOX_ATTRS(DENSE) - -#define COLOR_ATTRS(style) \ - .bg = BG_##style, \ - .fg = FG_##style, \ - .frame = FRAME_##style - -#define STANDARD COLOR_ATTRS(STANDARD) -#define SELECTED COLOR_ATTRS(SELECTED) -#define DIFF_NEW COLOR_ATTRS(DIFF_NEW) -#define DIFF_NEW_SELECTED COLOR_ATTRS(DIFF_NEW_SELECTED) -#define DIFF_OLD COLOR_ATTRS(DIFF_OLD) -#define DIFF_OLD_SELECTED COLOR_ATTRS(DIFF_OLD_SELECTED) - - -struct overlay_style overlay_style_default = { - .font = NORMAL_FONT, - NORMAL, - STANDARD, -}, overlay_style_dense = { - .font = NORMAL_FONT, - DENSE, - STANDARD, -}, overlay_style_dense_selected = { - .font = BOLD_FONT, - DENSE, - SELECTED, -}, overlay_style_diff_new = { - .font = NORMAL_FONT, - NORMAL, - DIFF_NEW, -}, overlay_style_diff_old = { - .font = NORMAL_FONT, - NORMAL, - DIFF_OLD, -}, overlay_style_dense_diff_new = { - .font = BOLD_FONT, - DENSE, - DIFF_NEW_SELECTED, -}, overlay_style_dense_diff_old = { - .font = BOLD_FONT, - DENSE, - DIFF_OLD_SELECTED, -}; - - static void rrect(cairo_t *cr, int x, int y, int w, int h, int r) { const double deg = M_PI / 180.0; diff --git a/eeshow/gui-over.h b/eeshow/gui-over.h index 8b3818a..d734588 100644 --- a/eeshow/gui-over.h +++ b/eeshow/gui-over.h @@ -36,14 +36,6 @@ struct overlay_style { struct overlay; -extern struct overlay_style overlay_style_default; -extern struct overlay_style overlay_style_dense; -extern struct overlay_style overlay_style_dense_selected; -extern struct overlay_style overlay_style_diff_new; -extern struct overlay_style overlay_style_diff_old; -extern struct overlay_style overlay_style_dense_diff_new; -extern struct overlay_style overlay_style_dense_diff_old; - struct overlay *overlay_draw(struct overlay *over, cairo_t *cr, int *x, int *y); void overlay_draw_all(struct overlay *overlays, cairo_t *cr, int x, int y); struct overlay *overlay_add(struct overlay **overlays, struct aoi **aois, diff --git a/eeshow/gui-style.c b/eeshow/gui-style.c new file mode 100644 index 0000000..0f7757a --- /dev/null +++ b/eeshow/gui-style.c @@ -0,0 +1,109 @@ +/* + * gui-style.c - GUI: overlay styles + * + * Written 2016 by Werner Almesberger + * Copyright 2016 by Werner Almesberger + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include "gui-style.h" + + +#define OVER_BORDER 8 +#define OVER_RADIUS 6 +#define OVER_SEP 8 + + +#define NORMAL_FONT "Helvetica 10" +#define BOLD_FONT "Helvetica Bold 10" + +#define NORMAL_PAD 8 +#define NORMAL_RADIUS 6 +#define NORMAL_SKIP 8 +#define NORMAL_WIDTH 2 + +#define DENSE_PAD 4 +#define DENSE_RADIUS 3 +#define DENSE_SKIP 5 +#define DENSE_WIDTH 1 + +#define BG_STANDARD { 0.8, 0.9, 1.0, 0.8 } +#define FG_STANDARD { 0.0, 0.0, 0.0, 1.0 } +#define FRAME_STANDARD { 0.5, 0.5, 1.0, 0.7 } + +#define BG_SELECTED BG_STANDARD +#define FG_SELECTED FG_STANDARD +#define FRAME_SELECTED { 0.0, 0.0, 1.0, 0.8 } + +#define BG_DIFF_NEW BG_STANDARD +#define FG_DIFF_NEW { 0.0, 0.6, 0.0, 1.0 } +#define FRAME_DIFF_NEW FRAME_STANDARD + +#define BG_DIFF_NEW_SELECTED BG_DIFF_NEW +#define FG_DIFF_NEW_SELECTED FG_DIFF_NEW +#define FRAME_DIFF_NEW_SELECTED FRAME_SELECTED + +#define BG_DIFF_OLD BG_STANDARD +#define FG_DIFF_OLD { 0.8, 0.0, 0.0, 1.0 } +#define FRAME_DIFF_OLD FRAME_STANDARD + +#define BG_DIFF_OLD_SELECTED BG_DIFF_OLD +#define FG_DIFF_OLD_SELECTED FG_DIFF_OLD +#define FRAME_DIFF_OLD_SELECTED FRAME_SELECTED + + +#define BOX_ATTRS(style) \ + .pad = style##_PAD, \ + .radius = style##_RADIUS, \ + .skip = style##_SKIP, \ + .width = style##_WIDTH + +#define NORMAL BOX_ATTRS(NORMAL) +#define DENSE BOX_ATTRS(DENSE) + +#define COLOR_ATTRS(style) \ + .bg = BG_##style, \ + .fg = FG_##style, \ + .frame = FRAME_##style + +#define STANDARD COLOR_ATTRS(STANDARD) +#define SELECTED COLOR_ATTRS(SELECTED) +#define DIFF_NEW COLOR_ATTRS(DIFF_NEW) +#define DIFF_NEW_SELECTED COLOR_ATTRS(DIFF_NEW_SELECTED) +#define DIFF_OLD COLOR_ATTRS(DIFF_OLD) +#define DIFF_OLD_SELECTED COLOR_ATTRS(DIFF_OLD_SELECTED) + + +struct overlay_style overlay_style_default = { + .font = NORMAL_FONT, + NORMAL, + STANDARD, +}, overlay_style_dense = { + .font = NORMAL_FONT, + DENSE, + STANDARD, +}, overlay_style_dense_selected = { + .font = BOLD_FONT, + DENSE, + SELECTED, +}, overlay_style_diff_new = { + .font = NORMAL_FONT, + NORMAL, + DIFF_NEW, +}, overlay_style_diff_old = { + .font = NORMAL_FONT, + NORMAL, + DIFF_OLD, +}, overlay_style_dense_diff_new = { + .font = BOLD_FONT, + DENSE, + DIFF_NEW_SELECTED, +}, overlay_style_dense_diff_old = { + .font = BOLD_FONT, + DENSE, + DIFF_OLD_SELECTED, +}; diff --git a/eeshow/gui-style.h b/eeshow/gui-style.h new file mode 100644 index 0000000..445cf55 --- /dev/null +++ b/eeshow/gui-style.h @@ -0,0 +1,27 @@ +/* + * gui-style.h - GUI: overlay styles + * + * Written 2016 by Werner Almesberger + * Copyright 2016 by Werner Almesberger + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#ifndef GUI_STYLE_H +#define GUI_STYLE_H + +#include "gui-over.h" + + +extern struct overlay_style overlay_style_default; +extern struct overlay_style overlay_style_dense; +extern struct overlay_style overlay_style_dense_selected; +extern struct overlay_style overlay_style_diff_new; +extern struct overlay_style overlay_style_diff_old; +extern struct overlay_style overlay_style_dense_diff_new; +extern struct overlay_style overlay_style_dense_diff_old; + +#endif /* !GUI_STYLE_H */ diff --git a/eeshow/gui.c b/eeshow/gui.c index f88599b..766902f 100644 --- a/eeshow/gui.c +++ b/eeshow/gui.c @@ -36,6 +36,7 @@ #include "delta.h" #include "diff.h" #include "gui-aoi.h" +#include "gui-style.h" #include "gui-over.h" #include "gui.h"