コード例 #1
0
ファイル: menu.c プロジェクト: Wuzzy2/cdogs-sdl
void MenuDisplay(const MenuSystem *ms)
{
	const menu_t *menu = ms->current;
	if (menu->type == MENU_TYPE_CUSTOM)
	{
		menu->u.customData.displayFunc(
			menu, ms->graphics, ms->pos, ms->size, menu->u.customData.data);
	}
	else
	{
		MenuDisplayItems(ms);

		if (strlen(menu->u.normal.title) != 0)
		{
			FontOpts opts = FontOptsNew();
			opts.HAlign = ALIGN_CENTER;
			opts.Area = ms->size;
			opts.Pad = Vec2iNew(20, 20);
			FontStrOpt(menu->u.normal.title, ms->pos, opts);
		}

		MenuDisplaySubmenus(ms);
	}
	for (int i = 0; i < (int)ms->customDisplayFuncs.size; i++)
	{
		MenuCustomDisplayFunc *cdf = CArrayGet(&ms->customDisplayFuncs, i);
		cdf->Func(NULL, ms->graphics, ms->pos, ms->size, cdf->Data);
	}
	if (menu->customDisplayFunc)
	{
		menu->customDisplayFunc(
			menu, ms->graphics, ms->pos, ms->size, menu->customDisplayData);
	}
}
コード例 #2
0
ファイル: menu.c プロジェクト: jacquelinekay/cdogs-sdl
void MenuDisplay(MenuSystem *menu)
{
	MenuDisplayItems(menu);

	if (strlen(menu->current->u.normal.title) != 0)
	{
		CDogsTextStringSpecial(
			menu->current->u.normal.title,
			TEXT_XCENTER | TEXT_TOP,
			0,
			gGraphicsDevice.cachedConfig.ResolutionWidth / 12);
	}

	MenuDisplaySubmenus(menu->current);
}
コード例 #3
0
ファイル: menu.c プロジェクト: MrDesTinY/cdogs-sdl
void MenuDisplay(MenuSystem *ms)
{
	menu_t *menu = ms->current;
	int i;
	if (menu->type == MENU_TYPE_CUSTOM)
	{
		menu->u.customData.displayFunc(
			ms->graphics, ms->pos, ms->size, menu->u.customData.data);
	}
	else
	{
		MenuDisplayItems(ms);

		if (strlen(menu->u.normal.title) != 0)
		{
			DrawTextStringSpecial(
				menu->u.normal.title,
				TEXT_XCENTER | TEXT_TOP,
				ms->pos,
				ms->size,
				Vec2iNew(0, ms->size.y / 12));
		}

		MenuDisplaySubmenus(ms);
	}
	for (i = 0; i < ms->numCustomDisplayFuncs; i++)
	{
		ms->customDisplayFuncs[i](
			ms->graphics, ms->pos, ms->size, ms->customDisplayDatas[i]);
	}
	if (menu->customDisplayFunc)
	{
		menu->customDisplayFunc(
			ms->graphics, ms->pos, ms->size, menu->customDisplayData);
	}
}