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

📄 switchmode.c

📁 PSP YDICT ver0.3 改进的功能 1。在《牛津现代英汉双解词典》中
💻 C
字号:
//
//	This program is free software; you can redistribute it and/or
//	modify it under the terms of the GNU General Public License
//
//	Copyright (c) 2005 ZYM <yanming.zhang@gmail.com>
//
#include <pspctrl.h>
#include <stdio.h>
#include "main.h"

void disp_switchmode_page(int laststate);

void ydict_switchmode(int laststate)
{
	struct ydictctrl yctrl;

	while(1) {
		disp_switchmode_page(laststate);

		getcontrol(&yctrl);
		switch (yctrl.buttons)
		{
		case PSP_CTRL_TRIANGLE:
			// change dict
			gstate = STATE_SELECTDICT;
			return;
		case PSP_CTRL_CIRCLE:
			// switch_mode
			if (laststate == STATE_BROWSE) {
				gstate = STATE_RING_KEY;
				ydictconf.mode = RINGKEY_MODE;
				ydictconf.changed = 1;
			}
			else if (laststate == STATE_RING_KEY) {
				gstate = STATE_BROWSE;
				ydictconf.mode = BROWSE_MODE;
				ydictconf.changed = 1;
			}
			return;
		case PSP_CTRL_CROSS:
			// help 
			break;
		case PSP_CTRL_SQUARE:
			// clear all tag
			 if (tagfilep!=NULL)
			 {
				unsigned char tag;
				int i;
				i=0;
				while (i<wordcount) {
					tag = *(tagfilep+i);
					tag &= 0xF0;
					*(tagfilep+i)=tag;
					i++;
				}
				tagchanged=1;
			}
			gstate = laststate;
			return;
		case PSP_CTRL_SELECT:
			gstate = laststate;
			return;
		default:
			break;
		}
		
	}
}

void disp_switchmode_page(int laststate)
{
	pgWaitV();
	pgFillvram(BG_COLOR);
	// draw the top line
	chDrawRec(0, 16, SCREEN_WIDTH, 4, FG_COLOR, 1);
	// draw bottom horizon line
	chDrawRec(0, 16+4+WORDLIST_SIZE*16, SCREEN_WIDTH, 2, FG_COLOR, 1);
	// draw version
	pgPrint(0, CMAX_Y-1, FG_COLOR, VERSION);

	// triangle menu
	chDrawString(MENU_X, MENU_Y, TRIANGLE_COLOR, BG_COLOR, TRIANGLE_MENU, 1, 1);
	chDrawString(MENU_X+3*16, MENU_Y,
		FG_COLOR, BG_COLOR, CHANGE_DICT_MENU, 1, 1);

	// circle menu
	chDrawString(MENU_X, MENU_Y+MENU_DELTA, CIRCLE_COLOR, BG_COLOR, CIRCLE_MENU, 1, 1);
	if (laststate == STATE_BROWSE)
		chDrawString(MENU_X+3*16, MENU_Y+MENU_DELTA,
			FG_COLOR, BG_COLOR, RINGKEY_MODE_MENU, 1, 1);
	else if (laststate == STATE_RING_KEY)
		chDrawString(MENU_X+3*16, MENU_Y+MENU_DELTA,
			FG_COLOR, BG_COLOR, BROWSE_MODE_MENU, 1, 1);
	
	// cross menu
	chDrawString(MENU_X, MENU_Y+MENU_DELTA*2, CROSS_COLOR, BG_COLOR, CROSS_MENU, 1, 1);
	chDrawString(MENU_X+3*16, MENU_Y+MENU_DELTA*2,
		GRAY_COLOR, BG_COLOR, HELP_MENU, 1, 1);

	// square menu
	chDrawString(MENU_X, MENU_Y+MENU_DELTA*3, SQUARE_COLOR, BG_COLOR, SQUARE_MENU, 1, 1);
	if (tagfilep!=NULL)
		chDrawString(MENU_X+3*16, MENU_Y+MENU_DELTA*3,
			FG_COLOR, BG_COLOR, CLEAR_TAG_MENU, 1, 1);
	else
		chDrawString(MENU_X+3*16, MENU_Y+MENU_DELTA*3,
			GRAY_COLOR, BG_COLOR, CLEAR_TAG_MENU, 1, 1);

	pgScreenFlipV();
}

⌨️ 快捷键说明

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