void Action_Draw (menuaction_s *a) { int alpha = mouseOverAlpha(&a->generic); if (a->generic.flags & QMF_LEFT_JUSTIFY) { if (a->generic.flags & QMF_GRAYED) Menu_DrawStringDark (a->generic.x + a->generic.parent->x + LCOLUMN_OFFSET, a->generic.y + a->generic.parent->y, a->generic.name, alpha); else Menu_DrawString (a->generic.x + a->generic.parent->x + LCOLUMN_OFFSET, a->generic.y + a->generic.parent->y, a->generic.name, alpha); } else { if (a->generic.flags & QMF_GRAYED) Menu_DrawStringR2LDark (a->generic.x + a->generic.parent->x + LCOLUMN_OFFSET, a->generic.y + a->generic.parent->y, a->generic.name, alpha); else Menu_DrawStringR2L (a->generic.x + a->generic.parent->x + LCOLUMN_OFFSET, a->generic.y + a->generic.parent->y, a->generic.name, alpha); } if (a->generic.ownerdraw) a->generic.ownerdraw(a); }
static void Action_Draw(menuAction_t *a) { if (a->flags & QMF_LEFT_JUSTIFY) DrawString(a->x + a->parent->x + LCOLUMN_OFFSET, a->y + a->parent->y, va("%s%s", a->flags & QMF_GRAYED ? S_GREEN : "", a->name)); else Menu_DrawStringR2L(a->x + a->parent->x + LCOLUMN_OFFSET, a->y + a->parent->y, va("%s%s", a->flags & QMF_GRAYED ? S_GREEN : "", a->name)); if (a->ownerdraw) a->ownerdraw(a); }
static void Field_Draw(menuField_t *f) { int i; char tempbuffer[128]; // draw caption if (f->name) Menu_DrawStringR2L(f->x + f->parent->x + LCOLUMN_OFFSET, f->y + f->parent->y, va(S_GREEN"%s", f->name)); int x = f->x + f->parent->x; int y = f->y + f->parent->y; // draw border #if 1 RE_DrawChar(x + CHAR_WIDTH * 2, y - CHAR_HEIGHT/2, 18); // left RE_DrawChar(x + CHAR_WIDTH * 2, y + CHAR_HEIGHT/2, 24); RE_DrawChar(x + (f->visible_length + 3) * CHAR_WIDTH, y - CHAR_HEIGHT/2, 20); // right RE_DrawChar(x + (f->visible_length + 3) * CHAR_WIDTH, y + CHAR_HEIGHT/2, 26); for (i = 0; i < f->visible_length; i++) { RE_DrawChar(x + (i + 3) * CHAR_WIDTH, y - CHAR_HEIGHT/2, 19); // top RE_DrawChar(x + (i + 3) * CHAR_WIDTH, y + CHAR_HEIGHT/2, 25); // bottom } #else RE_Fill(x + CHAR_WIDTH * 2, y - CHAR_HEIGHT / 2, (f->visible_length + 2) * CHAR_WIDTH, CHAR_HEIGHT * 2, RGBA(1, 0, 0, 0.2)); #endif // perform string drawing without text coloring appStrncpyz(tempbuffer, f->buffer + f->visible_offset, max(f->visible_length, sizeof(tempbuffer))); const char *s = tempbuffer; int x1 = x + 3 * CHAR_WIDTH; while (char c = *s++) { RE_DrawChar(x1, y, c); x1 += CHAR_WIDTH; } if (f->parent->ItemAtCursor() == f) { int offset = (f->visible_offset) ? f->visible_length : f->cursor; // show cursor RE_DrawChar(x + (offset + 3) * CHAR_WIDTH, y, ((cls.realtime >> 8) & 1) ? 11 : ' '); }