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

📄 frontend.cpp

📁 一个在brew 平台下开发的摩托车程序源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			{
				m_menuStringArray[0] = &m_pData->stringSelect;
				m_menuYPos=m_backdropShadowBottom-m_menuHeight;
				m_titleText=m_pData->stringChooseTrack;
			}
			else
			{
				for (i = 0; i < MAX_MENU_STR; i++)
					m_menuStringArray[i]=NULL;
				m_titleText=m_pData->stringNextRace;
			}
			break;

		case STATUS_RESULTS:
			for (i = 0; i < MAX_MENU_STR; i++)
				m_menuStringArray[i]=NULL;
			m_titleText=m_pData->string33;
			FreeParagraph();
			SetText(m_resultsMessage,m_canvasW-2,m_paragraphText,&m_paragraphCounter);
			break;

		case STATUS_BETOFFER:
		{		
			for (i = 0; i < MAX_MENU_STR; i++)
				m_menuStringArray[i]=NULL;
			FreeParagraph();
			m_Betstr = m_pRandom->NextInt() % NUM_TAUNTS;
			m_Betstr = ABS(m_Betstr);
			//SetText(*m_pData->taunts[temp],m_canvasW-2,m_paragraphText,&m_paragraphCounter);
			m_titleText=m_pData->string13;
			m_myBet=0;
			break;
		}

		default:
			//clear data
			for (i = 0; i < MAX_MENU_STR; i++)
				m_menuStringArray[i]=NULL;
			break;
		}
	}

	for (i = 0; i < MAX_MENU_STR; i++)
	{
		if(m_menuStringArray[i]!=NULL)
		{
			m_numMenuItems++;
		}
	}
	if(m_numMenuItems > 0)
	{
		m_menuBarYPos=(m_menuYPos+(m_menuHeight*m_menuSelection))<<16;
	}
}

/*===============================================================================
METHOD: DrawMenu
=============================================================================== */
void Frontend::DrawMenu()
{
	m_pGraph->ResetBitmapClip();
	//YingZ: we have to use this m_numMenuItems to control wether to draw menu text and bar
	if(m_numMenuItems >0)
	{
		//print menu text
		m_pGraph->SetFont(m_fontSmallBold);

		//draw selection bar
		int	dest=(m_menuYPos+m_menuHeight*m_menuSelection)<<16;
		m_menuBarYPos+=(dest-m_menuBarYPos)>>1;

		int	y=(m_menuBarYPos>>16)-2;
		int	fh=m_pGraph->GetFontHeight()+y+2;

		m_pGraph->SetColor(SELECTBARCOL1);
		m_pGraph->DrawLine(0,y,m_canvasW,y);
		y++;
		m_pGraph->SetColor(SELECTBARCOL2);
		do
		{
			m_pGraph->DrawLine(0,y,m_canvasW,y);
			y++;
		}while(y<=fh);
		m_pGraph->SetColor(SELECTBARCOL3);
		m_pGraph->DrawLine(0,y,m_canvasW,y);

		for(int i=0;i<m_numMenuItems;i++)
		{
			m_pGraph->SetTextColor(0);
			m_pGraph->DrawString(*m_menuStringArray[i],1+m_halfScreenWidth,1+m_menuYPos+m_menuHeight*i,topcentre);
			m_pGraph->SetTextColor(WHITE);
			m_pGraph->DrawString(*m_menuStringArray[i],m_halfScreenWidth,m_menuYPos+m_menuHeight*i,topcentre);
		}
	}
}

