menu.c

来自「呵呵」· C语言 代码 · 共 67 行

C
67
字号
void menu_drawbkground(struct menu *menu)
{
window(menu->x+1,menu->y+1,menu->x+menu->w+1,menu->y+menu->h+1);
textbackground(BLACK);
clrscr();
window(menu->x,menu->y,menu->x+menu->w,menu->y+menu->h);
textbackground(GREEN);
clrscr();
window(menu->x+1,menu->y+1,menu->x+menu->w-1,menu->y+menu->h-1);
textbackground(LIGHTGRAY);
clrscr();
}

void menu_drawcur(struct menu *menu,int pos)
{
window(menu->x+1,menu->y+pos,menu->x+menu->w-1,menu->y+pos);
textbackground(CYAN);
clrscr();
}

void menu_clrcur(struct menu *menu,int pos)
{
window(menu->x+1,menu->y+pos,menu->x+menu->w-1,menu->y+pos);
textbackground(LIGHTGRAY);
clrscr();
}

void menu_puttext(struct menu *menu,int pos,int bright)
{
textcolor(YELLOW);
window(menu->x+3,menu->y+pos,menu->x+menu->w-1,menu->y+pos);
if(bright==0)textbackground(LIGHTGRAY);
else textbackground(CYAN);
cprintf("%s",menu->str[pos]);
}

void menu_movecurup(struct menu *menu)
{
if(menu->curpos>1)
	{
	menu_clrcur(menu,menu->curpos);
	menu_puttext(menu,menu->curpos,0);
	menu_drawcur(menu,--menu->curpos);
	menu_puttext(menu,menu->curpos,1);
	}
}

void menu_movecurdown(struct menu *menu)
{
if(menu->curpos<menu->maxpos)
	{
	menu_clrcur(menu,menu->curpos);
	menu_puttext(menu,menu->curpos,0);
	menu_drawcur(menu,++menu->curpos);
	menu_puttext(menu,menu->curpos,1);
	}
}

void menu_preset(struct menu *menu)
{
int i;
menu_drawbkground(menu);
menu_drawcur(menu,1);
menu_puttext(menu,1,1);
for(i=2;i<=menu->maxpos;i++)menu_puttext(menu,i,0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?