Ejemplo n.º 1
0
static void render(struct widget *w)
{
    struct canvas *ca = &w->ca;

    draw_rect(0, 0, 119, 119, 3, ca);
    draw_frect(1, 1, 118, 118, 1, ca);

    draw_frect(9, 59, 59, 109, 0, ca);
    draw_frect(9, 9, 59, 59, 1, ca);
    draw_frect(59, 9, 109, 59, 2, ca);
    draw_frect(59, 59, 109, 109, 3, ca);

    draw_str("White", 10, 10, ca, 1);
    draw_str("Gray", 60, 10, ca, 1);
    draw_str("Black", 60, 60, ca, 1);
}
Ejemplo n.º 2
0
static void render(struct widget *w)
{
    struct widget_priv *priv = (struct widget_priv*) w->priv;
    struct canvas *ca = &w->ca;
    int i, j, y = -1;
    long yy;
    char buf[10], d = 0;
    int major_tick = priv->range / 5;
    int minor_tick = major_tick / 4;
    
    for (i = 0; i < priv->range; i++) {
        yy = ((long) i * Y_SIZE) / priv->range;
        if ((yy == y) && (d == 1))
            continue;
        y = Y_SIZE - (int) yy;
        j = priv->speed_i + i - priv->range/2;
        if(j < 0)
            continue;
        if (j % major_tick == 0) {
            sprintf(buf, "%3d", j);
            draw_str(buf, 2, y - 2, ca, 0);
            draw_ohline(X_CENTER - 2, X_CENTER + 4, y, 1, 3, ca);
            d = 1;
        } else if (j % minor_tick == 0) {
            draw_ohline(X_CENTER - 2, X_CENTER + 2, y, 1, 3, ca);
            d = 1;
        } else {
            d = 0;
        }
    }

    draw_frect(1, Y_CENTER-4, X_CENTER - 10, Y_CENTER + 4, 0, ca);
    sprintf(buf, "%3d", (int) priv->speed_i);
    draw_str(buf, 2, Y_CENTER - 3, ca, 0);

    draw_hline(0, X_CENTER - 10, Y_CENTER - 5, 1, ca);
    draw_hline(0, X_CENTER - 10, Y_CENTER + 5, 1, ca);
    draw_vline(0, Y_CENTER - 3 , Y_CENTER + 3, 1, ca);

    draw_line(X_CENTER-10, Y_CENTER-5, X_CENTER-10+5, Y_CENTER, 1, ca);
    draw_line(X_CENTER-10, Y_CENTER+5, X_CENTER-10+5, Y_CENTER, 1, ca);
}
Ejemplo n.º 3
0
static void render(struct widget *w)
{
    struct widget_priv *priv = w->priv;
    struct canvas *ca = &w->ca;
    int i, j, y = -1;
    long yy;
    char buf[10], d = 0;
    int major_tick = priv->range / 5;
    int minor_tick = major_tick / 4;

    for (i = 0; i < priv->range; i++) {
        yy = ((long) i * Y_SIZE) / priv->range;
        if ((yy == y) && (d == 1))
            continue;
        y = Y_SIZE - (int) yy;
        j = priv->altitude + i - priv->range/2;
        if (j % major_tick == 0) {
            draw_ohline(X_CENTER + 2, X_CENTER - 4, y, 1, 3, ca);
            sprintf(buf, "%d", j);
            draw_jstr(buf, X_SIZE-2, y, JUST_RIGHT | JUST_VCENTER, ca, 0);
            d = 1;
        } else if (j % minor_tick == 0) {
            draw_ohline(X_CENTER + 2, X_CENTER - 2, y, 1, 3, ca);
            d = 1;
        } else {
            d = 0;
        }
    }

    draw_frect(X_CENTER + 11, Y_CENTER-5, X_SIZE-2, Y_CENTER + 5, 0, ca);

    draw_hline(X_CENTER + 10, X_SIZE - 1, Y_CENTER-6, 1, ca);
    draw_hline(X_CENTER + 10, X_SIZE - 1, Y_CENTER+6, 1, ca);
    draw_vline(X_SIZE - 1, Y_CENTER-5, Y_CENTER+5, 1, ca);

    /* draw arrow */
    draw_line(X_CENTER+10, Y_CENTER-6, X_CENTER+10-5, Y_CENTER, 1, ca);
    draw_line(X_CENTER+10, Y_CENTER+6, X_CENTER+10-5, Y_CENTER, 1, ca);

    sprintf(buf, "%d", (unsigned int) priv->altitude);
    draw_jstr(buf, X_SIZE-2, Y_CENTER, JUST_RIGHT | JUST_VCENTER, ca, 0);
}