Browse Source

Added type gFontmetric to replace V2.x fontmetric_t, and values gFontXXX replace fontXXX

remotes/origin_old/release/v2.9
inmarket 4 years ago
parent
commit
a24fab0d72
  1. 5
      changelog.txt
  2. 2
      demos/games/tetris/tetris.c
  3. 4
      demos/modules/gdisp/fonts/main.c
  4. 2
      demos/tools/touch_calibration_grabber/main.c
  5. 2
      demos/tools/touch_driver_test/main.c
  6. 2
      demos/tools/touch_raw_readings/main.c
  7. 18
      src/gdisp/gdisp.c
  8. 41
      src/gdisp/gdisp.h
  9. 18
      src/gwin/gwin_console.c
  10. 2
      src/gwin/gwin_label.c
  11. 12
      src/gwin/gwin_list.c
  12. 4
      src/gwin/gwin_textedit.c

5
changelog.txt

@ -23,8 +23,9 @@ CHANGE: Added type gPoint to replace V2.x point and point_t
CHANGE: Added type gCoord to replace V2.x coord_t
CHANGE: Added type gPixel to replace V2.x pixel_t
CHANGE: Added type gColor to replace V2.x color_t
CHANGE: Added type gPowermode to replace V2.x powermode_t, and values gPowerXXX replace powerXXX
CHANGE: Added type gJustify to replace V2.x justify_t, and values gJustifyXXX replace justifyXXX
CHANGE: Added type gPowermode to replace V2.x powermode_t, and values gPowerXXX replace powerXXX
CHANGE: Added type gJustify to replace V2.x justify_t, and values gJustifyXXX replace justifyXXX
CHANGE: Added type gFontmetric to replace V2.x fontmetric_t, and values gFontXXX replace fontXXX
FIX: Added gfxRealloc() to Qt port
FIX: Fixed UC1610 driver private area initialisation
FIX: Fixed ST7735 driver and added kapacuk changes

2
demos/games/tetris/tetris.c