/*===============================================================================
METHOD: ProcessTheirScreens
=============================================================================== */
void Frontend::ProcessTheirScreens()
{
	JString myString;
	JString tmpStr;
	int	i,x,y,fh,tmpworth;

	m_pGraph->SetFont(m_fontSmallBold);

	//YingZ: This is a hack to get the sound play correctly on option screen, on the 8900
	//handset, if ISOUNDPLAYER_Play and ISOUNDPLAYER_Stop is called repeatedly, and the final 
	//choice is ISOUNDPLAYER_Play, the sound will NOT play, hence we call StartTune() repeatedly
	//while we are in this screen, if the soundplayer gets stuck, the next game loop will force 
	//it to start playing again.
	if(m_currentScreen!=STATUS_INTRO)
		StartTune();

	if(!(m_currentScreen==STATUS_PAUSE && !m_bShowOptions))
	{
		m_pGraph->SetTextColor(WHITE);
		m_pGraph->SetFont(m_fontSmallBold);

		switch(m_currentScreen)
		{
		case STATUS_INTRO:
			{
				switch(m_currentIntroScreen)
				{
				case 4:		//splash title
					//draw it here, after pGraphics has been set up
					//YingZ: It would appear a few different people worked on this frontend in JAVA version
					//there are a few redundant functions and same type stuff handled in diff places.
					if(GETTIMEMS()-m_timer>3000)
						SetCurrentScreen(STATUS_INTRO,++m_currentIntroScreen);
					break;

				case 2:		//Vir2L
				case 3:		//ESRB
					if(GETTIMEMS()-m_timer>3000)
						SetCurrentScreen(STATUS_INTRO,++m_currentIntroScreen);
					break;

				case 0:		//MForma Intro
					MformaScreen(TRUE);
					if(GETTIMEMS()-m_timer>4000)
					{
						SetCurrentScreen(STATUS_INTRO,++m_currentIntroScreen);
						m_currentIntroScreen =2;
					}
					break;

				case 1:		//copyright
					//ShowLegalScreen(FALSE);
					break;

				case 5:		//splash with loading
//					StartTune();
					PreLoadGraphics();
					if (isNoFile)
						SetCurrentScreen(STATUS_NOFILE,0);
					else
						SetCurrentScreen(STATUS_MAINMENU,0);

					break;

				case 6:		//Outtro - quit app
					ShowLegalScreen(FALSE);
					break;
				case 7:
					MformaScreen(FALSE);
					break;
				}
			}
			break;

		case STATUS_NOFILE:
			DrawFEBackdrop(TRUE);
			m_pGraph->SetFont(m_fontSmall);
			PrintParagraph(m_backdropShadowTop+2-m_textScrollY,TRUE);
			m_pGraph->DrawString(m_pData->string4,m_canvasW-2,m_canvasH,bottomright);
			m_pGraph->DrawString(m_pData->stringPlay,2,m_canvasH,bottomleft);
			break;
		
		
		case STATUS_SUREEXIT:
			DrawFEBackdrop(FALSE);
			PrintTitle();
			DrawMenu();
			MyDrawString(m_pData->stringAreYouSure,1+m_halfScreenWidth,1+m_backdropShadowTop+4,topcentre,0);
			MyDrawString(m_pData->stringAreYouSure,m_halfScreenWidth,m_backdropShadowTop+4,topcentre,WHITE);
			break;

		case STATUS_CHOOSEBIKE:
			DrawFEBackdrop(TRUE);

			PrintTitle();
			
			m_pGraph->SetFont(m_fontSmallBold);
			fh=m_pGraph->GetFontHeight();

			//bike name
			m_pGraph->SetTextColor(GREEN);
			m_pGraph->DrawString(*m_pData->bikeNames[m_curItem],m_halfScreenWidth,m_backdropShadowTop+4,topcentre);
			//player cash
			PrintPlayerCash();
			//cost
			
			tmpworth=m_myWorth;
			if(m_curItem==m_currentBike)
			{
				m_pGraph->SetTextColor(YELLOW);
				m_pGraph->DrawString(m_pData->string70,m_canvasW-2,m_backdropShadowBottom-2,bottomright);
			}
			else
			{
				m_pGraph->SetTextColor(WHITE);
				tmpStr = m_pData->string44;
				tmpStr += m_pData->bikePrices[m_curItem]-(m_myWorth);
				m_pGraph->DrawString(tmpStr,m_canvasW-2,m_backdropShadowBottom-2,bottomright);
			}
			//DrawImage(m_pBike[m_curItem],30,80);
			m_pKscUtil->DrawImage(m_BikeImg[m_curItem],30,80);			
			m_pGraph->SetTextColor(WHITE);
			//buy
			if(m_curItem==m_currentBike || m_pData->bikePrices[m_curItem]>(m_myCash+tmpworth))
				m_pGraph->SetTextColor(GREY);
			else
				m_pGraph->SetTextColor(WHITE);
			m_pGraph->DrawString(m_pData->stringBuy,2,m_canvasH,bottomleft);

			DrawEngineData(fh);
			break;

		case STATUS_REPAIR:
			DrawFEBackdrop(TRUE);

			fh=m_pGraph->GetFontHeight(m_fontSmallBold);
			PrintTitle();
			//player's money
			PrintPlayerCash();
			//mini icons
			for(i=0;i<4;i++)
				DrawPart(i,5,m_backdropShadowTop+10+(31*i),FALSE);

			int	totDamage;

			if(m_menuSelection==4)		//repair all
			{
				DrawSurroundRect(5,m_backdropShadowTop+10,20,115);
				totDamage=(m_pGame->m_partsWear[0]>>16)+(m_pGame->m_partsWear[1]>>16)+(m_pGame->m_partsWear[2]>>16)+(m_pGame->m_partsWear[3]>>16);
			}
			else
			{
				DrawSurroundRect(5,m_backdropShadowTop+10+31*m_menuSelection,20,20);
				totDamage=m_pGame->m_partsWear[m_menuSelection]>>16;
				if(totDamage>=5)	//repair in $5 chunks
					totDamage=5;
			}

			if(totDamage>0)
			{
				m_pGraph->SetTextColor(WHITE);
				tmpStr = m_pData->string44;
				tmpStr += totDamage;
				m_pGraph->DrawString(tmpStr,m_canvasW-2,m_backdropShadowBottom-2,bottomright);
			}

			//print OK (in grey if no cash/damage)
			m_pGraph->SetFont(m_fontSmallBold);
			if(m_myCash<totDamage || totDamage==0)
				m_pGraph->SetTextColor(GREY);
			else
				m_pGraph->SetTextColor(WHITE);
			m_pGraph->DrawString(m_pData->string14,2,m_canvasH,bottomleft);

			for(i=0;i<4;i++)
			{
				y=31*i+m_backdropShadowTop+10;

				int damageAmount=m_pGame->m_partsWear[i]>>16;

				if(damageAmount==0)
				{
					m_pGraph->SetTextColor(WHITE);
					m_pGraph->DrawString(m_pData->stringNoDamage,m_canvasW-84,y+((30-fh)>>1),0);
				}
				else		//some damage
				{
					int	green=255;
					int red=0;
					x=m_canvasW-84;

					while(damageAmount>0)
					{
						m_pGraph->SetColor(red,green,0);
						m_pGraph->FillRect(x,y,1,20);
						x++;
						red+=4;
						green-=4;
						damageAmount--;
					}
				}
			}
			break;

		case STATUS_HELP:
			if(m_subPage>=0)
			{
				if (StartOnceHelp==0)
				{

				DrawFEBackdrop(TRUE);
				m_titleText=*m_pData->helpStrings[m_subPage];
				m_pGraph->SetFont(m_fontSmall);
				//PrintParagraph(m_backdropShadowTop+2-m_textScrollY,TRUE);
				// 2005 0303 - by hyun wook
				AECHAR* szBuf;
				int length;
				switch( m_subPage )
				{
				case 0:
					length =sizeof("规氢虐(惑,窍)唱 锅龋虐(8,2)甫 捞侩秦辑 扁绢狼 函加捞 啊瓷钦聪促. 磊悼栏肺 啊加捞 登扁 锭巩俊 利例茄 扁绢 函加捞 吝夸钦聪促. 谅,快肺 畔阑 窍妨搁 规氢虐(谅,快)唱 锅龋虐(4,6)甫 喘矾 官捞农甫 扁匡涝聪促. 鞭目宏俊辑 粱 歹 朝墨肺款 畔阑 窍妨搁 规氢虐俊辑 颊阑 订 饶俊 犁狐福霸 促矫 茄锅 规氢虐甫 喘矾 颇况 浇扼捞靛甫 荤侩钦聪促. 己傍 利栏肺 颇况 浇扼捞靛甫 荤侩沁阑 矫 官捞农 饶固啊 糠栏肺 馆悼登绢瘤哥, 官捞农狼 鸥捞绢俊辑 楷扁啊 徽绢廉 唱棵 巴涝聪促. 颇况 浇扼捞靛甫 呈公 辨霸 荤侩窍搁 官捞农啊 面倒 窍芭唱 屁败廉 唱哎 荐档 乐嚼聪促.");
					szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
					
					Util_KSC5601ToAECHAR("规氢虐(惑,窍)唱 锅龋虐(8,2)甫 捞侩秦辑 扁绢狼 函加捞 啊瓷钦聪促. 磊悼栏肺 啊加捞 登扁 锭巩俊 利例茄 扁绢 函加捞 吝夸钦聪促. 谅,快肺 畔阑 窍妨搁 规氢虐(谅,快)唱 锅龋虐(4,6)甫 喘矾 官捞农甫 扁匡涝聪促. 鞭目宏俊辑 粱 歹 朝墨肺款 畔阑 窍妨搁 规氢虐俊辑 颊阑 订 饶俊 犁狐福霸 促矫 茄锅 规氢虐甫 喘矾 颇况 浇扼捞靛甫 荤侩钦聪促. 己傍 利栏肺 颇况 浇扼捞靛甫 荤侩沁阑 矫 官捞农 饶固啊 糠栏肺 馆悼登绢瘤哥, 官捞农狼 鸥捞绢俊辑 楷扁啊 徽绢廉 唱棵 巴涝聪促. 颇况 浇扼捞靛甫 呈公 辨霸 荤侩窍搁 官捞农啊 面倒 窍芭唱 屁败廉 唱哎 荐档 乐嚼聪促.", szBuf);
					m_paragraphHeight=110;
					break;
				case 1:
					length =sizeof("规氢虐(谅,快)唱 锅龋虐(4,6)甫 荤侩窍咯 备概且 酒捞袍阑 急琶窍绞矫坷. 汲摹茄 何前篮 官捞农狼 己瓷俊 康氢阑 凛聪促. 捣捞 面盒窍促搁 讥俊 甸矾 何前阑 备概 窍绞矫坷. 荐府痢俊辑 官捞农狼 牧叼记阑 疵 眉农 窍绊, 荐府啊 鞘夸窍促搁 捣阑 瘤阂窍绊 官捞农甫 荐府窍咯 官捞农甫 弥惑狼 惑怕肺 蜡瘤窍绞矫坷.");
					szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
					
					Util_KSC5601ToAECHAR("规氢虐(谅,快)唱 锅龋虐(4,6)甫 荤侩窍咯 备概且 酒捞袍阑 急琶窍绞矫坷. 汲摹茄 何前篮 官捞农狼 己瓷俊 康氢阑 凛聪促. 捣捞 面盒窍促搁 讥俊 甸矾 何前阑 备概 窍绞矫坷. 荐府痢俊辑 官捞农狼 牧叼记阑 疵 眉农 窍绊, 荐府啊 鞘夸窍促搁 捣阑 瘤阂窍绊 官捞农甫 荐府窍咯 官捞农甫 弥惑狼 惑怕肺 蜡瘤窍绞矫坷.", szBuf);
					m_paragraphHeight=0;
					break;
				case 2:
					length =sizeof("飘发阑 哈绢唱瘤 付矫坷! 飘发阑 哈绢唱辑 崔府霸 登搁 官捞农啊 颊惑登哥, 绊加林青矫 飘发阑 哈绢唱搁 面倒窍芭唱 官捞农啊 逞绢瘤霸 瞪 荐 乐嚼聪促. 辨 啊狼 目宏钎矫甫 肋 焊绊 弥措茄 利例窍霸 官捞农甫 靛府橇飘 窍绞矫坷. 利例茄 扁绢函加篮 救傈窍绊 狐福霸 内胶甫 肯林窍绰单 鞘荐荤亲涝聪促.");
					szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
					
					Util_KSC5601ToAECHAR("飘发阑 哈绢唱瘤 付矫坷! 飘发阑 哈绢唱辑 崔府霸 登搁 官捞农啊 颊惑登哥, 绊加林青矫 飘发阑 哈绢唱搁 面倒窍芭唱 官捞农啊 逞绢瘤霸 瞪 荐 乐嚼聪促. 辨 啊狼 目宏钎矫甫 肋 焊绊 弥措茄 利例窍霸 官捞农甫 靛府橇飘 窍绞矫坷. 利例茄 扁绢函加篮 救傈窍绊 狐福霸 内胶甫 肯林窍绰单 鞘荐荤亲涝聪促.", szBuf);
					m_paragraphHeight=0;
					break;
				case 3:
					length =sizeof("郴扁饭捞教葛靛 敲饭捞俊辑 荤侩磊绰 弥措 50$鳖瘤 捣阑 硅泼 且 荐 乐嚼聪促. 饭捞胶俊辑 惑措规阑 勃绢 硅泼 陛咀阑 滴 硅肺 阂妨 焊技夸.");
					szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
					
					Util_KSC5601ToAECHAR("郴扁饭捞教葛靛 敲饭捞俊辑 荤侩磊绰 弥措 50$鳖瘤 捣阑 硅泼 且 荐 乐嚼聪促. 饭捞胶俊辑 惑措规阑 勃绢 硅泼 陛咀阑 滴 硅肺 阂妨 焊技夸.", szBuf);
					m_paragraphHeight=0;
					break;
				case 4:
					length =sizeof("磊技茄 郴侩篮 权其捞瘤(mforma.co.kr),捞皋老(support@mforma.co.kr),傈拳(02-501-8062)肺 巩狼林技夸.");
					szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
					
					Util_KSC5601ToAECHAR("磊技茄 郴侩篮 权其捞瘤(mforma.co.kr),捞皋老(support@mforma.co.kr),傈拳(02-501-8062)肺 巩狼林技夸.", szBuf);
					m_paragraphHeight=0;
					break;
				}
				m_pKscUtil->DrawSFS(szBuf, 1, (m_textScrollY/m_pGraph->GetFontHeight(m_fontSmall)), 11, 168, 
					4, m_backdropShadowTop+2, MAKE_RGB(255, 255, 255));
				FREE( szBuf );

				DrawScrollArrows();
				StartOnceHelp=1;
				}
				else
				{
					if(m_pGame->m_padData==PAD_UP || m_pGame->m_padData==PAD_DOWN)
					{
						DrawFEBackdrop(TRUE);
						m_titleText=*m_pData->helpStrings[m_subPage];
						m_pGraph->SetFont(m_fontSmall);
						//PrintParagraph(m_backdropShadowTop+2-m_textScrollY,TRUE);
						// 2005 0303 - by hyun wook
						AECHAR* szBuf;
						int length;
						switch( m_subPage )
						{
						case 0:
							length =sizeof("规氢虐(惑,窍)唱 锅龋虐(8,2)甫 捞侩秦辑 扁绢狼 函加捞 啊瓷钦聪促. 磊悼栏肺 啊加捞 登扁 锭巩俊 利例茄 扁绢 函加捞 吝夸钦聪促. 谅,快肺 畔阑 窍妨搁 规氢虐(谅,快)唱 锅龋虐(4,6)甫 喘矾 官捞农甫 扁匡涝聪促. 鞭目宏俊辑 粱 歹 朝墨肺款 畔阑 窍妨搁 规氢虐俊辑 颊阑 订 饶俊 犁狐福霸 促矫 茄锅 规氢虐甫 喘矾 颇况 浇扼捞靛甫 荤侩钦聪促. 己傍 利栏肺 颇况 浇扼捞靛甫 荤侩沁阑 矫 官捞农 饶固啊 糠栏肺 馆悼登绢瘤哥, 官捞农狼 鸥捞绢俊辑 楷扁啊 徽绢廉 唱棵 巴涝聪促. 颇况 浇扼捞靛甫 呈公 辨霸 荤侩窍搁 官捞农啊 面倒 窍芭唱 屁败廉 唱哎 荐档 乐嚼聪促.");
							szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
							
							Util_KSC5601ToAECHAR("规氢虐(惑,窍)唱 锅龋虐(8,2)甫 捞侩秦辑 扁绢狼 函加捞 啊瓷钦聪促. 磊悼栏肺 啊加捞 登扁 锭巩俊 利例茄 扁绢 函加捞 吝夸钦聪促. 谅,快肺 畔阑 窍妨搁 规氢虐(谅,快)唱 锅龋虐(4,6)甫 喘矾 官捞农甫 扁匡涝聪促. 鞭目宏俊辑 粱 歹 朝墨肺款 畔阑 窍妨搁 规氢虐俊辑 颊阑 订 饶俊 犁狐福霸 促矫 茄锅 规氢虐甫 喘矾 颇况 浇扼捞靛甫 荤侩钦聪促. 己傍 利栏肺 颇况 浇扼捞靛甫 荤侩沁阑 矫 官捞农 饶固啊 糠栏肺 馆悼登绢瘤哥, 官捞农狼 鸥捞绢俊辑 楷扁啊 徽绢廉 唱棵 巴涝聪促. 颇况 浇扼捞靛甫 呈公 辨霸 荤侩窍搁 官捞农啊 面倒 窍芭唱 屁败廉 唱哎 荐档 乐嚼聪促.", szBuf);
							m_paragraphHeight=110;
							break;
						case 1:
							length =sizeof("规氢虐(谅,快)唱 锅龋虐(4,6)甫 荤侩窍咯 备概且 酒捞袍阑 急琶窍绞矫坷. 汲摹茄 何前篮 官捞农狼 己瓷俊 康氢阑 凛聪促. 捣捞 面盒窍促搁 讥俊 甸矾 何前阑 备概 窍绞矫坷. 荐府痢俊辑 官捞农狼 牧叼记阑 疵 眉农 窍绊, 荐府啊 鞘夸窍促搁 捣阑 瘤阂窍绊 官捞农甫 荐府窍咯 官捞农甫 弥惑狼 惑怕肺 蜡瘤窍绞矫坷.");
							szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
							
							Util_KSC5601ToAECHAR("规氢虐(谅,快)唱 锅龋虐(4,6)甫 荤侩窍咯 备概且 酒捞袍阑 急琶窍绞矫坷. 汲摹茄 何前篮 官捞农狼 己瓷俊 康氢阑 凛聪促. 捣捞 面盒窍促搁 讥俊 甸矾 何前阑 备概 窍绞矫坷. 荐府痢俊辑 官捞农狼 牧叼记阑 疵 眉农 窍绊, 荐府啊 鞘夸窍促搁 捣阑 瘤阂窍绊 官捞农甫 荐府窍咯 官捞农甫 弥惑狼 惑怕肺 蜡瘤窍绞矫坷.", szBuf);
							m_paragraphHeight=0;
							break;
						case 2:
							length =sizeof("飘发阑 哈绢唱瘤 付矫坷! 飘发阑 哈绢唱辑 崔府霸 登搁 官捞农啊 颊惑登哥, 绊加林青矫 飘发阑 哈绢唱搁 面倒窍芭唱 官捞农啊 逞绢瘤霸 瞪 荐 乐嚼聪促. 辨 啊狼 目宏钎矫甫 肋 焊绊 弥措茄 利例窍霸 官捞农甫 靛府橇飘 窍绞矫坷. 利例茄 扁绢函加篮 救傈窍绊 狐福霸 内胶甫 肯林窍绰单 鞘荐荤亲涝聪促.");
							szBuf = ( AECHAR * ) MALLOC( length * sizeof( AECHAR ) );
							
							Util_KSC5601ToAECHAR("飘发阑 哈绢唱瘤 付矫坷! 飘发阑 哈绢唱辑 崔府霸 登搁 官捞农啊 颊惑登哥, 绊加林青矫 飘发阑 哈绢唱搁 面倒窍芭唱 官捞农啊 逞绢瘤霸 瞪 荐 乐嚼聪促. 辨 啊狼 目宏钎矫甫 肋 焊绊 弥措茄 利例窍霸 官捞农甫 靛府橇飘 窍绞矫坷. 利例茄 扁绢函加篮 救傈窍绊 狐福霸 内胶甫 肯林窍绰单 鞘荐荤亲涝聪促.", szBuf);
							m_paragraphHeight=0;

⌨️ 快捷键说明

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