亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mso_confirm.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
字號:
/****************************************************************************************************
*  Copyright (c) 2005 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: o_confirm.c
*
* Description: Project definition of the MSO_CONFIRM
* =========
*
****************************************************************************************************/
#include "Config.h"		// Global Configuration - do not remove!
#include "include\sysdefs.h"	// Global definition - do not remove!

/****************************************************************************************************
*	INCLUDE FILES
****************************************************************************************************/
// Include project specific
#include "gui\menu_system\ms_display.h"
#include "GUI\Menu_system\ms_screen.h"
#include "GUI\Menu_system\ms_component.h"
#include "GUI\Menu_system\osd_rendering.h"
#include "GUI\Menu_system\ms_send_op.h"
#include "GUI\Menu_system\ms_menu.h"
#include "GUI\Menu_system\ms_object.h"
#include "GUI\Menu_system\ms_container.h"
#include "Font\fonts.h"
#include "GUI\Object_class\Button\mso_button.h"
#include "GUI\Object_class\Confirm\mso_confirm.h"
#include "Menu\menu_operation_def.h"

// TODO: Shouldn't include a file from Customer folder to Gui\Object_class
#include "Menu_config\menu_config_common.h"

/****************************************************************************************************
*	DEFINITION: Private named constants
****************************************************************************************************/
#define OSD_MESSAGE_FONT			FONT_0

#define AREA_OSD_MESSAGE_X			12
#define AREA_OSD_MESSAGE_Y			38
#define AREA_OSD_MESSAGE_H			((pFonts[OSD_MESSAGE_FONT])->m_cMaxPixelHeight)
#define AREA_BUTTON_Y			(AREA_OSD_MESSAGE_Y)
#define AREA_BUTTON_W			100
#define AREA_BUTTON_H			32
#define AREA_MESSAGE_WND_X		20
#define AREA_MESSAGE_WND_Y		20
#define AREA_MESSAGE_WND_W		340
#define AREA_MESSAGE_WND_H		(AREA_BUTTON_Y + AREA_BUTTON_H + AREA_OSD_MESSAGE_H)
#define OFFSET_1		1

/****************************************************************************************************
*	DECLARATION: Private (static) functions
****************************************************************************************************/

/**************************************************************************
* 	Display functions
***************************************************************************/

//
// PARAMETER DECLARATIONS
//

/**************************************************************************
* DESCRIPTORS
***************************************************************************/
static CONST OSD_TEXT oYesText =
{	OSDR_GetFormUniStr_OsdMessage,		(UINT32)S_YES	};

// The descriptor for Confirm Yes Button
STATIC CONST MS_DESCRIPTOR_BUTTON oConfirmYesButtonDescriptor =
{// MS_DESCRIPTOR
	{
		{
			sizeof(MSO_BUTTON),
			MS_NAV_TO_ALGINED_Y,
			MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_RADIO_BUTTON,
			{
				0,
				0,
				AREA_BUTTON_W,
				AREA_BUTTON_H
			},
			OBUTTON_Operation,
			OBUTTON_FillOSDSeg,
			mpParamNull
		},
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
		(MS_COLOR_SET *)&oButtonTextColorSet,
		(MS_BITMAP_SET *)&oButtonBitmapSet,
		(OSD_TEXT *)&oYesText,
		FONT_0,
		NULL,
		NULL
	},
	MS_OP_BUTTON_YES
};
/**************************************************************************/
// The descriptor for Confirm No Button
static CONST OSD_TEXT oNoText =
{	OSDR_GetFormUniStr_OsdMessage,		(UINT32)S_NO	};

STATIC CONST MS_DESCRIPTOR_BUTTON oConfirmNoButtonDescriptor =
{// MS_DESCRIPTOR
	{
		{
			sizeof(MSO_BUTTON),
			MS_NAV_TO_ALGINED_Y,
			MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_RADIO_BUTTON,
			{
				0,
				0,
				AREA_BUTTON_W,
				AREA_BUTTON_H
			},
			OBUTTON_Operation,
			OBUTTON_FillOSDSeg,
			mpParamNull
		},
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
		(MS_COLOR_SET *)&oButtonTextColorSet,
		(MS_BITMAP_SET *)&oButtonBitmapSet,
		(OSD_TEXT *)&oNoText,
		FONT_0,
		NULL,
		NULL
	},
	MS_OP_BUTTON_NO
};

/**************************************************************************/
// The descriptor for Confirm OK Button
static CONST OSD_TEXT oOkText =
{	OSDR_GetFormUniStr_OsdMessage,		(UINT32)S_OK	};