@ -262,7 +262,7 @@ static void printGameOver(void) {
}
static void printTouchAreas(void) {
gdispDrawStringBox(0, 0, gdispGetWidth(), gdispGetFontMetric(font16, fontHeight), "Touch Area's", font16, GFX_WHITE, gJustifyCenter);
gdispDrawStringBox(0, 0, gdispGetWidth(), gdispGetFontMetric(font16, gFontHeight), "Touch Area's", font16, GFX_WHITE, gJustifyCenter);
gdispDrawStringBox(0, 0, gdispGetWidth(), gdispGetHeight()/4, "Pause", font16, GFX_GRAY, gJustifyCenter);
gdispDrawStringBox(0, gdispGetHeight()/4, gdispGetWidth(), gdispGetHeight()/2, "Rotate", font16, GFX_GRAY, gJustifyCenter);
gdispDrawStringBox(0, gdispGetHeight()-(gdispGetHeight()/4), gdispGetWidth()/4, gdispGetHeight()/4, "Left", font16, GFX_GRAY, gJustifyCenter);

4
demos/modules/gdisp/fonts/main.c

@ -53,8 +53,8 @@ int main(void) {
//font2 = gdispOpenFont("Apple*");
y = 0;
fheight1 = gdispGetFontMetric(font1, fontHeight)+2;
fheight2 = gdispGetFontMetric(font2, fontHeight)+2;
fheight1 = gdispGetFontMetric(font1, gFontHeight)+2;
fheight2 = gdispGetFontMetric(font2, gFontHeight)+2;
line1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
line2 = "0123456789~!@#$%^&*_-+=(){}[]<>|/\\:;,.?'\"`";

2
demos/tools/touch_calibration_grabber/main.c

@ -55,7 +55,7 @@ int main(void) {
// Create our title
font = gdispOpenFont("UI2");
gwinSetDefaultFont(font);
bHeight = gdispGetFontMetric(font, fontHeight)+4;
bHeight = gdispGetFontMetric(font, gFontHeight)+4;
gdispFillStringBox(0, 0, swidth, bHeight, "Touchscreen Calibration Grabber", font, GFX_RED, GFX_WHITE, gJustifyCenter);
// Create our main display writing window

2
demos/tools/touch_driver_test/main.c

@ -115,7 +115,7 @@ int main(void) {
bHeight = gdispGetStringWidth("-", font)*2;
if (bHeight > bWidth2) bWidth2 = bHeight;
bWidth2 += 4;
bHeight = gdispGetFontMetric(font, fontHeight)*2+2;
bHeight = gdispGetFontMetric(font, gFontHeight)*2+2;
// Create our main display window
{

2
demos/tools/touch_raw_readings/main.c

@ -60,7 +60,7 @@ int main(void) {
// Create our title
font = gdispOpenFont("UI2");
gwinSetDefaultFont(font);
bHeight = gdispGetFontMetric(font, fontHeight)+4;
bHeight = gdispGetFontMetric(font, gFontHeight)+4;
gdispFillStringBox(0, 0, swidth, bHeight, "Raw Touch Readings", font, GFX_RED, GFX_WHITE, gJustifyCenter);
// Create our main display writing window

18
src/gdisp/gdisp.c

@ -3608,19 +3608,19 @@ void gdispGDrawBox(GDisplay *g, gCoord x, gCoord y, gCoord cx, gCoord cy, gColor
MUTEX_EXIT(g);
}
gCoord gdispGetFontMetric(font_t font, fontmetric_t metric) {
gCoord gdispGetFontMetric(font_t font, gFontmetric metric) {
if (!font)
return 0;
/* No mutex required as we only read static data */
switch(metric) {
case fontHeight: return font->height;
case fontDescendersHeight: return font->height - font->baseline_y;
case fontLineSpacing: return font->line_height;
case fontCharPadding: return 0;
case fontMinWidth: return font->min_x_advance;
case fontMaxWidth: return font->max_x_advance;
case fontBaselineX: return font->baseline_x;
case fontBaselineY: return font->baseline_y;
case gFontHeight: return font->height;
case gFontDescendersHeight: return font->height - font->baseline_y;
case gFontLineSpacing: return font->line_height;
case gFontCharPadding: return 0;
case gFontMinWidth: return font->min_x_advance;
case gFontMaxWidth: return font->max_x_advance;
case gFontBaselineX: return font->baseline_x;
case gFontBaselineY: return font->baseline_y;
}
return 0;
}

41
src/gdisp/gdisp.h

@ -73,19 +73,19 @@ typedef enum gJustify {
#define JUSTIFYMASK_TOPBOTTOM (gJustifyTop|gJustifyMiddle|gJustifyBottom)
/**
* @enum fontmetric
* @enum gFontmetric
* @brief Type for the font metric.
*/
typedef enum fontmetric {
fontHeight, /**< The height of the font */
fontDescendersHeight, /**< The descenders height */
fontLineSpacing, /**< The line spacing */
fontCharPadding, /**< The char padding */
fontMinWidth, /**< The minimum width */
fontMaxWidth, /**< The maximum width */
fontBaselineX, /**< The base line in x direction */
fontBaselineY /**< The base line in y direction */
} fontmetric_t;
typedef enum gFontmetric {
gFontHeight, /**< The height of the font */
gFontDescendersHeight, /**< The descenders height */
gFontLineSpacing, /**< The line spacing */
gFontCharPadding, /**< The char padding */
gFontMinWidth, /**< The minimum width */
gFontMaxWidth, /**< The maximum width */
gFontBaselineX, /**< The base line in x direction */
gFontBaselineY /**< The base line in y direction */
} gFontmetric;
/**
* @brief The type of a font.
@ -1013,7 +1013,7 @@ void gdispGDrawBox(GDisplay *g, gCoord x, gCoord y, gCoord cx, gCoord cy, gColor
*
* @api
*/
gCoord gdispGetFontMetric(font_t font, fontmetric_t metric);
gCoord gdispGetFontMetric(font_t font, gFontmetric metric);
/**
* @brief Get the pixel width of a character.
@ -1230,6 +1230,10 @@ void gdispGDrawBox(GDisplay *g, gCoord x, gCoord y, gCoord cx, gCoord cy, gColor
/* V2 compatibility */
#if GFX_COMPAT_V2
typedef gColor color_t;
typedef gPixel pixel_t;
typedef gCoord coord_t;
typedef gPoint point, point_t;
typedef gPowermode powermode_t;
#define powerOff gPowerOff
#define powerDeepSleep gPowerDeepSleep
@ -1246,10 +1250,15 @@ void gdispGDrawBox(GDisplay *g, gCoord x, gCoord y, gCoord cx, gCoord cy, gColor
#define justifyNoWordWrap gJustifyNoWordWrap
#define justifyPad gJustifyPad
#define justifyNoPad gJustifyNoPad
typedef gColor color_t;
typedef gPixel pixel_t;
typedef gCoord coord_t;
typedef gPoint point, point_t;
typedef gFontmetric fontmetric_t;
#define fontHeight gFontHeight
#define fontDescendersHeight gFontDescendersHeight
#define fontLineSpacing gFontLineSpacing
#define fontCharPadding gFontCharPadding
#define fontMinWidth gFontMinWidth
#define fontMaxWidth gFontMaxWidth
#define fontBaselineX gFontBaselineX
#define fontBaselineY gFontBaselineY
#endif
#endif /* GFX_USE_GDISP */

18
src/gwin/gwin_console.c

@ -200,7 +200,7 @@
return;
// Handle vertical size decrease - We have to scroll out first lines of the log
fy = gdispGetFontMetric(gh->font, fontHeight);
fy = gdispGetFontMetric(gh->font, gFontHeight);
while (gcw->cy > gh->height) {
scrollBuffer(gcw);
gcw->cy -= fy;
@ -233,7 +233,7 @@
y = gcw->cy;
if (gcw->cx)
y += gdispGetFontMetric(gh->font, fontHeight);
y += gdispGetFontMetric(gh->font, gFontHeight);
if (y < gh->height)
gdispGFillArea(gh->display, gh->x, gh->y+y, gh->width, gh->height-y, gh->bgcolor);
}
@ -397,14 +397,14 @@ GHandle gwinGConsoleCreate(GDisplay *g, GConsoleObject *gc, const GWindowInit *p
// Get the number of characters that fit in the x direction
#if GWIN_CONSOLE_HISTORY_AVERAGING
gcw->bufsize = gh->width / ((2*gdispGetFontMetric(gh->font, fontMinWidth)+gdispGetFontMetric(gh->font, fontMaxWidth))/3);
gcw->bufsize = gh->width / ((2*gdispGetFontMetric(gh->font, gFontMinWidth)+gdispGetFontMetric(gh->font, gFontMaxWidth))/3);
#else
gcw->bufsize = gh->width / gdispGetFontMetric(gh->font, fontMinWidth);
gcw->bufsize = gh->width / gdispGetFontMetric(gh->font, gFontMinWidth);
#endif
gcw->bufsize++; // Allow space for a newline on each line.
// Multiply by the number of lines
gcw->bufsize *= gh->height / gdispGetFontMetric(gh->font, fontHeight);
gcw->bufsize *= gh->height / gdispGetFontMetric(gh->font, gFontHeight);
// Allocate the buffer
if (!(gcw->buffer = gfxAlloc(gcw->bufsize)))
@ -438,7 +438,7 @@ void gwinPutChar(GHandle gh, char c) {
if (gh->vmt != &consoleVMT || !gh->font)
return;
fy = gdispGetFontMetric(gh->font, fontHeight);
fy = gdispGetFontMetric(gh->font, gFontHeight);
#if GWIN_CONSOLE_ESCSEQ
/**
@ -603,8 +603,8 @@ void gwinPutChar(GHandle gh, char c) {
#if GWIN_CONSOLE_ESCSEQ
// Draw the underline
if ((gcw->currattr & ESC_UNDERLINE))
gdispGDrawLine(gh->display, gh->x + gcw->cx, gh->y + gcw->cy + fy - gdispGetFontMetric(gh->font, fontDescendersHeight),
gh->x + gcw->cx + width + gdispGetFontMetric(gh->font, fontCharPadding), gh->y + gcw->cy + fy - gdispGetFontMetric(gh->font, fontDescendersHeight),
gdispGDrawLine(gh->display, gh->x + gcw->cx, gh->y + gcw->cy + fy - gdispGetFontMetric(gh->font, gFontDescendersHeight),
gh->x + gcw->cx + width + gdispGetFontMetric(gh->font, gFontCharPadding), gh->y + gcw->cy + fy - gdispGetFontMetric(gh->font, gFontDescendersHeight),
ESCPrintColor(gcw));
// Bold (very crude)
if ((gcw->currattr & ESC_BOLD))
@ -615,7 +615,7 @@ void gwinPutChar(GHandle gh, char c) {
}
// Update the cursor
gcw->cx += width + gdispGetFontMetric(gh->font, fontCharPadding);
gcw->cx += width + gdispGetFontMetric(gh->font, gFontCharPadding);
#undef gcw
}

2
src/gwin/gwin_label.c

@ -32,7 +32,7 @@ static gCoord getheight(const char *text, font_t font, gCoord maxwidth) {
(void) text;
(void) maxwidth;
return gdispGetFontMetric(font, fontHeight);
return gdispGetFontMetric(font, gFontHeight);
}
static const gwidgetVMT labelVMT = {

12
src/gwin/gwin_list.c

@ -60,7 +60,7 @@ static void sendListEvent(GWidgetObject *gw, int item) {
gCoord iheight;
(void) x;
iheight = gdispGetFontMetric(gw->g.font, fontHeight) + LST_VERT_PAD;
iheight = gdispGetFontMetric(gw->g.font, gFontHeight) + LST_VERT_PAD;
// Handle click over the list area
item = (gw2obj->top + y) / iheight;
@ -101,7 +101,7 @@ static void sendListEvent(GWidgetObject *gw, int item) {
return;
// Some initial stuff
iheight = gdispGetFontMetric(gw->g.font, fontHeight) + LST_VERT_PAD;
iheight = gdispGetFontMetric(gw->g.font, gFontHeight) + LST_VERT_PAD;
pgsz = gw->g.height-2;
// Handle click over the scroll bar
@ -163,7 +163,7 @@ static void sendListEvent(GWidgetObject *gw, int item) {
if (gw2obj->last_mouse_y != y) {
oldtop = gw2obj->top;
iheight = gdispGetFontMetric(gw->g.font, fontHeight) + LST_VERT_PAD;
iheight = gdispGetFontMetric(gw->g.font, gFontHeight) + LST_VERT_PAD;
gw2obj->top -= y - gw2obj->last_mouse_y;
if (gw2obj->top >= gw2obj->cnt * iheight - (gw->g.height-2))
@ -185,7 +185,7 @@ static void sendListEvent(GWidgetObject *gw, int item) {
int i;
gCoord iheight;
iheight = gdispGetFontMetric(gw->g.font, fontHeight) + LST_VERT_PAD;
iheight = gdispGetFontMetric(gw->g.font, gFontHeight) + LST_VERT_PAD;
switch (role) {
// select down
@ -664,7 +664,7 @@ void gwinListViewItem(GHandle gh, int item) {
return;
// Work out a possible new top for the list
iheight = gdispGetFontMetric(gh->font, fontHeight) + LST_VERT_PAD;
iheight = gdispGetFontMetric(gh->font, gFontHeight) + LST_VERT_PAD;
gh2obj->top = iheight * item;
// Adjust the list
@ -725,7 +725,7 @@ void gwinListDefaultDraw(GWidgetObject* gw, void* param) {
return;
ps = (gw->g.flags & GWIN_FLG_SYSENABLED) ? &gw->pstyle->enabled : &gw->pstyle->disabled;
iheight = gdispGetFontMetric(gw->g.font, fontHeight) + LST_VERT_PAD;
iheight = gdispGetFontMetric(gw->g.font, gFontHeight) + LST_VERT_PAD;
x = 1;
// the scroll area

4
src/gwin/gwin_textedit.c

@ -307,8 +307,8 @@ void gwinTexteditDefaultDraw(GWidgetObject* gw, void* param)
// Calculate cursor stuff
// Draw cursor
tpos += gw->g.x + CURSOR_PADDING_LEFT + TEXT_PADDING_LEFT + gdispGetFontMetric(gw->g.font, fontBaselineX)/2;
cpos = (gw->g.height - gdispGetFontMetric(gw->g.font, fontHeight))/2 - CURSOR_EXTRA_HEIGHT;
tpos += gw->g.x + CURSOR_PADDING_LEFT + TEXT_PADDING_LEFT + gdispGetFontMetric(gw->g.font, gFontBaselineX)/2;
cpos = (gw->g.height - gdispGetFontMetric(gw->g.font, gFontHeight))/2 - CURSOR_EXTRA_HEIGHT;
gdispGDrawLine(gw->g.display, tpos, gw->g.y + cpos, tpos, gw->g.y + gw->g.height - cpos, pcol->edge);
}

Loading…
Cancel
Save