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

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

?? mso_choice.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
?? 第 1 頁 / 共 2 頁
字號:
*
*	Desc 	:	Defaul display function of MSO_LISTITEM objects.
****************************************************************************************/
BOOL ListItemFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea)
{
	FORMATED_UNICODE_STRING oFormUniStr;
	UINT16 wColor = (MS_IsFocusable(pThis) && (!MS_IS_LISTITEM_DISABLED(pThis))) ? CIDX_CHOICE_LIST_ITEM_FOCUSABLE : CIDX_CHOICE_LIST_ITEM_NOT_FOCUSABLE;

	MSO_LISTITEM __NEAR* pItem = (MSO_LISTITEM __NEAR*)pThis;

	// Display selection icon.
	if(MS_IsSelected(pItem))
	{
		OSDR_FillOsdSegBitmap(BMP_FG_MARK_CHECK,
							pAbsArea,
							LISTITEM_SELECTION_STARTX,
							(pAbsArea->mwH >> 1),
							ALIGN_H_LEFT, ALIGN_V_CENTER,
							NULL_EXPANSION, NULL_EXPANSION);

	}

	oFormUniStr.mtFontIndex = FONT_0;

	OSDR_GetFormUniStr_OsdMessage((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, pItem->moParam.mwOsdMsgIndex);

	OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
							pAbsArea,
							LISTITEM_TEXT_STARTX,
							(pAbsArea->mwH >> 1),
							ALIGN_H_LEFT,
							ALIGN_V_CENTER,
							wColor);

	if(MS_IsFocusable(pThis) && MS_IsFocused(pThis))
		OSDR_FillOsdSegBitmapFitArea(BMP_FG_FOCUS, pAbsArea);

	return FALSE;
}

/***************************************************************************************
*	Function	: 	ChoiceOperation
*
*	In		: 	pThis	=	Pointer to the Choice (MSO_CHOICE) object.
*
*				MsOp	=	Operation ID.
*
*				lParam	=	Parameter associated with an MS_OP if any.
*
*	Out		: 	None.
*
*	Return	:	ID of the operation that is to be propagated once processing is done,
*				otherwise MS_OP_NONE.
*
*	Desc 	:	This function default operation function of MSO_CHOICE objects.
****************************************************************************************/
BOOL ChoiceFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea)
{
	FORMATED_UNICODE_STRING oFormUniStr;

	MSO_CHOICE __NEAR* pChoice = (MSO_CHOICE __NEAR*)pThis;
	MS_DESCRIPTOR_CHOICE* pDescriptorChoice = (MS_DESCRIPTOR_CHOICE*)pThis->mpDescriptor;
	UINT16 wColor = ((MS_IsFocused(pThis) || MS_IS_FOCUS_ON_LASTITEM(pThis)) ? CIDX_4 : pDescriptorChoice->mwNameTextColor);
	UINT16 wValueColor = (MS_IsFocused(pThis) ? CIDX_4 : pDescriptorChoice->mwValueTextColor);
	
	INT16 sStartX = MS_IS_CHOICE_DISPLAY_AS_BUTTON(pThis) ? (pAbsArea->mwW >> 1) : NAME_START_XPOS;
	UINT8 cHAlign = MS_IS_CHOICE_DISPLAY_AS_BUTTON(pThis) ? ALIGN_H_CENTER : ALIGN_H_LEFT;

	oFormUniStr.mtFontIndex = FONT_0;

	if(MS_IS_CHOICE_DISABLED(pThis))
		wColor = wValueColor = CIDX_4;

	if(MS_IsFocused(pThis) || MS_CHOICE_IS_DISPLAY_AS_TAB(pThis) || MS_IS_CHOICE_DISPLAY_BG_BMP(pThis))
		OSDR_FillOsdSegBitmapFitArea(pDescriptorChoice->mpBgBmp, pAbsArea);

	// Display the name of the choice, if required:
	if(!MS_IS_CHOICE_NO_NAME_REQUIRED(pThis))
	{
		OSDR_GetFormUniStr_OsdMessage((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, pDescriptorChoice->mName);

	        OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
								pAbsArea,
								sStartX,
								(pAbsArea->mwH >> 1),
								cHAlign,
								ALIGN_V_CENTER,
								wColor);
	}

	if((!MS_CHOICE_IS_DISPLAY_AS_TAB(pThis)) && (!MS_IS_CHOICE_DISPLAY_AS_BUTTON(pThis)))
	{
		if(!MS_IS_CHOICE_NO_NAME_REQUIRED(pThis))
		{
			// Colon
			OSDR_GetFormUniStr_Flash((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, (UINT32)COLON);

			OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
									pAbsArea,
									(pAbsArea->mwW >> 1),
									(pAbsArea->mwH >> 1),
									ALIGN_H_LEFT,
									ALIGN_V_CENTER,
									wColor);
		}

		// Parameter value.
		OSDR_GetFormUniStr_OsdMessage((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
										pDescriptorChoice->mpData[pChoice->moParam.mwCurrValIndex].mwOsdMsgIndex);

		OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
								pAbsArea,
								MS_IS_CHOICE_NO_NAME_REQUIRED(pThis) ? sStartX : (pAbsArea->mwW >> 1) + 12,
								(pAbsArea->mwH >> 1),
								ALIGN_H_LEFT,
								ALIGN_V_CENTER,
								wValueColor);
	}

	if(!MS_IsFocusable(pThis))
		return FALSE;

	if(MS_IsFocused(pThis))
		OSDR_FillOsdSegBitmapFitArea(BMP_FG_FOCUS, pAbsArea);

	if(MS_CHOICE_IS_DISPLAY_AS_TAB(pThis))
	{
		OSDR_FillOsdSegRectangle(pThis->moArea.mwW - CHOICE_OVERLAP_VALUELIST_W,
								0,
								CHOICE_OVERLAP_VALUELIST_W,
								pThis->moArea.mwH,
								pAbsArea,
								pDescriptorChoice->mwBgColor);
	}
	return FALSE;
}

/***************************************************************************************
* Choice Public utility function declarations.
****************************************************************************************/

/***************************************************************************************
*	Function	: 	OCHOICE_AddItemsToVList
*
*	In		: 	pChoice			=	Pointer to List to the MSO_CHOICE object.
*
*				pList				=	Pointer to List to which items would to be added.
*
*	Out		: 	None.
*
*	Return	:	TRUE if all the items could be added, FALSE otherwise
*
*	Desc 	:	This is a convienience function - This function is generic code (to add a list
*				of items to a vertical list) that will work in most cases. The number of items that would
*				be added depends on the number of values an MSO_CHOICE object can have
*				(i.e. MS_DESCRIPTOR_CHOICE::mcTotalValues).
****************************************************************************************/
BOOL OCHOICE_AddItemsToVList(MSO_CHOICE __NEAR* pChoice, MSO_VLIST __NEAR* pList)
{
	UINT8 cIndex;
	UINT8 cNumItems;
	MSO_LISTITEM __NEAR* pListItem;
	MS_DESCRIPTOR_CHOICE* pDescriptorChoice;
	CONST MS_DESCRIPTOR_LISTITEM* pDescriptorListItem;

	pDescriptorChoice 	= (MS_DESCRIPTOR_CHOICE*)((MSO_OBJECT __NEAR*)pChoice)->mpDescriptor;
	pDescriptorListItem = (CONST MS_DESCRIPTOR_LISTITEM*)(pDescriptorChoice->mpDescriptorValue);

	if((NULL != pChoice) && (NULL != pList))
	{
		UINT16 wItemIndex = 0;

		pList->moParam.mwTotalItems = pDescriptorChoice->mcTotalValues;

		cNumItems = MIN(pList->moParam.mcNumVisibleItems, 	(pList->moParam.mwTotalItems - pList->moParam.mwFirstDisplayItem));

		for(cIndex = 0; cIndex < cNumItems; cIndex++)
		{
			pListItem = (MSO_LISTITEM __NEAR*)OVLIST_CreatAndAddItem((MSO_OBJECT __NEAR*)pList, (MS_DESCRIPTOR*)pDescriptorListItem, TRUE, FALSE);
			wItemIndex = pList->moParam.mwFirstDisplayItem + cIndex;

			MS_SendOperation((MSO_OBJECT __NEAR*)pListItem, MS_OP_OPEN, 0);

			pListItem->moParam.mwOsdMsgIndex 	= pDescriptorChoice->mpData[wItemIndex].mwOsdMsgIndex;
			pListItem->moParam.mwValue 		= pDescriptorChoice->mpData[wItemIndex].mwValue;

			MS_SendOperation((MSO_OBJECT __NEAR*)pListItem, MS_OP_INIT, 0);

			if(pChoice->moParam.mwCurrValIndex == wItemIndex)
				MS_SetSelected(pListItem);
		}
		return TRUE;
	}
	return FALSE;
}

/***************************************************************************************
*	Function	: 	OCHOICE_GetIndexFromValue
*
*	In		: 	pThis	=	Pointer to List to the MSO_CHOICE object.
*
*				wValue	=	Value, who's index is to be searched for.
*
*	Out		: 	None.
*
*	Return	:	Index corresponding to wValue.
*
*	Desc 	:	This function search the table of value (mpData), and returns the index number
*				corresponding to wValue. Returns index of the first item if the value cannot be
*				found in the table.
****************************************************************************************/
UINT8 OCHOICE_GetIndexFromValue(MSO_OBJECT __NEAR* pThis, UINT16 wValue)
{
	if(NULL != pThis)
	{
		UINT8 cIndex;
		MS_DESCRIPTOR_CHOICE* pDescriptor = (MS_DESCRIPTOR_CHOICE*)pThis->mpDescriptor;

		for(cIndex = 0; cIndex < pDescriptor->mcTotalValues; cIndex++)
		{
			if(wValue == pDescriptor->mpData[cIndex].mwValue)
				return cIndex;
		}
	}
	return 0;// Return index of the first item, if the specified value is not found.
}

/***************************************************************************************
*	Function	: 	OCHOICE_GetValueFromIndex
*
*	In		: 	pThis	=	Pointer to List to the MSO_CHOICE object.
*
*				wIndex	=	Index, who's value is to be searched for.
*
*	Out		: 	None.
*
*	Return	:	Value corresponding to wIndex.
*
*	Desc 	:	This function returns the value (mpData) at index wIndex in the mpData table.
****************************************************************************************/
UINT16 OCHOICE_GetValueFromIndex(MSO_OBJECT __NEAR* pThis, UINT16 wIndex)
{
	if(NULL != pThis)
	{
		MS_DESCRIPTOR_CHOICE* pDescriptor = (MS_DESCRIPTOR_CHOICE*)pThis->mpDescriptor;

		if(wIndex >= pDescriptor->mcTotalValues)
			return INVALID_VALUE;
		else
			return pDescriptor->mpData[wIndex].mwValue;
	}
	return INVALID_VALUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三日本三级三级在线播放| 一区二区在线观看免费| 国产精品电影一区二区三区| 亚洲成人动漫精品| 粉嫩aⅴ一区二区三区四区五区| 97久久精品人人澡人人爽| 欧美va日韩va| 日韩精品福利网| 欧美综合在线视频| 自拍偷拍国产亚洲| 国产高清不卡二三区| 欧美电影免费观看高清完整版在| 强制捆绑调教一区二区| 欧美性一二三区| 亚洲精品欧美专区| 色综合天天综合色综合av | 国产成人h网站| 欧美一区二区人人喊爽| 亚洲成人激情社区| 欧美日精品一区视频| 一区二区三区毛片| 欧美在线不卡一区| 亚洲一区二区精品视频| 欧美综合亚洲图片综合区| 成人免费小视频| 色诱亚洲精品久久久久久| 亚洲欧美影音先锋| av在线播放成人| 中文字幕一区在线观看视频| 成人精品视频一区| 国产精品久久久久毛片软件| 成人激情免费网站| 18涩涩午夜精品.www| 一本大道久久精品懂色aⅴ| 亚洲日韩欧美一区二区在线| 91麻豆精品在线观看| 亚洲精品国产高清久久伦理二区 | 精品一区二区三区不卡| 日韩欧美一区二区在线视频| 麻豆91小视频| 国产性做久久久久久| 成人精品小蝌蚪| 亚洲天堂网中文字| 欧美精品自拍偷拍动漫精品| 水野朝阳av一区二区三区| 日韩精品专区在线影院观看| 国内外精品视频| 国产精品嫩草影院com| 91丨九色丨国产丨porny| 亚洲一区视频在线观看视频| 777亚洲妇女| 国产乱子伦一区二区三区国色天香| 久久先锋影音av| 97精品视频在线观看自产线路二| 亚洲影视在线观看| 日韩欧美亚洲国产精品字幕久久久| 韩国欧美一区二区| 国产精品久久久久四虎| 欧美电影在哪看比较好| 国产精一品亚洲二区在线视频| 国产精品久久久久久久久久久免费看 | 日本韩国一区二区三区| 视频一区视频二区中文| 国产亚洲一本大道中文在线| 色94色欧美sute亚洲线路二| 免费看日韩精品| 国产精品剧情在线亚洲| 7777精品伊人久久久大香线蕉超级流畅 | 青青青爽久久午夜综合久久午夜| 日韩精品中文字幕一区二区三区| 成人免费高清视频在线观看| 午夜精品福利视频网站| 国产精品久久久久久久久图文区 | 国产精品中文有码| 亚洲乱码一区二区三区在线观看| 日韩美女在线视频 | 亚洲激情第一区| 欧美成人精精品一区二区频| 北条麻妃一区二区三区| 美国精品在线观看| 有码一区二区三区| 日本一区二区三区高清不卡| 777xxx欧美| 欧美影院一区二区| 成人99免费视频| 国产精品资源站在线| 视频一区二区中文字幕| 亚洲精品一二三区| 国产女人18水真多18精品一级做| 欧美一区二区免费| 精品1区2区3区| 91小宝寻花一区二区三区| 国内精品国产三级国产a久久| 亚洲午夜电影网| 一区二区三区欧美视频| 亚洲欧洲精品一区二区三区 | 亚洲h在线观看| 亚洲日本在线看| 国产精品免费久久久久| 国产三级一区二区三区| 精品va天堂亚洲国产| 欧美一区二区黄| 91精品视频网| 在线电影一区二区三区| 欧美日韩国产高清一区| 欧美午夜电影在线播放| 色婷婷综合激情| 99r精品视频| 99久精品国产| 99精品久久只有精品| 99久久精品情趣| 99亚偷拍自图区亚洲| 成人美女在线观看| av电影在线观看不卡| aaa欧美日韩| 99国产精品久久| 91极品美女在线| 欧美偷拍一区二区| 欧美日韩不卡一区二区| 欧美一级片免费看| 欧美成人艳星乳罩| 久久久99精品免费观看不卡| 久久嫩草精品久久久精品一| 久久亚洲精精品中文字幕早川悠里 | 久久综合五月天婷婷伊人| 欧美日韩成人一区| 日韩精品一区二区三区老鸭窝| 日韩亚洲欧美综合| 久久久国产精品午夜一区ai换脸| 欧美韩国日本不卡| 亚洲靠逼com| 日韩国产欧美在线观看| 韩国欧美一区二区| www.在线欧美| 9191成人精品久久| 久久嫩草精品久久久精品一| 亚洲欧洲av一区二区三区久久| 一区二区三区四区乱视频| 亚洲国产乱码最新视频| 麻豆精品一区二区av白丝在线| 久久99精品国产.久久久久久| 国产91清纯白嫩初高中在线观看| av男人天堂一区| 91精品国产综合久久精品app| 精品va天堂亚洲国产| 亚洲色图欧洲色图| 久久精品国产秦先生| 成人动漫av在线| 911精品国产一区二区在线| 久久精品夜色噜噜亚洲a∨| 综合网在线视频| 久久99精品久久久| 91麻豆国产在线观看| 日韩欧美成人午夜| 亚洲卡通欧美制服中文| 老司机午夜精品99久久| 91片在线免费观看| 精品日韩一区二区| 亚洲已满18点击进入久久| 国产麻豆精品视频| 欧美在线一区二区三区| 国产女人aaa级久久久级| 婷婷亚洲久悠悠色悠在线播放| 懂色av中文字幕一区二区三区 | 看国产成人h片视频| 91在线播放网址| 久久亚洲综合色一区二区三区| 亚洲无人区一区| 成人激情校园春色| 久久夜色精品一区| 日韩电影在线一区| 欧洲国产伦久久久久久久| 欧美国产精品专区| 看国产成人h片视频| 欧美性色欧美a在线播放| 中文字幕二三区不卡| 精品一区二区三区在线观看国产| 欧美午夜在线一二页| 亚洲精品中文在线影院| 成人在线视频首页| 国产婷婷色一区二区三区在线| 日本视频一区二区三区| 欧美日韩三级在线| 尤物视频一区二区| 一本色道综合亚洲| 亚洲欧美日韩在线不卡| 国产福利一区二区| 国产日韩精品一区二区三区 | 日韩黄色在线观看| 欧美在线视频你懂得| 一区二区三区.www| 91蝌蚪porny九色| 亚洲三级免费电影| 一本久久综合亚洲鲁鲁五月天 | 国产欧美日韩麻豆91| 国产一区二区成人久久免费影院| 欧美va天堂va视频va在线| 久久国产精品99久久人人澡| 日韩一区和二区| 国模套图日韩精品一区二区|