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

📄 menu.c

📁 这个是单片机4200的ui程序
💻 C
📖 第 1 页 / 共 5 页
字号:
			if(setconfirm == FALSE)
				{
				min = currentmenu->item_min;
				max = currentmenu->item_max;
				udefault = 1;
				sprintf(firstlinebuf,"%s?",GetMsgData(currentmenu->dispID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->itemchoose_addr[udefault]));
				setconfirm = TRUE;
				}
			else
				{
				if(udefault == 1)
					{
					if(currentmenu->dispID == DISP_CLR_DRUM)
						{
						gUIMain.UIstate = PRINT_PROCESSING;
						MenuListInitSet(COPY_IDLE);
						}
					currentmenu->fun2();

					if(currentmenu->dispID == DISP_RESET_DC_CNT)
						{
						strcpy(firstlinebuf,GetMsgData(DISP_SAVED));						
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);

						NU_Sleep(400);
						strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));						
						strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
						}
					}
				else
					{
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				setconfirm = FALSE;
				}
			break;
		default:
			break;
		}
}

void GraphicType(Uint8 action)
{
	Uint8 num;
	P_MAIN_MENU_LIST currentmenu;
	char * buf;

	currentmenu = gpMenudata ->ml + gpMenudata ->mlIndex;

	switch(action)
		{
		case PANEL_ARROWRIGHT:
			if(setconfirm == TRUE)
				{
				udefault++;
				if( udefault>max)
					udefault = min;						
				strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
				if(currentmenu->titleID == DISP_COPY||currentmenu->titleID == DISP_COPY_DEF)
					strcpy(secondlinebuf,diamond[udefault]);
				else if(currentmenu->titleID == DISP_QUA_SET||currentmenu->titleID == DISP_FAX_DFT)
					strcpy(secondlinebuf,diamond2[udefault]);
				}
			else
				{
				if(currentmenu->titleID == DISP_COPY)
					{
					num = gUIMain.copysetting.Copynumber;
					strcpy(buf, GetMsgData(Ms_PaperSize2[gUIMain.papersetting.Papersize]));
					sprintf(firstlinebuf,"C:%2d  %s %3d%%",num,buf,gUIMain.copysetting.Zoomratio);
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				else
					{
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				}
			break;
		case PANEL_ARROWLEFT:
			if(setconfirm == TRUE)
				{
				if( udefault==min)
					udefault = max;
				else
					udefault--;							
				strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
				if(currentmenu->titleID == DISP_COPY||currentmenu->titleID == DISP_COPY_DEF)
					strcpy(secondlinebuf,diamond[udefault]);
				else if(currentmenu->titleID == DISP_QUA_SET||currentmenu->titleID == DISP_FAX_DFT)
					strcpy(secondlinebuf,diamond2[udefault]);
				}
			else
				{
				if(currentmenu->titleID == DISP_COPY)
					{
					num = gUIMain.copysetting.Copynumber;
					strcpy(buf, GetMsgData(Ms_PaperSize2[gUIMain.papersetting.Papersize]));
					sprintf(firstlinebuf,"C:%2d  %s %3d%%",num,buf,gUIMain.copysetting.Zoomratio);
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				else
					{
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				}
			break;
		case PANEL_BACK:
			if(setconfirm == TRUE)
				{
				setconfirm = FALSE;
				}
			if(currentmenu->titleID == DISP_COPY)
				{
				num = gUIMain.copysetting.Copynumber;
				strcpy(buf, GetMsgData(Ms_PaperSize2[gUIMain.papersetting.Papersize]));
				sprintf(firstlinebuf,"C:%2d  %s %3d%%",num,buf,gUIMain.copysetting.Zoomratio);
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			else
				{
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			break;
			break;
		case PANEL_SELECT:
			if(currentmenu->pNextMenuList != NULL)
				{
				currentmenu = currentmenu->pNextMenuList;
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			else if(setconfirm == FALSE)
				{
				min = currentmenu->item_min;
				max = currentmenu->item_max;
				udefault = *(Uint8*)val[currentmenu->item_userdefault];
				
				strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
				if(currentmenu->titleID == DISP_COPY||currentmenu->titleID == DISP_COPY_DEF)
					strcpy(secondlinebuf,diamond[udefault]);
				else if(currentmenu->titleID == DISP_QUA_SET||currentmenu->titleID == DISP_FAX_DFT)
					strcpy(secondlinebuf,diamond2[udefault]);
				setconfirm = TRUE;
				}
			else
				{
				strcpy(firstlinebuf,GetMsgData(DISP_SAVED));
						
				LCDDisplayClear();
				DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						
				*(Uint8*)val[currentmenu->item_userdefault] = udefault;
				if(currentmenu->item_userdefault > Val_autoreduction&&currentmenu->item_userdefault<Val_dialnumber)
					UpdateData(currentmenu->item_userdefault);

				NU_Sleep(400);
				
				if(currentmenu->titleID == DISP_COPY)
					{
					num = gUIMain.copysetting.Copynumber;
					strcpy(buf, GetMsgData(Ms_PaperSize2[gUIMain.papersetting.Papersize]));
					sprintf(firstlinebuf,"C:%2d  %s %3d%%",num,buf,gUIMain.copysetting.Zoomratio);
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				else
					{
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));						
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				setconfirm = FALSE;
				}
			break;
		default:
			break;
		}
}

void QuickCopy(Uint8 action)
{
	P_MAIN_MENU_LIST currentmenu;
//	char * buf;	
	currentmenu = gpMenudata ->ml + gpMenudata ->mlIndex;


	switch(action)
		{
		case PANEL_ARROWRIGHT:
			if(utemp<MAX_COPYNUM)
				utemp++;
			else
				utemp = 1;
			newnumber = TRUE;
//			strcpy(firstlinebuf,GetMsgData(DISP_N_O_C));
			sprintf(secondlinebuf,"[1-99]>%d",utemp);
			break;
		case PANEL_ARROWLEFT:
			if(utemp>1)
				utemp--;
			else
				utemp = MAX_COPYNUM;
			newnumber = TRUE;
//			strcpy(firstlinebuf,GetMsgData(DISP_N_O_C));
			sprintf(secondlinebuf,"[1-99]>%d",utemp);
			break;
		case PANEL_BACK:
			strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));//need to check toner to confirm the titleID
			strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
			break;
		case PANEL_SELECT:
			if(utemp == 0)
				{
				strcpy(firstlinebuf,GetMsgData(DISP_ENTER_AGAIN));
				LCDDisplayClear();
				
				DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
				NU_Sleep(400);

				strcpy(firstlinebuf,GetMsgData(DISP_N_O_C));
				sprintf(secondlinebuf,"[1-99]>%d",utemp);
				return;
				}
			else
				{			
				gUIMain.copysetting.Copynumber = utemp;
				gUIMain.UIstate = COPY_PROCESSING;
				setconfirm = FALSE;
				copypage = 0;
				UIDoCopyJob(FALSE);
				}
			//strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
			//strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
			break;
		case PANEL_NUM0:
			EditorMultiInput2(PANEL_NUM0);
			break;
		case PANEL_NUM1:
			EditorMultiInput2(PANEL_NUM1);
			break;
		case PANEL_NUM2:
			EditorMultiInput2(PANEL_NUM2);
			break;
		case PANEL_NUM3:
			EditorMultiInput2(PANEL_NUM3);
			break;
		case PANEL_NUM4:
			EditorMultiInput2(PANEL_NUM4);
			break;
		case PANEL_NUM5:
			EditorMultiInput2(PANEL_NUM5);
			break;
		case PANEL_NUM6:
			EditorMultiInput2(PANEL_NUM6);
			break;
		case PANEL_NUM7:
			EditorMultiInput2(PANEL_NUM7);
			break;
		case PANEL_NUM8:
			EditorMultiInput2(PANEL_NUM8);
			break;
		case PANEL_NUM9:
			EditorMultiInput2(PANEL_NUM9);
			break;
		default:
			break;		
		}

}

void	DateTimeType(Uint8 action)
{
	Uint32 datetimedata;
	P_MAIN_MENU_LIST currentmenu;
	STATUS status;
	static  Uint8   curStep,stepmax;
	Uint8 AlignL1,AlignL2;
	sFaxCommJob *waitingCommJob;
	int foundJobNum;
	struct tm pp;

	currentmenu = gpMenudata ->ml + gpMenudata ->mlIndex;

	AlignL1 = currentmenu->firstline;
	AlignL2 = currentmenu->secondline;
	
	switch(action)
		{
		case PANEL_ARROWRIGHT:
			if(setconfirm == TRUE)
				{
			       if (curStep < stepmax)     
				   	curStep++;
	        		else                    
					curStep = 0;
			       curindex= GetDateTimeCursorXPos(curStep);
				}
			else
				{
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			break;
		case PANEL_ARROWLEFT:
			if(setconfirm == TRUE)
				{
	        		if (curStep > 0)     
					curStep--;
	        		else                    
					curStep = stepmax;
			       curindex = GetDateTimeCursorXPos(curStep);
				}
			else
				{
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}				
			break;
		case PANEL_SELECT:
			if(setconfirm == FALSE)
				{
//				if(currentmenu->dispID == DISP_DATE_TIME)
//					{
				status = NU_Obtain_Semaphore(&gDateTimeSem,NU_NO_SUSPEND);
				if(NU_SUCCESS != status)
					{
					return;
					}
//				EnableRTCAccess();
				datetimedata = ReadRTC_C();
//					}
				if(step == 3||step == 4)
					NU_Release_Semaphore(&gDateTimeSem);
				
				CalDateTimeFormat(datetimedata,&datetime);
				memcpy(&datetimetmp, &datetime, sizeof(DateTimeSct));
				setconfirm = TRUE;
				curStep = 0;
				if(gMFPSettingNvram.Common.ClockMode == 1)
					stepmax = 9;
				else
					stepmax = 10;
				curindex = GetDateTimeCursorXPos(curStep);

				if(datetimetmp.Hour>12)
					ampm = 1;
				else
					ampm = 0;
				DateTimeDisplay(datetimetmp);
				LCDCursorOn();
//				strcpy(firstlinebuf, GetMsgData(currentmenu->dispID));
//				strcpy(secondlinebuf, inputbuf);
				}
			else
				{				
				if(DateTimeValid(datetimetmp))
					{
					memcpy(&datetime, &datetimetmp, sizeof(DateTimeSct));
					
					datetimedata = CalDateTimeData(&datetime);
					if(currentmenu->dispID == DISP_DATE_TIME)
						{
						waitingCommJob = oswGetBuffer(sizeof(sFaxCommJob) * cMaxFaxJob);
						foundJobNum = FaxAPI_GetWaitingCommJobInfo(waitingCommJob);
						if(foundJobNum == 0)
							{
							SetRTC_C(datetimedata);
		//					DisableRTCAccess();
							
							NU_Release_Semaphore(&gDateTimeSem);					
							strcpy(firstlinebuf,GetMsgData(DISP_D_ENTRY_OK));
							}
						else
							{
							NU_Release_Semaphore(&gDateTimeSem);
							strcpy(firstlinebuf,GetMsgData(DISP_TIME_LOCK));
							}
						oswReleaseBuffer(waitingCommJob);
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						NU_Sleep(500);
						}
					else if(step == 3)
						{
						if(currentmenu->dispID == DISP_RECV_FOR)
							{
							//gMFPSettingNvram.Fax.Recvforward.Forstarttime = datetimedata;
							ConvertDateTime2tm(&datetime, &pp);
							datetimedata = mktime(&pp);
							recvforwardtemp.Forstarttime = datetimedata;
							}
//						else if(currentmenu->dispID == DISP_TOLL_SAV)
//							gMFPSettingNvram.Fax.Tollsave.Tollstarttime = datetimedata;
						strcpy(firstlinebuf,GetMsgData(DISP_END_TIME));
						strcpy(secondlinebuf,"              ");
						LCDDisplayClear();
						LCDCursorOff();
						DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
						DisplayLCD(1, secondlinebuf, AlignL2,FALSE);
						NU_Sleep(400);

						step = 4;
						setconfirm = FALSE;
						DateTimeType(PANEL_SELECT);
						return;
						}
					else if(step == 4)
						{
						if(currentmenu->dispID == DISP_RECV_FOR)
							{
							//gMFPSettingNvram.Fax.Recvforward.Forendtime = datetimedata;
							ConvertDateTime2tm(&datetime, &pp);
							datetimedata = mktime(&pp);
							recvforwardtemp.Forendtime = datetimedata;
							
							step = 5;
							setconfirm = FALSE;
							LCDCursorOff();
							MultiStringType1(PANEL_SELECT);				
							return;
							}
/*						else if(currentmenu->dispID == DISP_TOLL_SAV)
							{
							gMFPSettingNvram.Fax.Tollsave.Tollendtime = datetimedata;	
							step = 0;
							}*/
						}
					setconfirm = FALSE;
					LCDCursorOff();
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));						
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				else
					{
					sprintf(firstlinebuf,GetMsgData(DISP_ENTER_AGAIN));
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
					NU_Sleep(500);

					DateTimeDisplay(datetimetmp);
					}
				}
			break;
		case PANEL_BACK:
			if(setconfirm == TRUE)
				{
				setconfirm = FALSE;
				}
			LCDCursorOff();
			step = 0;
//			DisableRTCAccess();
			NU_Reset_Semaphore(&gDateTimeSem,1);
			strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
			strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));

⌨️ 快捷键说明

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