STATIC CONST MS_DESCRIPTOR_BUTTON oConfirmOKButtonDescriptor =
{// MS_DESCRIPTOR
	{
		{
			sizeof(MSO_BUTTON),
			MS_NAV_TO_ALGINED_Y,
			MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_RADIO_BUTTON,
			{
				0,
				0,
				AREA_BUTTON_W,
				AREA_BUTTON_H
			},
			OBUTTON_Operation,
			OBUTTON_FillOSDSeg,
			mpParamNull
		},
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
		(MS_COLOR_SET *)&oButtonTextColorSet,
		(MS_BITMAP_SET *)&oButtonBitmapSet,
		(OSD_TEXT *)&oOkText,
		FONT_0,
		NULL,
		NULL
	},
	MS_OP_BUTTON_YES
};

/**************************************************************************
* 	Utility functions
***************************************************************************/

/**************************************************************************
* 	Operation functions
***************************************************************************/

/**************************************************************************
*	Function 	: 	OCONFIRM_Operation
*
*	In		:
*
*	Out		:
*
*	Desc 	:
 ***************************************************************************/
MS_OP OCONFIRM_Operation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{

	if (MS_IS_USER_OP(MsOp))
	{
		switch(MsOp)
		{
			case MS_OP_EJECT:
			case MS_OP_POWER:
			case MS_OP_SETUP:
				return MsOp;
			case MS_OP_RIGHT:
			case MS_OP_LEFT:
			case MS_OP_ENTER:
				break;
			default:
				return MS_OP_NONE;
		}
	}

	switch(MsOp)
	{
// TODO: Use table to add buttons, make CANCEL invisible is MS_IsConfirmOKButtonOnly, let the container set the focus using attributes
		case MS_OP_INIT:
		{
			MSO_OBJECT __NEAR *pObject;
			MS_DESCRIPTOR_CONFIRM* pDescriptor = (MS_DESCRIPTOR_CONFIRM*)pThis->mpDescriptor;
			UINT8 cNbrMessages = pDescriptor->mcNbrMessages;
			UINT16 wWidth = ((MS_DESCRIPTOR*)pDescriptor)->moArea.mwW;

			if (AREA_MESSAGE_WND_W > wWidth)
				wWidth = AREA_MESSAGE_WND_W;
			if (MS_IsConfirmOKButtonOnly(pThis))
			{
				pObject = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)pThis, (MS_DESCRIPTOR*)&oConfirmOKButtonDescriptor);
				if (pObject == NULL)
				{
					pObject = MS_CreateAndAddObject((MS_DESCRIPTOR*)&oConfirmOKButtonDescriptor, (MSO_CONTAINER __NEAR*)pThis);
					MS_ObjectMove(pObject, (wWidth - AREA_BUTTON_W)/2, AREA_BUTTON_Y + (cNbrMessages * AREA_OSD_MESSAGE_H));
				}
			}
			else
			{
				pObject = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)pThis, (MS_DESCRIPTOR*)&oConfirmYesButtonDescriptor);
				if (pObject == NULL)
				{
					pObject = MS_CreateAndAddObject((MS_DESCRIPTOR*)&oConfirmYesButtonDescriptor, (MSO_CONTAINER __NEAR*)pThis);
					MS_ObjectMove(pObject, (wWidth - 2 * AREA_BUTTON_W)/3, AREA_BUTTON_Y + (cNbrMessages * AREA_OSD_MESSAGE_H));
				}

				pObject = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)pThis, (MS_DESCRIPTOR*)&oConfirmNoButtonDescriptor);
				if (pObject == NULL)
				{
					pObject = MS_CreateAndAddObject((MS_DESCRIPTOR*)&oConfirmNoButtonDescriptor, (MSO_CONTAINER __NEAR*)pThis);
					MS_ObjectMove(pObject, (2 * wWidth - AREA_BUTTON_W)/3, AREA_BUTTON_Y + (cNbrMessages * AREA_OSD_MESSAGE_H));
				}
			}
            MS_ObjectMove(pThis, AREA_MESSAGE_WND_X, AREA_MESSAGE_WND_Y);
			MS_ObjectResize(pThis, wWidth, AREA_MESSAGE_WND_H + (cNbrMessages * AREA_OSD_MESSAGE_H));

			// Set the focus:
			MS_ScreenSetFocusObject(pObject);
		}
			break;

		default:
			break;

	}
	MsOp = MS_ComponentBasicOperation(pThis, MsOp, lParam);
	if (MsOp == MS_OP_BUTTON_YES || MsOp == MS_OP_BUTTON_NO)
	{
		MSO_OBJECT __NEAR *pObject;

		if ((((MS_DESCRIPTOR_CONFIRM*)(pThis->mpDescriptor))->mConfirmAction) != NULL)
			(((MS_DESCRIPTOR_CONFIRM*)(pThis->mpDescriptor))->mConfirmAction)((MsOp == MS_OP_BUTTON_YES));
		//find previously focused object in pThis->mpParent and set focus to it
		pObject = MS_ContainerGetPrevFocusObject((MSO_CONTAINER __NEAR*)pThis->mpParent);
		if (pObject != NULL)
			MS_ScreenSetFocusObject(pObject);

		MS_SetToBeRemoved(pThis);
		MS_DisplayAddObject(pThis);
	}
	return MsOp;

}

