diff --git a/GNUmakefile b/GNUmakefile index 134c23a..ece5811 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -15,7 +15,7 @@ E_CFLAGS = $(CFLAGS) E_LDFLAGS = $(LDFLAGS) -Lsrc E_LIBS = $(LIBS) -lMw -L_OBJS = src/ds.o src/core.o src/default.o src/draw.o src/lowlevel.o src/font.o src/image.o +L_OBJS = src/ds.o src/core.o src/default.o src/draw.o src/lowlevel.o src/font.o src/boldfont.o src/image.o L_OBJS += src/window.o src/button.o src/frame.o src/menu.o ifeq ($(TARGET),NetBSD) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index f620fbd..19b7667 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -56,9 +56,10 @@ MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int in * %param handle Widget * %param point Center point of the text * %param text Text + * %param bold Bold * %param color Color */ -MWDECL void MwDrawText(MwWidget handle, MwPoint* point, const char* text, MwLLColor color); +MWDECL void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, MwLLColor color); /*! * %brief Creates a pixmap from image diff --git a/include/Mw/Font.h b/include/Mw/Font.h index 5b9c24d..2a642a2 100644 --- a/include/Mw/Font.h +++ b/include/Mw/Font.h @@ -18,6 +18,11 @@ extern "C" { */ MWDECL MwFont MwFontData[]; +/*! + * %brief Default bold font data + */ +MWDECL MwFont MwBoldFontData[]; + #ifdef __cplusplus } #endif diff --git a/src/boldfont.c b/src/boldfont.c new file mode 100644 index 0000000..c5e741a --- /dev/null +++ b/src/boldfont.c @@ -0,0 +1,137 @@ +/* $Id$ */ +#include + +/** + * Copyright notice: + * "Public domain font. Share and enjoy." + */ +MwFont MwBoldFontData[] = { + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 0 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 1 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 2 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 3 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 4 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 5 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 6 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 7 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 8 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 9 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 10 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 11 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 12 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 13 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 14 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 15 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 16 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 17 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 18 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 19 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 20 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 21 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 22 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 23 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 24 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 25 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 26 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 27 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 28 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 29 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 30 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 31 */ + {0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 32 */ + {0, 12, {0, 0, 24, 24, 24, 24, 24, 24, 24, 0, 24, 24, 0, 0}}, /* 33 */ + {0, 12, {0, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 34 */ + {0, 12, {0, 0, 60, 60, 60, 126, 60, 60, 126, 60, 60, 60, 0, 0}}, /* 35 */ + {0, 12, {0, 0, 24, 60, 90, 90, 56, 28, 26, 90, 90, 60, 24, 0}}, /* 36 */ + {0, 12, {0, 0, 54, 110, 108, 56, 8, 16, 28, 54, 118, 108, 0, 0}}, /* 37 */ + {0, 12, {0, 0, 28, 54, 54, 54, 28, 54, 110, 108, 108, 54, 0, 0}}, /* 38 */ + {0, 12, {0, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 39 */ + {0, 12, {0, 6, 12, 24, 24, 48, 48, 48, 48, 48, 24, 24, 12, 6}}, /* 40 */ + {0, 12, {0, 48, 24, 12, 12, 6, 6, 6, 6, 6, 12, 12, 24, 48}}, /* 41 */ + {0, 12, {0, 0, 90, 90, 60, 24, 60, 90, 90, 0, 0, 0, 0, 0}}, /* 42 */ + {0, 12, {0, 0, 0, 0, 24, 24, 24, 126, 24, 24, 24, 0, 0, 0}}, /* 43 */ + {0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 12, 12, 24}}, /* 44 */ + {0, 12, {0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0}}, /* 45 */ + {0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0}}, /* 46 */ + {0, 12, {0, 6, 6, 6, 12, 12, 24, 24, 24, 48, 48, 96, 96, 96}}, /* 47 */ + {0, 12, {0, 0, 60, 102, 102, 102, 102, 102, 102, 102, 102, 60, 0, 0}}, /* 48 */ + {0, 12, {0, 0, 24, 56, 120, 24, 24, 24, 24, 24, 24, 126, 0, 0}}, /* 49 */ + {0, 12, {0, 0, 60, 102, 102, 6, 12, 12, 24, 48, 96, 126, 0, 0}}, /* 50 */ + {0, 12, {0, 0, 60, 102, 102, 6, 28, 6, 6, 102, 102, 60, 0, 0}}, /* 51 */ + {0, 12, {0, 0, 4, 12, 12, 28, 60, 108, 108, 126, 12, 12, 0, 0}}, /* 52 */ + {0, 12, {0, 0, 126, 96, 96, 124, 102, 6, 6, 102, 102, 60, 0, 0}}, /* 53 */ + {0, 12, {0, 0, 28, 54, 102, 96, 124, 102, 102, 102, 102, 60, 0, 0}}, /* 54 */ + {0, 12, {0, 0, 126, 102, 108, 12, 24, 24, 24, 24, 24, 24, 0, 0}}, /* 55 */ + {0, 12, {0, 0, 60, 102, 102, 102, 60, 60, 102, 102, 102, 60, 0, 0}}, /* 56 */ + {0, 12, {0, 0, 60, 102, 102, 102, 102, 62, 6, 102, 108, 56, 0, 0}}, /* 57 */ + {0, 12, {0, 0, 0, 0, 24, 24, 0, 0, 0, 24, 24, 0, 0, 0}}, /* 58 */ + {0, 12, {0, 0, 0, 0, 12, 12, 0, 0, 0, 28, 12, 12, 24, 0}}, /* 59 */ + {0, 12, {0, 0, 0, 6, 12, 24, 48, 96, 48, 24, 12, 6, 0, 0}}, /* 60 */ + {0, 12, {0, 0, 0, 0, 0, 0, 126, 0, 0, 126, 0, 0, 0, 0}}, /* 61 */ + {0, 12, {0, 0, 0, 96, 48, 24, 12, 6, 12, 24, 48, 96, 0, 0}}, /* 62 */ + {0, 12, {0, 0, 60, 102, 102, 12, 24, 24, 24, 0, 24, 24, 0, 0}}, /* 63 */ + {0, 12, {0, 0, 28, 54, 110, 122, 122, 122, 122, 110, 48, 30, 0, 0}}, /* 64 */ + {0, 12, {0, 0, 60, 126, 102, 102, 102, 102, 126, 102, 102, 102, 0, 0}}, /* 65 */ + {0, 12, {0, 0, 124, 102, 102, 100, 124, 102, 102, 102, 102, 124, 0, 0}}, /* 66 */ + {0, 12, {0, 0, 60, 102, 102, 96, 96, 96, 96, 102, 102, 60, 0, 0}}, /* 67 */ + {0, 12, {0, 0, 120, 108, 102, 102, 102, 102, 102, 102, 108, 120, 0, 0}}, /* 68 */ + {0, 12, {0, 0, 126, 96, 96, 96, 124, 96, 96, 96, 96, 126, 0, 0}}, /* 69 */ + {0, 12, {0, 0, 126, 96, 96, 96, 124, 96, 96, 96, 96, 96, 0, 0}}, /* 70 */ + {0, 12, {0, 0, 60, 102, 102, 96, 96, 110, 102, 102, 102, 60, 0, 0}}, /* 71 */ + {0, 12, {0, 0, 102, 102, 102, 102, 126, 102, 102, 102, 102, 102, 0, 0}}, /* 72 */ + {0, 12, {0, 0, 126, 24, 24, 24, 24, 24, 24, 24, 24, 126, 0, 0}}, /* 73 */ + {0, 12, {0, 0, 6, 6, 6, 6, 6, 6, 6, 102, 108, 56, 0, 0}}, /* 74 */ + {0, 12, {0, 0, 102, 108, 120, 112, 112, 120, 120, 108, 102, 102, 0, 0}}, /* 75 */ + {0, 12, {0, 0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 126, 0, 0}}, /* 76 */ + {0, 12, {0, 0, 66, 102, 102, 126, 126, 102, 102, 102, 102, 102, 0, 0}}, /* 77 */ + {0, 12, {0, 0, 102, 102, 118, 118, 118, 110, 110, 110, 102, 102, 0, 0}}, /* 78 */ + {0, 12, {0, 0, 60, 102, 102, 102, 102, 102, 102, 102, 102, 60, 0, 0}}, /* 79 */ + {0, 12, {0, 0, 124, 102, 102, 102, 102, 124, 96, 96, 96, 96, 0, 0}}, /* 80 */ + {0, 12, {0, 0, 60, 102, 102, 102, 102, 102, 118, 110, 102, 60, 6, 2}}, /* 81 */ + {0, 12, {0, 0, 124, 102, 102, 102, 124, 108, 102, 102, 102, 102, 0, 0}}, /* 82 */ + {0, 12, {0, 0, 60, 102, 102, 48, 24, 24, 12, 102, 102, 60, 0, 0}}, /* 83 */ + {0, 12, {0, 0, 126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0}}, /* 84 */ + {0, 12, {0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 60, 0, 0}}, /* 85 */ + {0, 12, {0, 0, 102, 102, 102, 102, 102, 102, 102, 60, 60, 24, 0, 0}}, /* 86 */ + {0, 12, {0, 0, 102, 102, 102, 102, 102, 126, 126, 126, 126, 36, 0, 0}}, /* 87 */ + {0, 12, {0, 0, 102, 102, 60, 60, 24, 24, 60, 60, 102, 102, 0, 0}}, /* 88 */ + {0, 12, {0, 0, 102, 102, 102, 60, 60, 24, 24, 24, 24, 24, 0, 0}}, /* 89 */ + {0, 12, {0, 0, 126, 6, 12, 12, 24, 24, 48, 48, 96, 126, 0, 0}}, /* 90 */ + {0, 12, {0, 62, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 62}}, /* 91 */ + {0, 12, {0, 96, 96, 96, 48, 48, 24, 24, 24, 12, 12, 6, 6, 6}}, /* 92 */ + {0, 12, {0, 62, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 62}}, /* 93 */ + {0, 12, {24, 60, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 94 */ + {0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126}}, /* 95 */ + {0, 12, {0, 48, 24, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 96 */ + {0, 12, {0, 0, 0, 0, 0, 60, 102, 14, 54, 102, 102, 62, 0, 0}}, /* 97 */ + {0, 12, {0, 0, 96, 96, 96, 124, 102, 102, 102, 102, 102, 124, 0, 0}}, /* 98 */ + {0, 12, {0, 0, 0, 0, 0, 60, 102, 96, 96, 96, 102, 60, 0, 0}}, /* 99 */ + {0, 12, {0, 0, 6, 6, 6, 62, 102, 102, 102, 102, 102, 62, 0, 0}}, /* 100 */ + {0, 12, {0, 0, 0, 0, 0, 60, 102, 102, 126, 96, 102, 60, 0, 0}}, /* 101 */ + {0, 12, {0, 0, 12, 30, 24, 24, 126, 24, 24, 24, 24, 24, 0, 0}}, /* 102 */ + {0, 12, {0, 0, 0, 0, 0, 58, 110, 108, 108, 56, 32, 124, 102, 60}}, /* 103 */ + {0, 12, {0, 0, 96, 96, 96, 124, 102, 102, 102, 102, 102, 102, 0, 0}}, /* 104 */ + {0, 12, {0, 0, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 0, 0}}, /* 105 */ + {0, 12, {0, 0, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 54, 28}}, /* 106 */ + {0, 12, {0, 0, 96, 96, 96, 100, 108, 120, 120, 108, 102, 98, 0, 0}}, /* 107 */ + {0, 12, {0, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0}}, /* 108 */ + {0, 12, {0, 0, 0, 0, 0, 108, 126, 126, 126, 126, 126, 102, 0, 0}}, /* 109 */ + {0, 12, {0, 0, 0, 0, 0, 124, 102, 102, 102, 102, 102, 102, 0, 0}}, /* 110 */ + {0, 12, {0, 0, 0, 0, 0, 60, 102, 102, 102, 102, 102, 60, 0, 0}}, /* 111 */ + {0, 12, {0, 0, 0, 0, 0, 124, 102, 102, 102, 102, 102, 124, 96, 96}}, /* 112 */ + {0, 12, {0, 0, 0, 0, 0, 62, 102, 102, 102, 102, 102, 62, 6, 6}}, /* 113 */ + {0, 12, {0, 0, 0, 0, 0, 124, 102, 102, 96, 96, 96, 96, 0, 0}}, /* 114 */ + {0, 12, {0, 0, 0, 0, 0, 60, 102, 48, 24, 12, 102, 60, 0, 0}}, /* 115 */ + {0, 12, {0, 0, 24, 24, 24, 126, 24, 24, 24, 24, 24, 14, 0, 0}}, /* 116 */ + {0, 12, {0, 0, 0, 0, 0, 102, 102, 102, 102, 102, 102, 62, 0, 0}}, /* 117 */ + {0, 12, {0, 0, 0, 0, 0, 102, 102, 102, 60, 60, 24, 24, 0, 0}}, /* 118 */ + {0, 12, {0, 0, 0, 0, 0, 102, 102, 126, 126, 126, 126, 36, 0, 0}}, /* 119 */ + {0, 12, {0, 0, 0, 0, 0, 102, 102, 60, 24, 60, 102, 102, 0, 0}}, /* 120 */ + {0, 12, {0, 0, 0, 0, 0, 102, 102, 54, 54, 28, 28, 12, 108, 56}}, /* 121 */ + {0, 12, {0, 0, 0, 0, 0, 126, 6, 12, 24, 48, 96, 126, 0, 0}}, /* 122 */ + {0, 12, {0, 14, 24, 24, 24, 24, 24, 48, 24, 24, 24, 24, 24, 14}}, /* 123 */ + {0, 12, {0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24}}, /* 124 */ + {0, 12, {0, 56, 12, 12, 12, 12, 12, 6, 12, 12, 12, 12, 12, 56}}, /* 125 */ + {0, 12, {0, 34, 122, 94, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 126 */ + {0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}} /* 127 */ +}; diff --git a/src/button.c b/src/button.c index 6f8bf54..eb182c7 100644 --- a/src/button.c +++ b/src/button.c @@ -48,7 +48,7 @@ static void draw(MwWidget handle) { point.x = r.x + r.width / 2; point.y = r.x + r.height / 2; - MwDrawText(handle, &point, str, text); + MwDrawText(handle, &point, str, 0, text); } MwLLFreeColor(text); diff --git a/src/draw.c b/src/draw.c index ce388d0..ddc7186 100644 --- a/src/draw.c +++ b/src/draw.c @@ -127,7 +127,7 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i rect->height -= border * 2; } -void MwDrawText(MwWidget handle, MwPoint* point, const char* text, MwLLColor color) { +void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, MwLLColor color) { int i, x, y, sx, sy; MwRect r; @@ -142,7 +142,7 @@ void MwDrawText(MwWidget handle, MwPoint* point, const char* text, MwLLColor col r.width = FontScale; r.height = FontScale; - if(MwFontData[(unsigned char)text[i]].data[y] & (1 << ((FontWidth - 1) - x))) { + if((bold ? MwBoldFontData : MwFontData)[(unsigned char)text[i]].data[y] & (1 << ((FontWidth - 1) - x))) { MwDrawRect(handle, &r, color); } } diff --git a/src/menu.c b/src/menu.c index ce3fa95..b8fa664 100644 --- a/src/menu.c +++ b/src/menu.c @@ -85,7 +85,7 @@ static void draw(MwWidget handle) { p.x += tw / 2; - MwDrawText(handle, &p, m->sub[i]->name, text); + MwDrawText(handle, &p, m->sub[i]->name, 1, text); p.x += tw / 2 + 20; }