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

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

?? wmvhdparser.cpp

?? sigmadesign smp8623 gui source code ,bingo
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
void RMWmvHDParser::FreeEvent(guiEventType *event){	if(event == NULL)		return;			if(event->name != (RMascii *)NULL){		RFREE(event->name);		event->name = NULL;	}	if(event->command != (RMascii *)NULL){		RFREE(event->command);		event->command = NULL;	}	if(event->link != (RMascii *)NULL){		RFREE(event->link);		event->link = NULL;	}	if(event->value != (RMascii *)NULL){		RFREE(event->value);		event->value = NULL;	}	RFREE(event);	}////////////////////////////////////////////////////////////////////////////////// BUTTONS////////////////////////////////////////////////////////////////////////////////guiButtonType *RMWmvHDParser::ParseButton(TiXmlElement *pnode){	const RMascii *str;	guiButtonType *button;	RMGuiObjectState state;	RMuint64 color;		button = (guiButtonType*) CALLOC(1, sizeof(guiButtonType));	RMMemset(&button->object, 0, sizeof(RMButtonObject));		str = pnode->Attribute(XMLID_NODE, true);	// name	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read id of button (ParseButton) ... error\n"));		goto invalidButton;	}	else {		button->name = STRDUP(str);	}		str = pnode->Attribute(XMLSRC_NODE, true);	// file	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read src (ParseButton) ... error\n"));	}	else {		button->object.file = RMCatAscii(m_mountPoint, str, NULL);		if(IsValidPath(button->object.file) == FALSE){			if(RMFAILED(FindFile(button->object.file))){				RMDBGLOG((GUIPARSERDBG, "Invalid path given for bitmap (ParseImage) ... error\n"));				goto invalidButton;			}		}	}	str = pnode->Attribute(XMLHOVERSRC_NODE, true);	// selectedFile	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read hoversrc (ParseButton) ... error\n"));	}	else {		button->object.selectedFile = RMCatAscii(m_mountPoint, str, NULL);		if(IsValidPath(button->object.selectedFile) == FALSE){			if(RMFAILED(FindFile(button->object.selectedFile))){				RMDBGLOG((GUIPARSERDBG, "Invalid path given for bitmap (ParseImage) ... error\n"));				goto invalidButton;			}		}	}	str = pnode->Attribute(XMLLEFT_NODE, true);	// x	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read left of button (ParseButton) ... error\n"));		goto invalidButton;	}	else {		RMasciiToUInt16 (str, &(button->object.x));	}	str = pnode->Attribute(XMLTOP_NODE, true);	// y	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read x of button (ParseButton) ... error\n"));		goto invalidButton;	}	else {		RMasciiToUInt16 (str, &(button->object.y));	}	str = pnode->Attribute(XMLWIDTH_NODE, true);	// width	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read width of button (ParseButton) ... error\n"));		goto invalidButton;	}	else {		RMasciiToUInt16 (str, &(button->object.width));	}	str = pnode->Attribute(XMLHEIGHT_NODE, true);	// height	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read height of button (ParseButton) ... error\n"));		goto invalidButton;	}	else {				RMasciiToUInt16 (str, &(button->object.height));	}	str = pnode->Attribute(XMLBACKGROUNDCOLOR_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read backgroundcolor of button (ParseButton) ... ignoring\n"));	}	else {				if((str[0] == '0') &&		   (str[1] == 'x')) {			// hexa			RMasciiHexToUint64(str+2, &color);			button->object.backgroundcolor = (RMuint32)color;		}		else {			RMasciiToUInt32 (str, &(button->object.backgroundcolor));		}	}	str = pnode->Attribute(XMLFOREGROUNDCOLOR_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read foregroundcolor of button (ParseButton) ... ignoring\n"));	}	else {				if((str[0] == '0') &&		   (str[1] == 'x')) {			// hexa			RMasciiHexToUint64(str+2, &color);			button->object.foregroundcolor = (RMuint32)color;		}		else {			RMasciiToUInt32 (str, &(button->object.foregroundcolor));		}	}		str = pnode->Attribute(XMLOUTLINECOLOR_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read button outline color (ParseButton) ... optional\n"));	}	else {				if((str[0] == '0') &&		   (str[1] == 'x')) {			// hexa			RMasciiHexToUint64(str+2, &color);			button->object.outlinecolor = (RMuint32)color;					}		else {			RMasciiToUInt32 (str, &(button->object.outlinecolor));		}	}		str = pnode->Attribute(XMLTRANSPARENTCOLOR_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read button transparent color... error\n"));	}	else {				if((str[0] == '0') &&		   (str[1] == 'x')) {			// hexa			RMasciiHexToUint64(str+2, &color);			button->object.transparentcolor = (RMuint32)color;					}		else {			RMasciiToUInt32 (str, &(button->object.transparentcolor));		}	}		str = pnode->Attribute(XMLUSETRANSPARENTCOLOR_NODE, true);	if (str != (RMascii *)NULL) {		if (RMCompareAsciiCaseInsensitively (str, "TRUE")) {			button->object.usetransparentcolor = TRUE;		}		else if (RMCompareAsciiCaseInsensitively (str, "FALSE")) {			button->object.usetransparentcolor = FALSE;		}		else {			RMDBGLOG((GUIPARSERDBG, "Invalid usetransparentcolor value of button ... error\n"));			goto invalidButton;		}		}	else		button->object.usetransparentcolor = FALSE;	str = pnode->Attribute(XMLFONTFILE_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read fontfile of button (ParseButton) ... optional\n"));		// could be a bitmapped button	}	else {		button->object.fontfile = STRDUP(str);	}	str = pnode->Attribute(XMLCHARWIDTH_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read charwidth of button (ParseButton) ... optional\n"));		//no fail here sice we could be using pre-defined fonts	}	else {				RMasciiToUInt8 (str, &(button->object.charwidth));	}		str = pnode->Attribute(XMLTEXTALIGN_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read button text alignment... (Parse Button) default to ALIGN_CENTER\n"));	 	button->object.textalign = ALIGN_CENTER;	}	else {		if(RMCompareAsciiCaseInsensitively(str, "ALIGN_LEFT")){			button->object.textalign = ALIGN_LEFT;		}		else if(RMCompareAsciiCaseInsensitively(str, "ALIGN_RIGHT")){			button->object.textalign = ALIGN_RIGHT;		}		else			button->object.textalign = ALIGN_CENTER;		}		str = pnode->Attribute(XMLROUNDED_NODE, true);	if (str != (RMascii *)NULL) {		if (RMCompareAsciiCaseInsensitively (str, "TRUE")) {			button->object.rounded = TRUE;		}		else if (RMCompareAsciiCaseInsensitively (str, "FALSE")) {			button->object.rounded = FALSE;		}		else {			RMDBGLOG((GUIPARSERDBG, "Invalid rounded value of button ... (Parse Button) optional\n"));		}		}	else		button->object.rounded = FALSE;	str = pnode->Attribute(XMLTEXT_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read text of button (ParseButton) ... optional\n"));		// could be a bitmapped button	}	else {		button->object.text = STRDUP(str);	}	str = pnode->Attribute(XMLSTATE_NODE, true);	if (str == (RMascii *)NULL) {//		RMDBGLOG((GUIPARSERDBG, "Could not read button state (Parse Button)... default to enabled\n"));		button->object.state = STATE_ENABLED;	}	else {		if(RMCompareAsciiCaseInsensitively(str, "STATE_DISABLED")){			state = STATE_DISABLED;		}		else			state = STATE_ENABLED;	// cannot have focus from xml		button->object.state = state;	}	str = pnode->Attribute(XMLNAVDOWN_NODE, true);	// keydown	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read navdown of button (ParseButton) ... optional\n"));	}	else {		button->keydown = STRDUP(str);	}		str = pnode->Attribute(XMLNAVUP_NODE, true);	// keyup	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read navup of button (ParseButton) ... optional\n"));	}	else {		button->keyup = STRDUP(str);	}	str = pnode->Attribute(XMLNAVLEFT_NODE, true);	// keyleft	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read navleft of button (ParseButton) ... optional\n"));	}	else {		button->keyleft = STRDUP(str);	}	str = pnode->Attribute(XMLNAVRIGHT_NODE, true);	// keyright	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read navright of button (ParseButton) ... optional\n"));	}	else {		button->keyright = STRDUP(str);	}		str = pnode->Attribute(XMLZINDEX_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read zIndex of button (ParseButton) ... default to 0\n"));		button->object.zIndex = 0;	}	else {		RMasciiToUInt8 (str, &(button->object.zIndex));	}	// add event	str = pnode->Attribute(XMLACTION_NODE, true);	// activate event	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read button action (ParseButton) ... error\n"));		goto invalidButton;	}	else {		if(RMFAILED(SetButtonAction(button, str))){			RMDBGLOG((GUIPARSERDBG, "Error parsing button action (ParseButton) ... error\n"));			goto invalidButton;		}				}//	RMDBGLOG((GUIPARSERDBG, "Button : name : %s, x=%d, y=%d, width=%d, height=%d, backgroundcolor=0x%lX, foregroundcolor=0x%lX, fontfile : %s, charwidth : %d, rounded=%d, text : %s, state : %d, visible : %s, keydown : %s\n",//		  button->name, button->object.x, button->object.y, button->object.width, button->object.height, button->object.backgroundcolor,//		  button->object.foregroundcolor, button->object.fontfile, button->object.charwidth, button->object.rounded, button->object.text, button->object.state, button->object.visible ? "TRUE":"FALSE", button->keydown));	// set id + visibility	button->object.visible = TRUE;	button->id = BUTTON_IDMASK | m_nextButtonId++;		return button; invalidButton:	FreeButton(button);	return (guiButtonType*)NULL;}RMstatus RMWmvHDParser::SetButtonAction(guiButtonType *button, const RMascii *actionstr){	RMascii temp[128];	RMbool getvalue = TRUE;	RMbool done;		// allocate event	button->events[button->nbEvents] = (guiEventType*) CALLOC(1, sizeof(guiEventType));	if(button->events[button->nbEvents] == NULL)		return RM_ERROR;			// set name	button->events[button->nbEvents]->name = STRDUP(ACTIVATE_EVENT);	// determine command	memset(temp, 0, sizeof(temp));	RMasciiToLower(actionstr, temp);	if(strstr(temp, DISC_SETSUBTITLE) != NULL){		button->events[button->nbEvents]->command = STRDUP("SET_SUBTITLE_COMMAND");	}	else if(strstr(temp, DISC_SETAUDIOTRACK) != NULL){		button->events[button->nbEvents]->command = STRDUP("SET_AUDIO_TRACK_COMMAND");		// get link		RMuint8 k = 0;		done = FALSE;		memset(temp, 0, sizeof(temp));		for(RMuint8 i = 0; i < RMasciiLength(actionstr); i++){			if(actionstr[i] == '.'){				for(RMuint8 j = i + 1; j < RMasciiLength(actionstr); j++){					if(actionstr[j] != 0x20){						if(actionstr[j] == '.'){							done = TRUE;							break;							}						else							temp[k++] = actionstr[j];					}				}				if(done) break;			}		}		if(done){			button->events[button->nbEvents]->link = STRDUP(temp);		}	}	else if(strstr(temp, DISC_SETMAINMENU) != NULL){		button->events[button->nbEvents]->command = STRDUP("SET_MAIN_MENU_COMMAND");	}	else{	// assume OnActivate action		button->events[button->nbEvents]->command = STRDUP("ACTIVATE_OBJECT_COMMAND");		button->events[button->nbEvents]->link = STRDUP(actionstr);		getvalue = FALSE;	}	// set value (if required)	done = FALSE;	if(getvalue){		RMuint8 k = 0;		memset(temp, 0, sizeof(temp));		for(RMuint8 i = 0; i < RMasciiLength(actionstr); i++){			if(actionstr[i] == '('){				for(RMuint8 j = i + 1; j < RMasciiLength(actionstr); j++){					if(actionstr[j] != 0x20){						if(actionstr[j] == ')'){							done = TRUE;							break;							}						else							temp[k++] = actionstr[j];					}				}				if(done) break;			}				}		if(done){			button->events[button->nbEvents]->value = STRDUP(temp);		}	}		// button action//	printf("name: %s, command: %s, link: %s\n", button->events[button->nbEvents]->name,//			button->events[button->nbEvents]->command,//			button->events[button->nbEvents]->link);	button->nbEvents++;	return RM_OK;}void RMWmvHDParser::FreeButton(guiButtonType *button){	if(button == NULL)		return;		if(button->name != (RMascii *)NULL){		RFREE(button->name);		button->name = NULL;	}	if(button->object.file != (RMascii *)NULL){		RFREE(button->object.file);		button->object.file = NULL;	}	if(button->object.fontfile != (RMascii *)NULL){		RFREE(button->object.fontfile);		button->object.fontfile = NULL;	}	if(button->object.selectedFile != (RMascii *)NULL){		RFREE(button->object.selectedFile);		button->object.selectedFile = NULL;	}	if(button->object.text != (RMascii *)NULL){		RFREE(button->object.text);		button->object.text = NULL;	}			if(button->keydown != (RMascii *)NULL){		RFREE(button->keydown);		button->keydown = NULL;	}	if(button->keyup != (RMascii *)NULL){		RFREE(button->keyup);		button->keyup = NULL;	}	if(button->keyleft != (RMascii *)NULL){		RFREE(button->keyleft);		button->keyleft = NULL;	}	if(button->keyright != (RMascii *)NULL){		RFREE(button->keyright);		button->keyright = NULL;	}	for(RMuint16 i = 0; i < button->nbEvents; i++){		FreeEvent(button->events[i]);		button->events[i] = NULL;	}	RFREE(button);	}////////////////////////////////////////////////////////////////////////////////// BITMAPS -- aka IMAGES////////////////////////////////////////////////////////////////////////////////guiBitmapType *RMWmvHDParser::ParseBitmap(TiXmlElement *pnode){	const RMascii *str;	guiBitmapType *bitmap;	RMuint64 color;	bitmap = (guiBitmapType*) CALLOC(1, sizeof(guiBitmapType));	RMMemset(&bitmap->object, 0, sizeof(RMBitmapObject));		str = pnode->Attribute(XMLID_NODE, true);		// name	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read id of image (ParseImage) ... error\n"));		goto invalidBitmap;	}	else {		bitmap->name = STRDUP(str);	}		str = pnode->Attribute(XMLSRC_NODE, true);	// file	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read src of image (ParseImage) ... error\n"));		goto invalidBitmap;	}	else {		bitmap->object.file = RMCatAscii(m_mountPoint, str, NULL);		if(IsValidPath(bitmap->object.file) == FALSE){			if(RMFAILED(FindFile(bitmap->object.file))){				RMDBGLOG((GUIPARSERDBG, "Invalid path given for bitmap (ParseImage) ... error\n"));				goto invalidBitmap;			}		}	}		str = pnode->Attribute(XMLLEFT_NODE, true);	// x	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read left of image (ParseImage) ... error\n"));		goto invalidBitmap;	}	else {		RMasciiToUInt16 (str, &(bitmap->object.x));	}	str = pnode->Attribute(XMLTOP_NODE, true);	// y	if (str == (RMascii *)NULL) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩美女一区二区| 精品久久免费看| 国内精品久久久久影院色| 自拍偷拍欧美精品| 日韩区在线观看| 在线观看视频一区| 成人久久18免费网站麻豆| 美女性感视频久久| 亚洲精品视频一区二区| 国产三级久久久| 欧美一区二区三区免费视频| 欧美系列亚洲系列| 99久久777色| 成人中文字幕在线| 国产精品自拍在线| 久久精品72免费观看| 亚洲国产日韩一区二区| 日韩一区欧美一区| 国产精品美女www爽爽爽| 精品欧美一区二区久久 | 欧美撒尿777hd撒尿| 国产白丝精品91爽爽久久| 久久99精品久久久久婷婷| 日日夜夜一区二区| 亚洲制服欧美中文字幕中文字幕| 国产精品美女久久久久久久久| 亚洲精品在线电影| 欧美一区二区在线视频| 色八戒一区二区三区| 91小视频免费观看| 91免费小视频| 不卡一区中文字幕| www.激情成人| 91美女在线观看| 99热精品一区二区| 国产精品99久久久久久久女警 | 国产精品2024| 国产呦精品一区二区三区网站| 免费观看在线综合| 日本中文在线一区| 久久成人羞羞网站| 精品一区二区av| 国产自产高清不卡| 国产成人免费视频网站| 成人高清视频在线| 色呦呦网站一区| 欧美天堂一区二区三区| 欧美日韩国产一级二级| 欧美精品一卡二卡| 日韩午夜中文字幕| 久久一留热品黄| 久久久综合视频| 国产精品久久久久国产精品日日| 国产精品福利影院| 一区二区三区四区亚洲| 午夜视频久久久久久| 久久99国产精品久久99| 国产麻豆精品在线观看| av高清不卡在线| 欧美在线观看视频一区二区三区| 欧美三级中文字幕| 精品国产成人在线影院| 国产日韩精品视频一区| 综合久久国产九一剧情麻豆| 亚洲成av人综合在线观看| 老司机精品视频一区二区三区| 国产成人亚洲综合a∨婷婷| 91免费观看国产| 91精品国模一区二区三区| 久久综合视频网| 国产欧美日韩激情| 一区二区三区在线免费视频| 日本欧美大码aⅴ在线播放| 国产麻豆精品久久一二三| 91精品91久久久中77777| 日韩欧美亚洲国产精品字幕久久久| 久久男人中文字幕资源站| 亚洲欧美欧美一区二区三区| 久久精品久久精品| 色综合夜色一区| 欧美成人a∨高清免费观看| 亚洲少妇30p| 精品一区二区三区免费视频| 99国产精品视频免费观看| 欧美一二三在线| 中文字幕在线一区| 久久精品国产色蜜蜜麻豆| 99国产精品久久久| 欧美精品一区二区在线播放| 亚洲免费在线观看| 福利电影一区二区三区| 欧美一区二区三区视频在线| 亚洲色图在线播放| 国产成人亚洲综合色影视| 91精品国产一区二区三区蜜臀| 日韩一区在线免费观看| 国产一区二区视频在线播放| 欧美精品自拍偷拍动漫精品| 国产精品视频一二三| 另类小说欧美激情| 欧美日韩一区高清| 亚洲天天做日日做天天谢日日欢 | 成人免费视频免费观看| 91精品国产日韩91久久久久久| 成人欧美一区二区三区1314| 另类中文字幕网| 欧美日韩在线播放| 日韩毛片视频在线看| 国产福利一区二区三区在线视频| 在线播放91灌醉迷j高跟美女| 国产精品久久久久久久久免费桃花| 日本三级亚洲精品| 欧美日韩视频专区在线播放| 亚洲日本电影在线| 成人av网站在线观看免费| 欧美电影免费观看高清完整版在线| 一区二区欧美国产| 北条麻妃一区二区三区| 久久久精品国产免费观看同学| 日韩国产在线观看| 51精品国自产在线| 香蕉影视欧美成人| 欧美少妇bbb| 亚洲福利一二三区| 欧美影院一区二区| 亚洲精品高清视频在线观看| 91天堂素人约啪| 中文字幕一区二区不卡| 成人爱爱电影网址| 日韩一区在线免费观看| 99精品视频中文字幕| 成人欧美一区二区三区1314| 99re热这里只有精品视频| 国产精品超碰97尤物18| 99精品久久久久久| 亚洲人一二三区| 91性感美女视频| 亚洲欧美激情一区二区| 色综合激情久久| 亚洲v中文字幕| 6080亚洲精品一区二区| 青草av.久久免费一区| 欧美mv和日韩mv国产网站| 精品午夜一区二区三区在线观看| 精品国产乱码久久久久久1区2区| 精品无人码麻豆乱码1区2区 | 午夜视频一区二区| 欧美精品电影在线播放| 久久精品国产**网站演员| 久久美女艺术照精彩视频福利播放| 国产麻豆一精品一av一免费| 国产欧美日本一区视频| av一区二区三区黑人| 尤物视频一区二区| 欧美一区二区观看视频| 国产精品中文字幕欧美| 一色桃子久久精品亚洲| 色吧成人激情小说| 日韩精品一二三四| 久久色在线观看| 91在线云播放| 日日夜夜精品视频免费| 久久综合狠狠综合久久综合88| 国产宾馆实践打屁股91| 亚洲综合一区二区精品导航| 欧美日韩视频在线观看一区二区三区| 日本欧美在线观看| 欧美激情综合五月色丁香小说| 91丨九色丨国产丨porny| 日韩av一级片| 欧美韩日一区二区三区四区| 色婷婷国产精品| 麻豆精品在线播放| 中文字幕一区二区三区四区 | www亚洲一区| kk眼镜猥琐国模调教系列一区二区| 一区二区三区欧美日韩| 日韩欧美成人午夜| 不卡的电影网站| 免费欧美在线视频| 亚洲日本欧美天堂| xfplay精品久久| 欧美怡红院视频| 国产成人精品一区二区三区网站观看| 亚洲视频一区二区免费在线观看 | 日韩情涩欧美日韩视频| 91在线一区二区三区| 免费美女久久99| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品一线二线三线无人区| 91在线视频观看| 九九在线精品视频| 夜夜亚洲天天久久| 国产精品免费看片| 欧美一区二区三区性视频| 97se亚洲国产综合自在线不卡| 麻豆91在线观看| 丝袜国产日韩另类美女| 国产精品系列在线| 久久色成人在线|