/**************************************************************************
* 	Display functions
***************************************************************************/

/**************************************************************************
*	Function 	: 	OCONFIRM_FillOSDSeg
*
*	In		:
*
*	Out		:
*
*	Desc 	:
 ***************************************************************************/
BOOL OCONFIRM_FillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea)
{
	MS_DESCRIPTOR_CONFIRM* pDescriptor = (MS_DESCRIPTOR_CONFIRM*)pThis->mpDescriptor;
	UINT16 wStartY;
	UINT8 cMessageIndex;


	// Search for the index of the subtitle line to display
	for (cMessageIndex = 0; cMessageIndex < pDescriptor->mcNbrMessages; cMessageIndex++)
	{
		wStartY = pAbsArea->msY + AREA_OSD_MESSAGE_Y + (AREA_OSD_MESSAGE_H * cMessageIndex) - AREA_OSD_MESSAGE_H - OFFSET_1;
		if (((goOsdSeg.msAbsY >= wStartY) && (goOsdSeg.msAbsY < (wStartY + AREA_OSD_MESSAGE_H))))
			break;
	}

	OSDR_FillOsdSegBitmapFitArea(pDescriptor->mpBgBmp, pAbsArea);

	if (cMessageIndex < pDescriptor->mcNbrMessages)
	{
		if ((pDescriptor->mpOSDMessages)[cMessageIndex] != NULL && (pDescriptor->mpOSDMessages)[cMessageIndex]->mGetStr != NULL)
		{
			FORMATED_UNICODE_STRING oFormUniStr;
			oFormUniStr.mtFontIndex = FONT_0;
			
			((pDescriptor->mpOSDMessages)[cMessageIndex]->mGetStr)((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
					(pDescriptor->mpOSDMessages)[cMessageIndex]->mParam);

			OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
					pAbsArea,
					AREA_OSD_MESSAGE_X,
					AREA_OSD_MESSAGE_Y + (cMessageIndex * AREA_OSD_MESSAGE_H),
					ALIGN_H_LEFT,
					ALIGN_V_BOTTOM,
					pDescriptor->mwTextColor);
		}
	}

	return FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费人成电影在线观看四季 | 国产一区在线看| 成人va在线观看| 欧美xingq一区二区| 亚洲免费观看高清在线观看| 男女男精品网站| 色美美综合视频| 久久久久久久综合色一本| 午夜精品福利一区二区三区av | 日韩高清欧美激情| 99免费精品在线观看| 日韩一区二区三区四区五区六区| 自拍偷在线精品自拍偷无码专区| 捆绑调教一区二区三区| 欧美色视频在线| 亚洲女爱视频在线| aaa欧美大片| 国产精品丝袜在线| 国产成人综合亚洲91猫咪| 日韩欧美一级精品久久| 天天影视色香欲综合网老头| 99久久精品久久久久久清纯| 日本一区免费视频| 国产精品99久久久久久有的能看| 欧美日韩情趣电影| 亚洲综合网站在线观看| 色综合av在线| 亚洲人成亚洲人成在线观看图片| 成人福利视频在线看| 国产丝袜美腿一区二区三区| 精品一区二区三区影院在线午夜 | a在线播放不卡| 国产精品白丝在线| 色综合天天视频在线观看| 亚洲欧美日韩系列| 91色在线porny| 一区二区不卡在线视频 午夜欧美不卡在| 成人中文字幕在线| 国产精品免费视频网站| 成人av网站免费| 综合网在线视频| 91浏览器在线视频| 亚洲一级在线观看| 欧美一级在线视频| 激情丁香综合五月| 国产精品亲子伦对白| 成人aaaa免费全部观看| 亚洲精品中文字幕乱码三区| 在线观看一区不卡| 青青草97国产精品免费观看无弹窗版 | 欧美成人精品1314www| 精品一区二区影视| 一区精品在线播放| 在线观看91精品国产入口| 亚洲高清视频中文字幕| 日韩亚洲电影在线| 国产精品911| 最新日韩av在线| 欧美日韩国产色站一区二区三区| 亚洲1区2区3区视频| 日韩精品在线看片z| 成人丝袜18视频在线观看| 亚洲一二三区视频在线观看| 欧美电影免费观看高清完整版在线观看| 激情伊人五月天久久综合| 国产精品护士白丝一区av| 欧美精品在线观看播放| 国产黑丝在线一区二区三区| 亚洲日本欧美天堂| 欧美一二区视频| 91香蕉视频在线| 久久精品国产成人一区二区三区| 欧美韩国日本综合| 欧美一区二区三区婷婷月色| 精品在线一区二区三区| 一区二区三区四区视频精品免费| 日韩久久久久久| 在线亚洲欧美专区二区| 韩国v欧美v亚洲v日本v| 一区二区不卡在线播放 | 狠狠色综合播放一区二区| 中文字幕一区二区三区蜜月| 久久色中文字幕| 色偷偷一区二区三区| 激情综合色综合久久综合| 一区二区三区免费| 国产清纯白嫩初高生在线观看91| 欧美人与z0zoxxxx视频| 99视频精品在线| 精品亚洲免费视频| 午夜精品福利一区二区三区av| 国产精品久久久久久一区二区三区 | 国产校园另类小说区| 欧美日韩精品一区二区三区蜜桃| 成人动漫av在线| 韩国毛片一区二区三区| 蜜臀91精品一区二区三区| 亚洲精品免费播放| 国产精品美日韩| 久久亚洲欧美国产精品乐播| 欧美乱熟臀69xxxxxx| 在线免费观看一区| 色狠狠色噜噜噜综合网| www.欧美.com| 成人av电影在线网| 成人免费视频一区| 丁香网亚洲国际| 国产成人免费xxxxxxxx| 久久99国内精品| 久久99精品国产91久久来源| 日本不卡一区二区三区高清视频| 亚洲国产色一区| 一区二区三区91| 亚洲自拍另类综合| 一区二区三区四区视频精品免费| 亚洲人成网站影音先锋播放| 亚洲日本乱码在线观看| 亚洲欧美另类图片小说| 亚洲男人天堂av| 亚洲综合丝袜美腿| 婷婷六月综合网| 美女在线观看视频一区二区| 日本人妖一区二区| 麻豆成人免费电影| 国产精品888| 成人app在线| 欧美午夜精品一区| 欧美三级午夜理伦三级中视频| 欧美无乱码久久久免费午夜一区| 色爱区综合激月婷婷| 欧美伊人精品成人久久综合97 | 波波电影院一区二区三区| www.亚洲色图| 在线视频你懂得一区| 欧美伦理电影网| 久久久亚洲精品石原莉奈| 欧美激情综合五月色丁香 | 亚洲一区二区欧美日韩 | 欧美一区日韩一区| 久久人人97超碰com| 日本一区二区三区在线不卡| 18成人在线观看| 亚洲bt欧美bt精品777| 九九**精品视频免费播放| 成人视屏免费看| 欧美日韩大陆在线| 精品久久久久一区| 亚洲丝袜美腿综合| 日韩1区2区3区| 国产suv精品一区二区883| 色婷婷激情久久| 日韩欧美一区二区视频| 国产精品污www在线观看| 亚洲第一狼人社区| 国产一区二区三区四区在线观看| 91亚洲精品一区二区乱码| 欧美精品乱码久久久久久按摩 | 亚洲一区二区三区四区不卡| 狠狠色丁香婷婷综合| 91蝌蚪porny| 精品欧美乱码久久久久久1区2区| 亚洲欧美日韩国产另类专区| 日本vs亚洲vs韩国一区三区二区| 成人av第一页| 精品欧美一区二区久久| 一区二区三区中文字幕| 国产麻豆精品theporn| 欧美影院一区二区三区| 国产欧美一区二区精品婷婷 | 亚洲欧洲日韩一区二区三区| 五月婷婷久久综合| 一本高清dvd不卡在线观看| 26uuu亚洲综合色| 午夜国产不卡在线观看视频| 成人黄色在线视频| 久久这里只有精品视频网| 亚洲第一激情av| 一本色道亚洲精品aⅴ| 国产日韩欧美一区二区三区乱码| 日韩国产欧美视频| 欧美在线三级电影| 亚洲欧美区自拍先锋| caoporm超碰国产精品| 国产午夜精品久久| 国产一区二区三区四区五区美女| 7777精品伊人久久久大香线蕉的| 一区二区在线观看免费视频播放| 国产成人8x视频一区二区| 欧美精品一区二区三区很污很色的 | 91精品国产福利| 亚洲3atv精品一区二区三区| 色网站国产精品| 亚洲乱码精品一二三四区日韩在线| 国产91丝袜在线观看| 久久综合久久综合九色| 韩国毛片一区二区三区| 精品日韩一区二区三区| 韩国视频一区二区| 久久久久成人黄色影片| 国产黄色成人av|