mso_multiline_text_defs.h

来自「ZORAN 962/966 SOURCE CODE,DVD chip」· C头文件 代码 · 共 109 行

H
109
字号
/****************************************************************************************************
*  Copyright (c) 2005 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: o_multiline_text_defs.h
*
* Description:
* =========
*
****************************************************************************************************/
#include "Config.h"		// Global Configuration - do not remove!
#include "include\sysdefs.h"	// Global definition - do not remove!

#ifndef _O_MULTILINE_TEXT_DEFS_H_
#define _O_MULTILINE_TEXT_DEFS_H_

/****************************************************************************************************
*	INCLUDE FILES: Only typedef header files are allowed to be included here.
****************************************************************************************************/
// Include C Standard

// Include project specific, only type definition header files are allowed to be included
#include "GUI\Object_class\Text\mso_text_defs.h"

/****************************************************************************************************
*	DEFINITION: Public named constants
****************************************************************************************************/
/****************************************************************************************************
*	 DEFINITION: Public macros
****************************************************************************************************/
/****************************************************************************************************
*	DEFINITION: Public typedefs
****************************************************************************************************/
#ifdef D_GUI_DESCRIPTOR_MULTILINETEXT_EXT1
typedef UINT8 MS_MULTI_BG_FIT_H;
typedef UINT8 MS_MULTI_BG_FIT_V;
typedef UINT8 MS_MULTI_BG_MARGIN_H;
typedef UINT8 MS_MULTI_BG_MARGIN_V;
typedef UINT8 MS_MULTI_PREPARE_STR;

#define MS_MULTI_BG_FIT_H_AREA 	0
#define MS_MULTI_BG_FIT_H_STR		1
#define MS_MULTI_BG_FIT_V_AREA	0
#define MS_MULTI_BG_FIT_V_STR		1

#define         		MS_MULTI_PREPARE_STR_DEFAULT              0

//if one line is too long ,The remain part will be diplayed in the following line, 
//if no enough space to display several lines , the newline character between  lines will be removed  
#define        		 MS_MULTI_PREPARE_STR_FIT_1                  1
#endif//D_GUI_DESCRIPTOR_MULTILINETEXT_EXT1



typedef struct
{
	SC_PTR 						*mwEntries;
	UINT8						mcTableEntryCount;
} MULTILINE_TEXT_TABLE;

typedef struct
{
	MULTILINE_TEXT_TABLE		moEntryTable;
	UINT8						mcCurrentEntry;
} MS_PARAM_MULTILINE_TEXT;

typedef struct
{
	MSO_TEXT					moObject;
	MS_PARAM_MULTILINE_TEXT	moParam;
} MSO_MULTILINE_TEXT;

typedef struct
{
	MS_DESCRIPTOR_TEXT			moDescriptorText;
	INT16						mnPixelLeftRightBorder;
	INT16						mnPixelTopBottomBorder;
	INT8							mcPixelGapBetweenLines;
	UINT8						mcMaxTableLines;
#ifdef D_GUI_DESCRIPTOR_MULTILINETEXT_EXT1	
	MS_MULTI_BG_FIT_H			mMsMultiBgFitH;
	MS_MULTI_BG_FIT_V			mMsMultiBgFitV;
	MS_MULTI_BG_MARGIN_H		mPixelMarginBgH;
	MS_MULTI_BG_MARGIN_V		mPixelMarginBgV;
	MS_MULTI_PREPARE_STR		mMsMultiDisplayConfig;
#endif//D_GUI_DESCRIPTOR_MULTILINETEXT_EXT1
} MS_DESCRIPTOR_MULTILINE_TEXT;


#define MULTILINETEXT_GetAlignTextXPosition(_pXYAlign_, _cOsdItemWidth_, _cObjectWidth_) \
	((_pXYAlign_->mcHorizontal & ALIGN_TO_OBJECT) ? \
					(MAX(0,	OSDR_AlignmentGetOffsetInObject((_pXYAlign_->mcHorizontal & ALIGN_MASK), \
                                				_cOsdItemWidth_, 	(_cObjectWidth_- ABS(_pXYAlign_->mnX) ) )  ) \
					+ MAX(0,_pXYAlign_->mnX))  :  \
					_pXYAlign_->mnX)  
	
#define MULTILINETEXT_GetAlignTextYPosition(_pXYAlign_, _cOsdItemHeight_, _cObjectHeigt_,_cNumDisplayLines_ , _cCurrentDisplayLine_,_cPixelGapBetweenLines_)	\
	((_pXYAlign_->mcVertical & ALIGN_TO_OBJECT) ? \
					(MAX(0, OSDR_AlignmentGetOffsetInObject(_pXYAlign_->mcVertical & ALIGN_MASK,\
								_cNumDisplayLines_ * (_cOsdItemHeight_ + _cPixelGapBetweenLines_), \
							(_cObjectHeigt_- ABS(_pXYAlign_->mnY))))) \
					+ MAX(0,_pXYAlign_->mnY) \
					+ (_cCurrentDisplayLine_ * (_cOsdItemHeight_ + _cPixelGapBetweenLines_)) : \
					(((_cOsdItemHeight_+ _cPixelGapBetweenLines_ * _cCurrentDisplayLine_) \
					+ _pXYAlign_->mnY)))


#endif // _O_MULTILINE_TEXT_DEFS_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?