📄 menu.c
字号:
}
MenuPageIndex=(menuAction==MIA_GotoNext)?(NextMenuPage):(PrevMenuPage);
if(FactoryModeFlag && MenuPageIndex==MainMenu)
MenuPageIndex=FactoryMenu;
if((MenuPageIndex>RootMenu)&&(MenuPageIndex<=ExitMenu)\
&&( PrevMenuPage>=RootMenu)&&(PrevMenuPage<=ExitMenu))
{
if(menuAction==MIA_GotoNext)
UpDownLeftButton(MIA_GotoNext);
else
UpDownLeftButton(MIA_GotoPrev);
}
StauIndex0=0;//flag enter item
if (SaveSettingFlag)
SaveUserPrefSetting(tempValue);
/* if(MenuPageIndex==ColorConfigMenu)
MenuItemIndex=UserPrefColorTemp;
if(MenuPageIndex==LanguageMenu)
MenuItemIndex=UserPrefLanguage;*/
case MIA_RedrawMenu:
if((MenuPageIndex==OsdTimeMenu)||(MenuPageIndex==OsdTimeSubMenu))
{
Osd_SetTextColor(CP_SoftLowGreenColor, CP_SoftLowGreenColor);
Osd_DrawStr(25, 10, RightSpace14);
}
else if(MenuPageIndex==OsdSetMenu&&ReloadFontFlag)
{
Osd_SetTextColor(CP_SoftLowGreenColor, CP_SoftLowGreenColor);
for (i=4; i<OsdWindowHeight-1; i+=2)
Osd_DrawStr(5, i, "\x2f\x2f\x2f\x2f\x2f\x2f");
mStar_WriteOSDByte(IOSDC1,mStar_ReadOSDByte(IOSDC1)&~MWIN_B);
}
else if((MenuPageIndex>RootMenu)&&(MenuPageIndex<=ExitMenu))
ClearWindow1();
DrawOsdMenu();
if(ReloadFontFlag)
{ Clr_ReloadFontFlag();
processEvent=TRUE;
menuAction=MIA_SUBNextItem;
break;
}
if (CurrentMenu.ExecFunction)
{ processEvent=CurrentMenu.ExecFunction();
processEvent=FALSE;
}
if (!(CurrentMenu.Flags&mpbStay))
{ processEvent=TRUE;
menuAction=MIA_GotoPrev; // 消失OSD
}
if (SaveSettingFlag)
SaveUserPrefSetting(tempValue);
break;
case MIA_ExecFunc:
if (CurrentMenuItemFunc.ExecFunction)
{
processEvent=CurrentMenuItemFunc.ExecFunction();
if(FactoryModeFlag)
{ //tony added
if (CurrentMenuItemFunc.ExecFunction==AutoColor)
{
if(MenuPageIndex == FactoryMenu)
{
if (processEvent)
{
Osd_SetTextColor(CP_BlueColor, CP_GrayColor);
Osd_DrawStr(11, 3, PassText()); //auto color
}
else
{
Osd_SetTextColor(CP_RedColor, CP_GrayColor);
Osd_DrawStr(11, 3, FailText());
}
Osd_SetTextColor(CP_BlueColor, CP_GrayColor);
DrawOsdMenuItemNumber(0, DrawGainRNumber);
DrawOsdMenuItemNumber(0, DrawGainGNumber);
DrawOsdMenuItemNumber(0, DrawGainBNumber);
DrawOsdMenuItemNumber(0, DrawOffsetRNumber);
DrawOsdMenuItemNumber(0, DrawOffsetGNumber);
DrawOsdMenuItemNumber(0, DrawOffsetBNumber);
}
}
if (CurrentMenuItemFunc.ExecFunction==AutoConfig)
{ Osd_SetTextColor(CP_GrayColor, CP_GrayColor);
if(MenuPageIndex == FactoryMenu)
{
if (processEvent)
{
Osd_SetTextColor(CP_YellowColor, CP_GrayColor);
Osd_DrawStr(12, 3, PassText()); //auto config
}
else
{
Osd_SetTextColor(CP_RedColor, CP_GrayColor);
Osd_DrawStr(12, 3, FailText());
}
}//end factorymenu
}
}
processEvent=FALSE;
}
break;
//===========================================
case MIA_Exit:
if (SaveSettingFlag)
{ Clr_SaveSettingFlag();
SaveUserPref();
}
menuAction=MIA_RedrawMenu;
MenuPageIndex=RootMenu;
MenuItemIndex=0;
processEvent=TRUE;
break;
case MIA_Auto:
if (FreeRunModeFlag)
break;
if(SrcInputType==Input_Analog1)
{
menuAction=MIA_RedrawMenu;
MenuPageIndex=AutoMenu;
MenuItemIndex=1;//0
processEvent=TRUE;
//Delay1ms(50);
}
break;
case MIA_Brite:
case MIA_Cont:
if (FreeRunModeFlag)
break;
MenuPageIndex=(menuAction==MIA_Brite)?(BriteMenu):(ContMenu);
menuAction=MIA_RedrawMenu;
MenuItemIndex=1;//0
processEvent=TRUE;
break;
case MIA_Volumehotkey:
if (FreeRunModeFlag)
break;
MenuPageIndex=VolMenu;
menuAction=MIA_RedrawMenu;
MenuItemIndex=1;//0
processEvent=TRUE;
break;
#if Dual_Input_Icon_Enable
case MIA_InputSourceChangeKey:
if (PowerOnFlag)
{
if (PowerSavingFlag)
{
Clr_PowerSavingFlag();
mStar_PowerUp();
Power_TurnOnPanel();
Power_TurnOnGreenLed();
Power_TurnOffAmberLed();
}
mStar_SetupFreeRunMode();
SrcInputType = (SrcInputType+1)%Input_Nums;
mStar_SetupInputPort();
if (SrcInputType==Input_Digital)
mStar_AutoDVI(); //do auto tracking DVI
Set_InputTimingChangeFlag();
SrcFlags|=SyncLoss;
Set_DrawSourceTypeFlag();
SwitchDelay = 1;
}
processEvent = FALSE; // important
break;
#endif
case MIA_Power:
if (MenuPageIndex==PowerOffMenu)
menuAction=MIA_GotoNext;
else
{ menuAction=MIA_RedrawMenu;
MenuPageIndex=PowerOffMenu;
}
MenuItemIndex=0;
processEvent=TRUE;
break;
//==== ===========================================
case MIA_DDCSwitch:
DDCSwitchEnable=TRUE;
PowerOnSystem();
printMsg(" draw DDC menu !");
processEvent=FALSE;
break;
default:
return FALSE;
break;
}
}
if (TurboKeyCounter<7)
Delay1ms(250);
else
Delay1ms(10);
return TRUE;
}
//======================================================
//=====================================================
void UserPrefOsdDrawIni(void)
{ BYTE ItemIndex;
if (MenuPageIndex==MainMenu||(MenuPageIndex==OsdSetMenu&&ReloadFontFlag))
{
if(MenuPageIndex==MainMenu)
ItemIndex=0;
else if(MenuPageIndex==OsdSetMenu)
ItemIndex=3;
//Clr_ReloadFontFlag();
DynamicLoadFont(MainMenuFontAddr, MenuPage1);
DrawMainWindow(ItemIndex);
DrawTimingInfo();
}
else
{
mStar_WriteOSDByte(IOSDC3, 0x00);//0x13);
mStar_WriteOSDByte(SUBW3C, 0x00);
mStar_WriteOSDByte(SUBW2C, 0x00);
mStar_WriteOSDByte(SUBW1C, 0x00);
#if Dual_Input_Icon_Enable
if (MenuPageIndex==SourceTypeMenu)
DrawSourceTypeWindow();
else if(MenuPageIndex==AutoMenu)
DrawAutoConfigWindow();
else if(MenuPageIndex==StandbyMenu || MenuPageIndex==CableNotConnectedMenu)
DrawNoCableWindow();
#else
if(MenuPageIndex==AutoMenu)
DrawAutoConfigWindow();
else if(MenuPageIndex==StandbyMenu || MenuPageIndex==CableNotConnectedMenu)
DrawNoCableWindow();
#endif
}
}
//=========================================================================
void DrawOsdMenu(void)
{ Bool redrawFlags;
printData("draw menu %d", MenuPageIndex);
if (CurrentMenu.Flags&mpbInvisible)
Osd_Hide();
else
{ //BYTE i;
// setup osd window & position
redrawFlags=FALSE;
if (CurrentMenu.XSize!=OsdWindowWidth || CurrentMenu.YSize!=OsdWindowHeight ||
!(mStar_ReadOSDByte(IOSDC1)&MWIN_B) )
redrawFlags=TRUE;
if (redrawFlags)
{ //if (MenuPageIndex==FactoryMenu)
Osd_Hide();
Osd_SetWindowSize(CurrentMenu.XSize, CurrentMenu.YSize);
if (FactoryModeFlag)
Osd_SetPosition(10, 10);
#if Dual_Input_Icon_Enable
else if (MenuPageIndex==SourceTypeMenu)
Osd_SetPosition(5, 5);
#endif
else if(CurrentMenu.Flags&(mpbMoving | mpbCenter))
{
moveX = 50;moveY = 50;
Osd_SetPosition(moveX,moveY);
}
else//vick change
{ Osd_SetPosition(UserPrefOsdHStart, UserPrefOsdVStart);
}
if (CurrentMenu.Flags&mpbDrawFrame)
{ // draw osd frame style
mStar_WriteByte(OSDIOA, 0xDE); // clear osd content//vick
//mStar_WriteOSDByte(IOSDC3, 0x00);
Osd_SetTextColor(CP_BlackColor, CP_GrayColor);
}
else
{
mStar_WriteByte(OSDIOA, 0xDE); // clear osd content//vick
//mStar_WriteOSDByte(IOSDC3, 0x0f);
}
DynamicLoadColorFont();
UserPrefOsdDrawIni();//zwtan20050308
// draw osd menu item
if (CurrentMenu.Fonts)
{ DynamicLoadFont(CurrentMenu.FontAddr, CurrentMenu.Fonts);
}
for (i=1; i<MenuItemCount; i++) //first for main page up or down
{DrawOsdMenuItem(i, &CurrentMenu.MenuItems[i]);
}
mStar_WriteOSDByte(SUBW0C, 0x00);
if (FactoryModeFlag ) {
Osd_SetTextColor(CP_RedColor, CP_GrayColor);
if (MenuPageIndex==FactoryMenu)
Osd_DrawChar(0, 0, 'F');//"F"
else Osd_DrawPropStr(0, 0, FacFText());
}
if (MenuPageIndex==DDCTypeMenu) Osd_DrawStr(1, 1, "DDC MENU");//"F"
if (MenuPageIndex==FactoryMenu)
Osd_ShowNative();
else
Osd_Show();
}
else
{
if (CurrentMenu.Fonts)
DynamicLoadFont(CurrentMenu.FontAddr, CurrentMenu.Fonts);
for (i=1; i<MenuItemCount; i++)
DrawOsdMenuItem(i, &CurrentMenu.MenuItems[i]);
mStar_WriteOSDByte(SUBW0C, 0x00);
}
}
}
//=========================================================================
// draw menu item
void DrawOsdMenuItem(BYTE itemIndex, MenuItemType *menuItem)
{ if (menuItem->Flags&mibInvisible)
return;
if (menuItem->Flags&mibFactoryItem && !FactoryModeFlag)
return;
if (menuItem->Flags&mibNotFactoryItem && FactoryModeFlag)
return;
/*
if (menuItem->Flags&(mibSelectable|mibAdjustItem) && itemIndex==MenuItemIndex)//vick change
{
Osd_SetTextColor(menuItem->SelForeColor, menuItem->SelBackColor);
}
else
{ Osd_SetTextColor(menuItem->ForeColor, menuItem->BackColor);
}
if (menuItem->Flags&mibDVIDisable && SrcInputType==Input_Digital)
Osd_SetTextColor(CP_GrayColor, CP_BlueColor);
*/
DrawOsdMenuItemText(itemIndex, menuItem);
DrawOsdMenuItemValue(itemIndex, (menuItem->DisplayValue));//->DisplayValue);
}
//=========================================================================
// draw menu item display text
void DrawOsdMenuItemText(BYTE itemIndex, MenuItemType *menuItem)
{ if (menuItem->DisplayText==NULL)
return;
if (menuItem->DrawItemMethod==DWI_Icon)
Osd_DrawStr(menuItem->XPos, menuItem->YPos, menuItem->DisplayText());
else if (menuItem->DrawItemMethod==DWI_Text)
{
//if (itemIndex==MenuItemIndex)//Vick Add
// Osd_SetTextColor(menuItem->SelForeColor,menuItem->SelBackColor);
// else Osd_SetTextColor(menuItem->ForeColor,menuItem->BackColor);
if ( itemIndex==MenuItemIndex)//vick change
{
Osd_SetTextColor(menuItem->SelForeColor, menuItem->SelBackColor);
}
else
{ Osd_SetTextColor(menuItem->ForeColor, menuItem->BackColor);
}
if ((menuItem->Flags&mibDVIDisable) && (SrcInputType==Input_Digital))
Osd_SetTextColor(CP_GrayColor, CP_SoftLowGreenColor); //FENDY FOR DVI
if(menuItem->Flags&mibFactoryItem )
Osd_DrawStr(menuItem->XPos, menuItem->YPos, menuItem->DisplayText());
else
Osd_DrawPropStr(menuItem->XPos, menuItem->YPos, menuItem->DisplayText());
}
else if (menuItem->DrawItemMethod==DWI_CommentText) //tony
{
BYTE i, len, tcolor;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -