示例#1
0
文件: main.c 项目: gnkarn/ucglib
void vrule(ucg_t *ucg, ucg_int_t x, ucg_int_t y, ucg_int_t len, int is_right)
{
    char s[10];
    ucg_int_t o = rule_offset;
    ucg_int_t w;

    prepare_measure(ucg);
    sprintf(s, "%d", len);
    ucg_SetFontPosBaseline(ucg);
    w = ucg_GetStrWidth(ucg, s);
    if ( is_right )
    {
        ucg_DrawVLine(ucg, x+o, y, len);
        ucg_DrawHLine(ucg, x-1+o, y, 3);
        ucg_DrawHLine(ucg, x-1+o, y+len-1, 3);
        ucg_SetFontPosBottom(ucg);
        ucg_DrawString(ucg, x+o-1, y + len/2 - w/2 + 1, 1, s);
    }
    else
    {
        ucg_DrawVLine(ucg, x-o, y, len);
        ucg_DrawHLine(ucg, x-1-o, y, 3);
        ucg_DrawHLine(ucg, x-1-o, y+len-1, 3);
        ucg_SetFontPosBottom(ucg);
        ucg_DrawString(ucg, x-o+1, y + len - ( len/2 - w/2 + 1), 3, s);
    }
}
示例#2
0
文件: main.c 项目: gnkarn/ucglib
void draw_text_ascent_descent(ucg_t *ucg)
{
    prepare_picture(ucg);

    ucg_SetFont(ucg, ucg_font_ncenB24_tf);
    ucg_SetFontPosBaseline(ucg);
    ucg_SetColor(ucg, 0, 0, 0, 255);		/* draw blue "baseline" */
    ucg_DrawHLine(ucg, 42+ox, 30, ucg_GetStrWidth(ucg, "Ucg"));
    ucg_SetColor(ucg, 0, 255, 255, 255);		/* draw white "Ucg" */
    ucg_DrawString(ucg, 42+ox, 30, 0, "Ucg");
    pos(ucg, 42+ox, 30, 0);
    ucg_SetFont(ucg, ucg_font_ncenB24_tf);
    vrule(ucg, 42+ox+ucg_GetStrWidth(ucg, "Ucg"), 30-ucg_GetFontAscent(ucg), ucg_GetFontAscent(ucg), 1);
    ucg_SetFont(ucg, ucg_font_ncenB24_tf);
    vrule(ucg, 42+ox+ucg_GetStrWidth(ucg, "Ucg"), 30, -ucg_GetFontDescent(ucg), 1);

    save_picture(ucg, "draw_text_ascent_descent");
}
示例#3
0
文件: main.c 项目: gnkarn/ucglib
void draw_text_center(ucg_t *ucg)
{
    prepare_picture(ucg);

    ucg_SetFont(ucg, ucg_font_ncenB18_tf);
    ucg_SetFontPosCenter(ucg);
    ucg_SetColor(ucg, 0, 0, 0, 255);		/* draw blue "baseline" */
    ucg_DrawHLine(ucg, 45+ox, 30, ucg_GetStrWidth(ucg, "Ucg"));
    ucg_SetColor(ucg, 0, 255, 255, 255);		/* draw white "Ucg" */
    ucg_DrawString(ucg, 45+ox, 30, 0, "Ucg");
    pos(ucg, 45+ox, 30, 0);

    save_picture(ucg, "draw_text_center");
}
示例#4
0
// Lua: width = ucg.getStrWidth( self, string )
static int lucg_getStrWidth( lua_State *L )
{
    lucg_userdata_t *lud;

    if ((lud = get_lud( L )) == NULL)
        return 0;

    const char *s = luaL_checkstring( L, 2 );
    if (s == NULL)
        return 0;

    lua_pushinteger( L, ucg_GetStrWidth( LUCG, s ) );

    return 1;
}
示例#5
0
文件: main.c 项目: gnkarn/ucglib
void pos(ucg_t *ucg, ucg_int_t x, ucg_int_t y, int is_right)
{
    char s[20];
    ucg_int_t w;
    prepare_measure(ucg);
    sprintf(s, "(%d,%d)", x-ox, y);
    w = ucg_GetStrWidth(ucg, s);
    ucg_DrawPixel(ucg, x, y);
    ucg_SetFontPosCenter(ucg);
    if (  is_right )
    {
        ucg_DrawString(ucg, x+1, y, 0, s);
        //ucg_DrawHLine(ucg, x+1, y, w);
    }
    else
    {
        ucg_DrawString(ucg, x+1-w, y, 0, s);
        //ucg_DrawHLine(ucg, x+1-w, y, w);
    }
}
示例#6
0
文件: main.c 项目: gnkarn/ucglib
/*
  pos = 1 above
  pos = 0
  pos = -1 below
*/
void hrule(ucg_t *ucg, ucg_int_t x, ucg_int_t y, ucg_int_t len, int is_below)
{
    char s[10];
    ucg_int_t o = rule_offset;
    ucg_int_t w;

    if ( is_below )
    {
        ucg_SetFontPosTop(ucg);
        o  = -o;
    }
    else
    {
        ucg_SetFontPosBottom(ucg);
    }

    prepare_measure(ucg);
    ucg_DrawHLine(ucg, x, y-o, len);
    ucg_DrawVLine(ucg, x, y-1-o, 3);
    ucg_DrawVLine(ucg, x+len-1, y-1-o, 3);
    sprintf(s, "%d", len);
    w = ucg_GetStrWidth(ucg, s);
    ucg_DrawString(ucg, x + len/2 - w/2, y-o+1, 0, s);
}