📄 guiapp_action_displaymenu.c
字号:
guiStyle_GrayOutItem( menuId, ITEM_KEYSTONEITEM, TRUE );
break;
case GUIMSG_DEASSERT:
enviro_enableAutoTilt( FALSE );
guiStyle_item_SetListIndex( ITEM_AUTOKEYSTONEITEM, FALSE );
displayMenuValues->autoKeystone = FALSE;
dispfmt_GetKeystoneAnglePitch( &displayMenuValues->keystone );
displayMenuValues->keystone = displayMenuValues->keystone >> 8;
dispfmt_GetKeystoneAnglePitchLimits( &min, &max );
/* reset keystone value if changed by auto keystone */
guiStyle_GrayOutItem( menuId, ITEM_KEYSTONEITEM, FALSE );
guiStyle_item_SetSingleValue( ITEM_KEYSTONEITEM, displayMenuValues->keystone, min >> 8, max >> 8 );
break;
default:
break;
}
break;
case ITEM_ASPECTITEM:
OSD_GetListSize( LIST_ASPECTLIST, &listSize );
switch( msg->type )
{
case GUIMSG_DEC:
if( displayMenuValues->aspectRatio == 0 ) // decrement aspectRatio index
tempIndex = listSize - 1;
else
tempIndex = displayMenuValues->aspectRatio - 1;
if( datapath_UserSetAspectRatio( tempIndex ) == PASS );
{
displayMenuValues->aspectRatio = tempIndex;
guiStyle_item_SetListIndex( ITEM_ASPECTITEM, displayMenuValues->aspectRatio );
}
break;
case GUIMSG_INC:
if( displayMenuValues->aspectRatio == listSize - 1 ) // increment aspectRatio index
tempIndex = 0;
else
tempIndex = displayMenuValues->aspectRatio + 1;
if( datapath_UserSetAspectRatio( tempIndex ) == PASS );
{
displayMenuValues->aspectRatio = tempIndex;
guiStyle_item_SetListIndex( ITEM_ASPECTITEM, displayMenuValues->aspectRatio );
}
break;
}
guiApp_action_CheckImagePositionEnable();
break;
case ITEM_IMAGESIZEITEM:
OSD_GetListSize( LIST_IMAGESIZELIST, &listSize );
switch( msg->type )
{
case GUIMSG_DEC:
if( displayMenuValues->imageSizeEnum == 0 ) // decrement imageSizeEnum index
tempIndex = listSize - 1;
else
tempIndex = displayMenuValues->imageSizeEnum - 1;
if( datapath_UserSetImageSize( tempIndex, displayMenuValues->imageSizeManualSteps ) == PASS )
{
displayMenuValues->imageSizeEnum = tempIndex;
guiStyle_item_SetListIndex( ITEM_IMAGESIZEITEM, displayMenuValues->imageSizeEnum );
}
guiApp_action_CheckImagePositionEnable();
break;
case GUIMSG_INC:
if( displayMenuValues->imageSizeEnum == listSize - 1 ) // increment imageSizeEnum index
tempIndex = 0;
else
tempIndex = displayMenuValues->imageSizeEnum + 1;
if( datapath_UserSetImageSize( tempIndex, displayMenuValues->imageSizeManualSteps ) == PASS )
{
displayMenuValues->imageSizeEnum = tempIndex;
guiStyle_item_SetListIndex( ITEM_IMAGESIZEITEM, displayMenuValues->imageSizeEnum );
}
guiApp_action_CheckImagePositionEnable();
break;
case GUIMSG_ASSERT:
if( displayMenuValues->imageSizeEnum == 2 ) //manual imageSizeEnum, start new menu
{
guiStyle_Exit();
guiStyle_StartMenu( MENU_IMAGESIZEPOPUP, NULL );
}
break;
default:
break;
}
break;
case ITEM_IMAGEPOSITIONITEM:
switch( msg->type )
{
case GUIMSG_DEC:
if( datapath_UserSetImagePosition( displayMenuValues->imagePosition - 1 ) == PASS &&
dispfmt_GetImagePositionLimits( &min, &max ) == PASS )
{
displayMenuValues->imagePosition--;
guiStyle_item_SetSingleValue( ITEM_IMAGEPOSITIONITEM, displayMenuValues->imagePosition, min, max );
}
break;
case GUIMSG_INC:
if( datapath_UserSetImagePosition( displayMenuValues->imagePosition + 1 ) == PASS &&
dispfmt_GetImagePositionLimits( &min, &max ) == PASS )
{
displayMenuValues->imagePosition++;
guiStyle_item_SetSingleValue( ITEM_IMAGEPOSITIONITEM, displayMenuValues->imagePosition, min, max );
}
break;
case GUIMSG_ASSERT:
newmsg.type = GUIMSG_VALUE;
newmsg.data = (void*)&(itemId);
guiStyle_Exit();
guiStyle_StartMenu( MENU_IMAGEPOSITIONPOPUP, &newmsg );
break;
}
break;
case ITEM_MAGNIFYSOURCEITEM:
switch( msg->type )
{
case GUIMSG_DEC:
if( dispfmt_GetMagnifyLimits( &min, &max ) == PASS &&
dispfmt_GetMagnify( &displayMenuValues->magnify ) == PASS )
{
if( datapath_UserSetMagnify( displayMenuValues->magnify - 1 ) == PASS )
{
displayMenuValues->magnify--;
guiStyle_item_SetSingleValue( ITEM_MAGNIFYSOURCEITEM, displayMenuValues->magnify, min, max );
}
}
/* disable pan and scan if magnify is set to 0 */
if( displayMenuValues->magnify == 0 )
guiStyle_GrayOutItem( menuId, ITEM_PANANDSCANITEM, TRUE );
break;
case GUIMSG_INC:
if( dispfmt_GetMagnifyLimits( &min, &max ) == PASS &&
dispfmt_GetMagnify( &displayMenuValues->magnify ) == PASS )
{
if( datapath_UserSetMagnify( displayMenuValues->magnify + 1 ) == PASS )
{
displayMenuValues->magnify++;
guiStyle_item_SetSingleValue( ITEM_MAGNIFYSOURCEITEM, displayMenuValues->magnify, min, max );
}
}
/* enable pan and scan when magnify is first set above 0 */
if( displayMenuValues->magnify == 1 )
guiStyle_GrayOutItem( menuId, ITEM_PANANDSCANITEM, FALSE );
break;
case GUIMSG_ASSERT:
newmsg.type = NULL;
newmsg.data = NULL;
guiStyle_Exit();
guiStyle_StartMenu( MENU_MAGNIFYPOPUP, &newmsg );
break;
default:
break;
}
break;
case ITEM_PANANDSCANITEM:
if( msg->type == GUIMSG_ASSERT )
{
newmsg.type = GUIMSG_VALUE;
newmsg.data = (void*)&(itemId);
guiStyle_Exit();
guiStyle_StartMenu( MENU_PANANDSCANPOPUP, &newmsg );
}
break;
case ITEM_VIDEOSTANDARDITEM:
OSD_GetListSize( LIST_VIDEOSTANDARDLIST, &listSize );
datapath_GetSourceDesc( &srcDesc );
switch( msg->type )
{
case GUIMSG_DEC:
if( displayMenuValues->videoStandard == 0 ) // decrement video standard index
displayMenuValues->videoStandard = listSize - 1;
else
displayMenuValues->videoStandard--;
break;
case GUIMSG_INC:
if( displayMenuValues->videoStandard == listSize - 1 ) // decrement video standard index
displayMenuValues->videoStandard = 0;
else
displayMenuValues->videoStandard++;
break;
}
/* update EEPROM immediately. If we don't, we can get out of sync with decoder */
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].VideoStandard, displayMenuValues->videoStandard );
deccontrol_SetVideoStandard( displayMenuValues->videoStandard );
guiStyle_item_SetListIndex( ITEM_VIDEOSTANDARDITEM, displayMenuValues->videoStandard );
break;
return PASS;
break;
case ITEM_OVERSCANITEM:
datapath_GetSourceDesc( &srcDesc );
switch( msg->type )
{
case GUIMSG_ASSERT:
if( datapath_UserSetOverscan( TRUE ) == PASS )
{
guiStyle_item_SetListIndex( ITEM_OVERSCANITEM, TRUE );
displayMenuValues->overscan = TRUE;
}
break;
case GUIMSG_DEASSERT:
if( datapath_UserSetOverscan( FALSE ) == PASS )
{
guiStyle_item_SetListIndex( ITEM_OVERSCANITEM, FALSE );
displayMenuValues->overscan = FALSE;
}
break;
}
/* update EEPROM immediately. If we don't, we can get out of sync with decoder */
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Overscan, displayMenuValues->overscan );
break;
default:
return FAIL;
}
return PASS;
}
/*****************************************************************/
/* gray out image position item when we are filling the DMD */
/* display. Since multiple items need to check whether we gray */
/* out image position, consolidate checks here */
/*****************************************************************/
int08 guiApp_action_CheckImagePositionEnable( void )
{
int16 min, max;
if( dispfmt_GetImagePositionLimits( &min, &max ) == PASS )
{
if( max == 0 && min == 0 )
{
guiStyle_GrayOutItem( MENU_DISPLAYMENU, ITEM_IMAGEPOSITIONITEM, TRUE );
}
else
{
guiStyle_GrayOutItem( MENU_DISPLAYMENU, ITEM_IMAGEPOSITIONITEM, FALSE );
guiStyle_item_SetSingleValue( ITEM_IMAGEPOSITIONITEM, displayMenuValues->imageSizeManualSteps, min, max );
}
}
else
return FAIL;
return PASS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -