Exemple #1
0
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);
}
Exemple #2
0
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);
}
Exemple #3
0
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 : ' ');
	}