⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.c

📁 redboy for gba 是BPNS为GBA编写的一个小软件。软件的邹形是BASIC高级语言解释执行器。几经修改和扩展
💻 C
字号:
#include <CsAgb.h>
#include <graph.h>
#include <Qgraph.h>
#include <rb_stdio.h>
#define mVRAM (u16 *) 0x06000000
#define bk_co RGB(0,15,5)
extern n_box(u8 xp,u8 yp,u8 xp1,u8 yp1,u16 co,u16 bg);
//extern u16 logo_dat[];
extern void show_text(char *tit,char *txt);

extern void wait(u32 count);
const char redboy_help[]=
"欢迎使用REDBOY FOR GBA
=============================
文件管理器操作说明:

A     :进入目录或者打开/选定文件
B     :返回上级目录
R     :删除文件/目录密码
L     :文件/目录加锁
UP    :上一文件/目录
DOWN  :下一文件/目录
LEFT  :上一页文件/目录列表
RIGHT :下一页文件/目录列表
START :清除密码记录

如果是浏览图片,可以按R/L直接浏览上/下一图片.
==============================
文本浏览器操作说明:

R+L   :帮助说明
其它操作说明请进入帮助说明中查看
==============================
菜单操作说明:

UP/LEFT    :上一菜单项目
DOWN/RIGHT :下一菜单项目
A  :选定反显菜单功能
B  :取消菜单
==============================
如何输入密码:

A    :输入
B/L  :删除
R    :结束输入
==============================
如果你在使用中还有其它的疑问,请访问我的网页:
http://202.113.13.169/site/redboy/gba/

bpns 3005-07-10
";
const char main_items[8][20]={
"文件管理器",
"RBASIC编程",
"英语学习",
"游戏娱乐",
"数值计算",
"文本编辑",
"备忘录",
"帮助说明"
};
const char calc_items[4][15]={"1.科学计算","2.公式计算","3.统计运算","4.积分运算"};//计算类
const char file_items[4][15]={"1.开机代码","2.储备管理","3.按键延时","4.密码设置"};
const char engl_items[3][15]={"1.英汉詞典","2.汉语词典","3.词库设置"};
const char game_items[4][15]={"1.俄罗斯方块","2.五子棋","3.扑克游戏","4.推箱子"};
const char card_items[3][15]={"1.通讯录","2.万年历","3.常用资料"};

void wait_key()
{
   while (1)
   {
      CS_ReadKey();
      if (CS_IsAnyKeyDown(KEY_ALL)) break;
   }
}

int menu(char *items,int n)
{
   u8 start=1;
   int i;
   int yp=(160-(n+1)*15)/2;
   int sel=1,old=0,done=1;
   r_box(70,yp,170,yp+(n+1)*15+2,RGB(24,15,13),1);
   Q_box(71,yp+1,169,yp+(n+1)*15-1+2,RGB(30,30,30));
   for (i=0;i<=n;i++) Q_box(72,yp+2+i*15,168,yp+15+i*15,RGB(24,15,13));
   cwrite(75+6,yp+4,0,">>菜单选项<<");
   cwrite(74+6,yp+3,RGB(30,30,30),">>菜单选项<<");
   for (i=1;i<=n;i++)
   {
      cwrite(75,yp+4+15*i,0,items+(i-1)*15);
      cwrite(74,yp+3+15*i,RGB(30,30,30),items+(i-1)*15);
   }
   while (1)
   {
      if (start) {start=0;CS_ReadKey();} else readkey();
      if (CS_IsKeyDown(KEY_UP)||CS_IsKeyDown(KEY_LEFT))
      {
         if (sel>1) sel--;
         else sel=n;
         done=1;
      }
      else if (CS_IsKeyDown(KEY_DOWN)||CS_IsKeyDown(KEY_RIGHT))
      {
         if (sel<n) sel++;
         else sel=1;
         done=1;
      }
      else if (CS_IsKeyDown(KEY_B))
      {
         //main_redraw(70,yp,170,yp+(n+1)*15+2);
         return 0;
      }
      else if (CS_IsKeyDown(KEY_A))
      {
         //main_redraw(70,yp,170,yp+(n+1)*15+2);
         return sel;
      }
      if (done)
      {
         done=0;
         if (old)
         {
            Q_box(72,yp+2+old*15,168,yp+15+old*15,RGB(24,15,13));
            cwrite(75,yp+4+15*old,0,items+(old-1)*15);
            cwrite(74,yp+3+15*old,RGB(30,30,30),items+(old-1)*15);
         }
         Q_box(72,yp+2+sel*15,168,yp+15+sel*15,RGB(13,15,24));
         cwrite(75,yp+4+15*sel,0,items+(sel-1)*15);
         cwrite(74,yp+3+15*sel,RGB(30,30,13),items+(sel-1)*15);
         old=sel;
      }
   }
}
void file_menu()
{
   int sel=menu(file_items,4);
   switch (sel)
   {
      case 1://开机代码
      autorun_select();
      redraw_desk();
      break;
      case 2://储备管理
      rb_sv_files();
      redraw_desk();
      break;
      case 3://按键延时
      set_keydelay();
      redraw_desk();
      break;
      case 4://密码设置
      chg_apsw();
      redraw_desk();
      break;
      default:
      cover_desk();
      break;
   }
}
void calc_menu()
{
   int sel=menu(calc_items,4);
   switch (sel)
   {
      case 1://
      calculator();
      redraw_desk();
      break;
      case 2://
      formula();
      redraw_desk();
      break;
      default:
      cover_desk();
      break;
   }
}
void eng_menu()
{
   int sel=menu(engl_items,3);
   switch (sel)
   {
      case 1://
      eng_dic();
      redraw_desk();
      break;
      case 2://
      cdic();
      redraw_desk();
      break;
      case 3:
      dic_select();
      redraw_desk();
      break;
      default:
      cover_desk();
   }
}
void game_menu()
{
   int sel=menu(game_items,4);
   switch(sel)
   {
      case 2://
      fivechee();
      redraw_desk();
      break;
      case 1://
      fanggame();
      redraw_desk();
      break;
      //case 3://
      //puke();

      //break;
      case 4:
      box_game();
      redraw_desk();
      break;
      default://
      cover_desk();
      return;
   }
}
void card_menu()
{
   int sel=menu(card_items,3);
   switch (sel)
   {
      case 1:
      card_main();
      redraw_desk();
      break;
      case 2://
      calendar();
      redraw_desk();
      break;
      default:
      cover_desk();
   }
}

⌨️ 快捷键说明

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