📄 osd.i
字号:
WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(2<<4))); } else{ WriteWordIIC_HW(0xB0,0xcc,(((2-1)<<8)|(1<<4))); } WriteIIC_HW(0xB0,0xce,0x20); WriteIIC_HW(0xB0,0xcf,0x01); Timer3 = 10; while(((ReadIIC_HW(0xB0,0xcf) & 0x01) != 0) && (Timer3 != 0)){ CheckModeChange(); } } void MainMenu(void) { if((flag1 & 0x02) == 0){ switch(OSD_Type){ case 0x00: SavePointer = NotSaveSaveFlag; OsdInit(); if(PowerStatus == 0x80){ ShowResolution(); ShowFreq(); } ShowVersion(); OSD_Type = 1; OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); if((flag3 & 0x04) != 0x00) printf("OSD ON\r\n"); break; case 0x01: break; default: if(SavePointer != NotSaveSaveFlag) SaveData(); OSD_Type = 1; if(PowerStatus == 0x80){ OsdInit(); ShowFreq(); ShowResolution(); } ShowVersion(); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); break; } } KeyBuffer = 0xff; } void SelectItem(void) { SaveData(); UnselectIcon(); if(KeyBuffer==0x04){ if(OSD_Point1 == 0){ if(--OSD_Point2 == 0xff){ OSD_Point2 = 13; } if(SyncMode == 3){ if((OSD_Point2 > 1)&&(OSD_Point2 < 6)){ OSD_Point2 = 1; } } if((flag2 & 0x20) != 0){ if((OSD_Point2 > 7)&&(OSD_Point2 < 11)){ OSD_Point2 = 7; } } } else{ if((flag3 & 0x01) == 0){ if(--OSD_Point2 < 14){ OSD_Point2 = 23; } } else{ if(--OSD_Point2 < 14){ OSD_Point2 = 24; } } } } else if(KeyBuffer==0x24){ if(OSD_Point1 == 0){ if(++OSD_Point2 > 13){ OSD_Point2 = 0; } if(SyncMode == 3){ if((OSD_Point2 > 1)&&(OSD_Point2 < 6)){ OSD_Point2 = 6; } } if((flag2 & 0x20) != 0){ if((OSD_Point2 > 7)&&(OSD_Point2 < 11)){ OSD_Point2 = 11; } } } else{ if((flag3 & 0x01) == 0){ if(++OSD_Point2 > 23){ OSD_Point2 = 14; } } else{ if(++OSD_Point2 > 24){ OSD_Point2 = 14; } } } } ShowSubMenu(); } void ShowVersion(void) { code unsigned char String1[]={ 6,25,11,"0.12" }; code unsigned char String2[]={ 6,25,11," " }; code unsigned char String3[]={ 3,8,11," " }; if((flag3 & 0x01) != 0){ WriteStringScaler(0,String1); ShowNum(0,9,11,26); } else{ WriteStringScaler(0,String2); WriteStringScaler(0,String3); } } void OSD_OFF(void) { if(SavePointer != NotSaveSaveFlag) SaveData(); if((flag3 & 0x10) == 0){ if(OSD_Type != 0){ OSD_Control &= ~0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); OSD_Type = 0; if((flag3 & 0x04) != 0x00) printf("OSD OFF\r\n"); } } else{ OSD_Point1 = 0; OSD_Point2 = 0; } } void ShowMainMenu(void) { code unsigned char MainIcon[][5]={ 4,1,1,0x00,0x01, 4,1,3,0x18,0x19, 4,1,5,0x02,0x03, 4,1,7,0x04,0x05, 4,1,9,0x06,0x07, 4,1,11,0x08,0x09, 4,1,13,0x0a,0x0b, 4,4,1,0x0c,0x0d, 4,4,3,0x09,0x2c, 4,4,5,0x0a,0x2c, 4,4,7,0x0b,0x2c, 4,4,9,0x0e,0x0f, 4,4,11,0x10,0x11, 4,4,13,0x12,0x13, }; unsigned char i; for(i=0; i<14; i++){ if(MainIconColor[i] == 1){ if((SyncMode == 3)&&(i > 1)&&(i < 6)){ WriteWordIIC_HW(0xB0,0xcc,(((7-1)<<8)|(4<<4))); } else{ WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(4<<4))); } if(((flag2 & 0x20) != 0)&&(i > 7)&&(i < 11)){ WriteWordIIC_HW(0xB0,0xcc,(((7-1)<<8)|(4<<4))); } else if(i == 8){ WriteWordIIC_HW(0xB0,0xcc,(((1-1)<<8)|(4<<4))); } else if(i == 9){ WriteWordIIC_HW(0xB0,0xcc,(((2-1)<<8)|(4<<4))); } else if(i == 10){ WriteWordIIC_HW(0xB0,0xcc,(((3-1)<<8)|(4<<4))); } } else{ if((SyncMode == 3)&&(i > 1)&&(i < 6)){ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x100c)); } else{ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x0c)); } if(((flag2 & 0x20) != 0)&&(i > 7)&&(i < 11)){ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x100c)); } else{ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x0c)); } } WriteStringScaler(1,MainIcon[i]); } } void CheckRGB(void) { if((flag2 & 0x20) != 0){ FillLineAttr(4,3,2,(((7-1)<<8)|(4<<4))); FillLineAttr(4,5,2,(((7-1)<<8)|(4<<4))); FillLineAttr(4,7,2,(((7-1)<<8)|(4<<4))); } else{ FillLineAttr(4,3,2,(((1-1)<<8)|(4<<4))); FillLineAttr(4,5,2,(((2-1)<<8)|(4<<4))); FillLineAttr(4,7,2,(((3-1)<<8)|(4<<4))); } } void ShowMisceMenu(void) { code unsigned char MainIcon1[][5]={ 4,1,1,0x12,0x13, 4,1,3,0x16,0x17, 4,1,5,0x18,0x19, 4,1,7,0x1a,0x1b, 4,1,9,0x1c,0x1d, 4,1,11,0x1e,0x1f, 4,1,13,0x20,0x21, 4,4,1,0x22,0x23, 4,4,3,0x24,0x25, 4,4,5,0x26,0x27, 4,4,7,0x28,0x29, 4,4,9,0x20,0x20, 4,4,11,0x20,0x20, 4,4,13,0x20,0x20, }; code unsigned char MainIcon2[][5]={ 4,4,7,0x20,0x20, 4,4,9,0x20,0x20, 4,4,11,0x20,0x20, 4,4,13,0x20,0x20, }; unsigned char i; for(i=0; i<10; i++){ if(MainIconColor[i+14] == 1){ WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(4<<4))); } else{ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x0c)); } WriteStringScaler(1,MainIcon1[i]); } if((flag3 & 0x01) == 0){ for(i=0; i<4; i++){ WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(4<<4))); WriteStringScaler(1,MainIcon2[i]); } } else{ for(i=10; i<14; i++){ if(MainIconColor[i+14] == 1){ WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(4<<4))); } else{ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x0c)); } WriteStringScaler(1,MainIcon1[i]); } } } void ShowSubMenu(void) { unsigned char k; if(OSD_Point1 == 0){ k = OSD_Point2 << 1; } else{ k = (OSD_Point2-14) << 1; } if(MainIconColor[OSD_Point2] == 1){ if(OSD_Point2 == 8){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((1-1)<<8)|(6<<4))); } else if(OSD_Point2 == 9){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((2-1)<<8)|(6<<4))); } else if(OSD_Point2 == 10){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((3-1)<<8)|(6<<4))); } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((0-1)<<8)|(6<<4))); } } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,((6<<4)|0x0c)); } k = Language * 25 + OSD_Point2; WriteXY_CStrScaler(0,7,3,23,Tab1[k]); switch(OSD_Point2){ case BrightnessNode: if((flag3 & 0x01) == 0){ ShowInverter(); } else{ ShowBrightness(); } break; case ContrastNode: ShowContrast(); break; case PhaseNode: ShowPhase(); break; case ClockNode: ShowClock(); break; case HP_Node: ShowHP(); break; case VP_Node: ShowVP(); break; case ColorTempNode: ShowColorTemperature(); break; case R_GainNode: case G_GainNode: case B_GainNode: ClearText(); ShowRGB(); break; case LanguageNode: ClearText(); ShowLanguage(); break; case OSD_X_Node: ShowOSD_X(); break; case OSD_Y_Node: ShowOSD_Y(); break; case OSD_TimerNode: ShowOSD_Timer(); break; case OSD_RotationNode: ClearText(); if((OSD_Control & 0x80) == 0) ShowNO_YES(0); else ShowNO_YES(1); break; case OSD_FlipNode: ClearText(); if((OSD_Control & 0x40) == 0) ShowNO_YES(0); else ShowNO_YES(1); break; case OSD_MirrorNode: ClearText(); if((OSD_Control & 0x20) == 0) ShowNO_YES(0); else ShowNO_YES(1); break; case SaturationNode: ShowSaturation(); break; case TintNode: ShowTint(); break; case RecallNode: case MisceNode: case ExitMainMenuNode: case ExitMisceMenuNode: case AutoColorNode: ClearText(); ShowNO_YES(0); break; case SharpnessNode: ClearText(); ShowSharpness(); break; } } void ValueUp(void) { if(OSD_Type == 0x00){ if((flag1 & 0x08) == 0){ DirectVolume(); } } else if(OSD_Type == 0x01){ switch(OSD_Point2){ case BrightnessNode: if((flag3 & 0x01) == 0){ InverterDown(); SavePointer = InverterSaveFlag; } else{ BrightnessUp(); SavePointer = BrightnessSaveFlag; } break; case ContrastNode: ContrastUp(); SavePointer = ContrastSaveFlag; break; case PhaseNode: PhaseUp(); SavePointer = PhaseSaveFlag; break; case ClockNode: ClockUp(); SavePointer = ClockSaveFlag; break; case HP_Node: HP_Down(); SavePointer = HP_SaveFlag; break; case VP_Node: VP_Up(); SavePointer = VP_SaveFlag; break; case RecallNode: ShowNO_YES(1); Recall(); ShowNO_YES(0); Repeat = 0xff; break; case ColorTempNode: ColorTempUp(); Repeat = 0xff; break; case R_GainNode: RGB_Up(); SavePointer = R_GainSaveFlag; break; case G_GainNode: RGB_Up(); SavePointer = G_GainSaveFlag; break; case B_GainNode: RGB_Up(); SavePointer = B_GainSaveFlag; break; case LanguageNode: LanguageUp(); Repeat = 0xff; break; case MisceNode: NodeToggle=0; ShowNO_YES(1); WaitSetup(100); UnselectIcon(); OSD_Point1 = 1; OSD_Point2 = ExitMisceMenuNode; ShowMisceMenu(); ShowSubMenu(); Repeat = 0xff; break; case ExitMainMenuNode: ShowNO_YES(1); WaitSetup(100); OSD_OFF(); Repeat = 0xff; break; case ExitMisceMenuNode: NodeToggle=0; ShowNO_YES(1); WaitSetup(100); UnselectIcon(); OSD_Point1 = 0; OSD_Point2 = MisceNode; ShowMainMenu(); ShowSubMenu(); Repeat = 0xff; break; case OSD_X_Node: OSD_X_Up(); SavePointer = OSD_X_SaveFlag; break; case OSD_Y_Node: OSD_Y_Up(); SavePointer = OSD_Y_SaveFlag; break; case OSD_TimerNode: OSD_TimerUp(); SavePointer = OSD_TimerSaveFlag; break; case OSD_RotationNode: OSD_Control |= 0x80; WriteIIC_HW(0xB0,0x95,OSD_Control); SetPosition(); ShowNO_YES(1); SavePointer = Osd_ControlSaveFlag; Repeat = 0xff; break; case OSD_FlipNode: OSD_Control |= 0x40; WriteIIC_HW(0xB0,0x95,OSD_Control); ShowNO_YES(1); SavePointer = Osd_ControlSaveFlag; Repeat = 0xff; break; case OSD_MirrorNode: OSD_Control |= 0x20; WriteIIC_HW(0xB0,0x95,OSD_Control); ShowNO_YES(1); SavePointer = Osd_ControlSaveFlag; Repeat = 0xff; break; case AutoColorNode: ShowNO_YES(1); AutoColor(); ShowNO_YES(0); Repeat = 0xff; break; case SaturationNode: SaturationUp(); SavePointer = SaturationSaveFlag; break; case TintNode: TintUp(); SavePointer = TintSaveFlag; break; case SharpnessNode: SharpnessUp(); SavePointer = SharpnessSaveFlag; break; default: Repeat = 0xff; break; } } else if(OSD_Type == 3){ if(++Volume > 100){ Volume = 100; } else{ SetVolume(); ShowVolume(); SavePointer = VolumeSaveFlag; } } KeyBuffer = 0xff; } void ValueDown(void) { if(OSD_Type == 0x00){ if((flag1 & 0x08) == 0){ DirectVolume(); } } else if(OSD_Type == 0x01){ switch(OSD_Point2){ case BrightnessNode: if((flag3 & 0x01) == 0){ InverterUp(); SavePointer = InverterSaveFlag; } else{ BrightnessDown(); SavePointer = BrightnessSaveFlag; } break; case ContrastNode: ContrastDown(); SavePointer = ContrastSaveFlag; break; case PhaseNode: PhaseDown(); SavePointer = PhaseSaveFlag; break; case ClockNode: ClockDown(); SavePointer = ClockSaveFlag; break; case HP_Node: HP_Up(); SavePointer = HP_SaveFlag; break; case VP_Node: VP_Down(); SavePointer = VP_SaveFlag; break; case ColorTempNode: ColorTempDown(); break; case R_GainNode: RGB_Down(); SavePointer = R_GainSaveFlag; break; case G_GainNode: RGB_Down(); SavePointer = G_GainSaveFlag; break; case B_GainNode: RGB_Down(); SavePointer = B_GainSaveFlag; break; case LanguageNode: LanguageDown(); Repeat = 0xff; break; case OSD_X_Node: OSD_X_Down(); SavePointer = OSD_X_SaveFlag; break; case OSD_Y_Node: OSD_Y_Down(); SavePointer = OSD_Y_SaveFlag; break; case OSD_TimerNode: OSD_TimerDown(); SavePointer = OSD_TimerSaveFlag; break; case OSD_RotationNode: OSD_Control &= ~0x80; WriteIIC_HW(0xB0,0x95,OSD_Control); SetPosition(); ShowNO_YES(0); SavePointer = Osd_ControlSaveFlag; Repeat = 0xff; break; case OSD_FlipNode: OSD_Control &= ~0x40; WriteIIC_HW(0xB0,0x95,OSD_Control); ShowNO_YES(0); SavePointer = Osd_ControlSaveFlag; Repeat = 0xff; break; case OSD_MirrorNode: OSD_Control &= ~0x20; WriteIIC_HW(0xB0,0x95,OSD_Control); ShowNO_YES(0); SavePointer = Osd_ControlSaveFlag; Repeat = 0xff; break; case SaturationNode: SaturationDown(); SavePointer = SaturationSaveFlag; break; case TintNode: TintDown(); SavePointer = TintSaveFlag; break; case SharpnessNode: SharpnessDown(); SavePointer = SharpnessSaveFlag; break; default: Repeat = 0xff; break; } } else if(OSD_Type == 3){ if(--Volume > 100){ Volume = 0; } else{ SetVolume(); ShowVolume(); SavePointer = VolumeSaveFlag; } } KeyBuffer = 0xff; } void ShowInverter(void) { unsigned char value; value = 100 - Inverter; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,value); ShowSliderBar(9,8,value); } void ShowBrightness(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Brightness); ShowSliderBar(9,8,Brightness); } void ShowContrast(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Contrast); ShowSliderBar(9,8,Contrast); } void ShowClock(void) { unsigned char Clock; Clock = (unsigned short)(HTotal - Clk_Min) * 100 / (Clk_Max - Clk_Min); WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Clock); ShowSliderBar(9,8,Clock); } void ShowPhase(void) { unsigned char Phase; Phase = (unsigned short)ADC_Phase * 100 / 63; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Phase); ShowSliderBar(9,8,Phase); } void ShowHP(void) { unsigned char Position; Position = (unsigned short)(HP_Start - HP_Min) * 100 / (HP_Max - HP_Min); Position = 100 - Position; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Position); ShowSliderBar(9,8,Position); } void ShowVP(void) { unsigned char Position; Position = (unsigned short)VP_Start * 100 / VP_Max; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Position); ShowSliderBar(9,8,Position); } void ShowSaturation(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Saturation); ShowSliderBar(9,8,Saturation); } void ShowTint(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,Tint); ShowSliderBar(9,8,Tint); } void ShowSharpness(void) { unsigned char value; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); value = (unsigned short)Sharpness * 100 / 7; ShowValue(1,value); ShowSliderBar(9,8,value); } void ShowVolume(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowNum(1,15,3,Volume); ShowSliderBar(6,2,Volume); } void ShowNO_YES(unsigned char i) { code unsigned char String10[]={ 5,22,8,"YES" }; code unsigned char String20[]={ 5,22,8,"OUI" }; code unsigned char String30[]={ 4,22,8,"JA" }; code unsigned char String40[]={ 4,22,8,"Sd" }; code unsigned char String50[]={ 4,22,8,"Sg" }; code unsigned char String60[]={ 4,22,8,"JA" }; code unsigned char String70[]={ 5,22,8,"SIM" }; code unsigned char String80[]={ 3,22,8,0x97 }; code unsigned char *Tab1[]={ String10,String20,String30,String40,String50,String60,String70,String80 }; code unsigned char String11[]={ 4,12,8,"NO" }; code unsigned char String21[]={ 5,12,8,"NON" }; code unsigned char String31[]={ 6,12,8,"NEIN" }; code unsigned char String41[]={ 4,12,8,"NO" }; code unsigned char String51[]={ 4,12,8,"NO" }; code unsigned char String61[]={ 5,12,8,"NEE" }; code unsigned char String71[]={ 5,12,8,"N^O" }; code unsigned char String81[]={ 3,12,8,0x98 }; code unsigned char *Tab2[]={ String11,String21,String31,String41,String51,String61,String71,String81 }; if(i == 0) WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(6<<4))); else WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); WriteStringScaler(1,Tab2[Language]); if(i != 0) WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(6<<4))); else WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); WriteStringScaler(1,Tab1[Language]); } void ShowOSD_X(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,OSD_X); ShowSliderBar(9,8,OSD_X); } void ShowOSD_Y(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,OSD_Y); ShowSliderBar(9,8,OSD_Y); } void ShowOSD_Timer(void) { WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,OSD_Timer); ShowSliderBar(9,8,OSD_Timer); } void ShowColorTemperature(void) { code unsigned char String10[]={ 4,"USER" }; code unsigned char String11[]={ 11,"UTILISATEUR" }; code unsigned char String12[]={ 18,"ANWENDERSPEZIFISCH" }; code unsigned char String13[]={ 7,"USUARIO" }; code unsigned char String14[]={ 6,"UTENTE" }; code unsigned char String15[]={ 9,"GEBRUIKER" }; code unsigned char String16[]={ 10,"UTILIZADOR" }; code unsigned char String17[]={ 4,0xa0,0xa1,0xa2,0xa3 }; code unsigned char String20[]={ 5,"6500$" }; code unsigned char String30[]={ 5,"7500$" }; code unsigned char String40[]={ 5,"9300$" }; code unsigned char *Tab1[]={ String10,String20,String30,String40, String11,String20,String30,String40, String12,String20,String30,String40, String13,String20,String30,String40, String14,String20,String30,String40, String15,String20,String30,String40, String16,String20,String30,String40, String17,String20,String30,String40 }; unsigned char i,j,k; k = Read24C16(0xe1); j = 4 * Language; for(i=0; i<4; i++){ if(i == k) WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(6<<4))); else WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); WriteXY_CStrScaler(1,7,i+6,23,Tab1[j+i]); } OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); } void ShowLanguage(void) { code unsigned char String1[]={ 7,"ENGLISH" }; code unsigned char String2[]={ 8,"FRAN=AIS" }; code unsigned char String3[]={ 7,"DEUTSCH" }; code unsigned char String4[]={ 7,"ESPA@OL" }; code unsigned char String5[]={ 8,"ITALIANO" }; code unsigned char String6[]={ 10,"NEDERLANDS" }; code unsigned char String7[]={ 9,"PORTUGUbS" }; code unsigned char String8[]={ 2,0x20,0x20 }; code unsigned char *Tab1[]={ String1,String3,String5,String7 }; code unsigned char *Tab2[]={ String2,String4,String6,String8 }; unsigned char i; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); for(i=0; i<4; i++){ WriteXY_StrScaler(1,8,i+6,Tab1[i]); WriteXY_StrScaler(1,19,i+6,Tab2[i]); } i = Language >> 1; if((Language & 0x01) == 0) FillLineAttr(8,i+6,11,(((11-1)<<8)|(6<<4))); else FillLineAttr(19,i+6,11,(((11-1)<<8)|(6<<4))); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); } void ShowRGB(void) { unsigned char value; switch(OSD_Point2){ case R_GainNode: value = R_Gain; break; case G_GainNode: value = G_Gain;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -