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

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

?? guiparser.cpp

?? sigmadesign smp8623 gui source code ,bingo
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
#ifdef GUI_REFID_2		page->object.file = RMCatAscii(m_bitmapsPath, "/", "background.jpg", NULL);#else		goto invalidPage;#endif	}	else {		page->object.file = RMCatAscii(m_bitmapsPath, "/", str, NULL);	}	str = pnode->Attribute(XMLX_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read x (ParseOsdPage) ... error\n"));		page->object.x = 0;	}	else {		RMasciiToUInt16 (str, &(page->object.x));	}	str = pnode->Attribute(XMLY_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read y (ParseOsdPage) ... error\n"));		page->object.y = 0;	}	else {		RMasciiToUInt16 (str, &(page->object.y));	}	str = pnode->Attribute(XMLVISIBLE_NODE, true);	if (str != (RMascii *)NULL) {		if (RMCompareAsciiCaseInsensitively (str, "TRUE")) {			page->object.visible = TRUE;		}		else if (RMCompareAsciiCaseInsensitively (str, "FALSE")) {			page->object.visible = FALSE;		}		else {			RMDBGLOG((GUIPARSERDBG, "Invalid visible value (ParseScreenFormat) ... error\n"));			goto invalidPage;		}	}	else		page->object.visible = TRUE;	str = pnode->Attribute(XMLDYNPAGE_NODE, true);	if (str != (RMascii *)NULL) {		if (RMCompareAsciiCaseInsensitively (str, "TRUE")) {			page->object.dynamic = TRUE;		}		else if (RMCompareAsciiCaseInsensitively (str, "FALSE")) {			page->object.dynamic = FALSE;		}		else {			RMDBGLOG((GUIPARSERDBG, "Invalid visible value (ParseScreenFormat) ... error\n"));			page->object.dynamic = FALSE;		}	}	else		page->object.dynamic = FALSE;	if(page->object.dynamic) {		str = pnode->Attribute(XMLURL_NODE, true);		if (str == (RMascii *)NULL) {			RMDBGLOG((GUIPARSERDBG, "Could not read url (ParseOsdPage) ... error\n"));			goto invalidPage;		}		else {			page->object.url = STRDUP(str);		}	}	str = pnode->Attribute(XMLSELECTEDOBJECT_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read selectedObject ... ignoring\n"));	}	else {		page->selectedObject = STRDUP(str);	}	RMDBGLOG((GUIPARSERDBG, "osd page : name : %s, file : %s, x=%d, y=%d, visible : %s\n",		  page->name, page->object.file, page->object.x, page->object.y, page->object.visible?"TRUE":"FALSE"));	for(ptempNode = pnode->FirstChildElement(); ptempNode != NULL; ptempNode = ptempNode->NextSiblingElement()) {       		str = ptempNode->Value();		if (str == (RMascii *)NULL)			continue;		if (RMCompareAsciiCaseInsensitively (str, XMLEVENTLIST_NODE)) {			ParseEventList(ptempNode, (page->events), &(page->nbEvents));		}		else if (RMCompareAsciiCaseInsensitively (str, XMLBUTTONLIST_NODE)) {			ParseButtonList(ptempNode, (page->buttons), &(page->nbButtons), NULL);		}		else if (RMCompareAsciiCaseInsensitively (str, XMLSTRINGLIST_NODE)) {			ParseStringList(ptempNode, (page->strings), &(page->nbStrings));		}		else if (RMCompareAsciiCaseInsensitively (str, XMLBITMAPLIST_NODE)) {			ParseBitmapList(ptempNode, (page->bitmaps), &(page->nbBitmaps));		}		else if (RMCompareAsciiCaseInsensitively (str, XMLMENULIST_NODE)) {			ParseMenuList(ptempNode, (page->menus), &(page->nbMenus));		}		else if (RMCompareAsciiCaseInsensitively (str, XMLLISTS_NODE)) {			ParseLists(ptempNode, (page->lists), &(page->nbLists));		}		else if (RMCompareAsciiCaseInsensitively (str, XMLSLIDER_NODE)) {			page->temp = ParseSlider(ptempNode);		}		else {			RMDBGLOG((GUIPARSERDBG, "unknown node [%s] in osdPages\n", str));		}	}	// set ids	page->id = m_nbOsdPages;	// page auto key navigation	DoPageAutoKeyNavigation(page);	RMDBGLOG((GUIPARSERDBG, "end page\n"));	return page; invalidPage:	FreeOsdPage(page);	return (guiOsdPageType*)NULL;}void RMcuracaoGuiParser::FreePanel(guiPanelType *page){	RMuint16 i;	if(page == NULL)		return;	if(page->name != (RMascii *)NULL){		RFREE(page->name);		page->name = NULL;	}	if(page->object.file != (RMascii *)NULL){		RFREE(page->object.file);		page->object.file = NULL;	}	for(i = 0; i < page->nbButtons; i++){		FreeButton(page->buttons[i]);		page->buttons[i] = NULL;	}	if(page->slider)	{		FreeSlider(page->slider);		page->slider = NULL;	}	RFREE(page);}void RMcuracaoGuiParser::FreeAnimationItem(guiAnimationItem* item){	if(item == NULL)		return;	if(item->name)	{		RFREE(item->name);		item->name = NULL;	}	if(item->object.icon)	{		RFREE(item->object.icon);		item->object.icon = NULL;	}	RFREE(item);}void RMcuracaoGuiParser::FreeMediaControls(guiMediaControls *page){	RMuint16 i;	if(page == NULL)		return;	if(page->file)	{		RFREE(page->file);		page->file = NULL;	}	for(i = 0; i < 3; i++){		if(page->panels[i])			FreePanel(page->panels[i]);		page->panels[i] = NULL;	}	RFREE(page);}void RMcuracaoGuiParser::FreeTranslations(guiLangTranslations *page){	RMuint16 i,j;	if(page == NULL)		return;	for(i = 0; i < 128; i++){		if(page->translations[i])		{			if(page->translations[i]->name)			{				RFREE(page->translations[i]->name);				page->translations[i]->name = NULL;			}			for(j = 0; j < 10; j ++)			{				if(page->translations[i]->translations[j])				{					RFREE(page->translations[i]->translations[j]);					page->translations[i]->translations[j] = NULL;				}			}			RFREE(page->translations[i]);		}		page->translations[i] = NULL;	}	RFREE(page);}void RMcuracaoGuiParser::FreeAnimations(guiAnimationType *page){	if(page == NULL)		return;	FreeAnimationItem(page->item);	RFREE(page);}void RMcuracaoGuiParser::FreeOsdPage(guiOsdPageType *page){	RMuint16 i;	if(page == NULL)		return;	if(page->name != (RMascii *)NULL){		RFREE(page->name);		page->name = NULL;	}	if(page->selectedObject != (RMascii *)NULL){		RFREE(page->selectedObject);		page->selectedObject = NULL;	}	if(page->object.file != (RMascii *)NULL){		RFREE(page->object.file);		page->object.file = NULL;	}	if(page->object.url != (RMascii*) NULL) {		RFREE(page->object.url);		page->object.url = NULL;	}	if(page->temp != NULL)	{		FreeSlider(page->temp);		//RFREE(page->temp);		page->temp = NULL;	}	for(i = 0; i < page->nbEvents; i++){		FreeEvent(page->events[i]);		page->events[i] = NULL;	}	for(i = 0; i < page->nbButtons; i++){		FreeButton(page->buttons[i]);		page->buttons[i] = NULL;	}	for(i = 0; i < page->nbBitmaps; i++){		FreeBitmap(page->bitmaps[i]);		page->bitmaps[i] = NULL;	}	for(i = 0; i < page->nbMenus; i++){		FreeMenu(page->menus[i]);		page->menus[i] = NULL;	}	for(i = 0; i < page->nbLists; i++){		FreeList(page->lists[i]);		page->lists[i] = NULL;	}	for(i = 0; i < page->nbStrings; i++){		FreeString(page->strings[i]);		page->strings[i] = NULL;	}	RFREE(page);}RMstatus RMcuracaoGuiParser::GetPages(	guiOsdPageType *pages[MAX_GUI_PAGES],	RMuint16 *nPages){	if(m_nbOsdPages){		RMMemcpy(pages, m_osdPages, sizeof(m_osdPages));		*nPages = m_nbOsdPages;		return RM_OK;	}	return RM_ERROR;}RMstatus RMcuracaoGuiParser::GetMediaControls(	guiMediaControls **controls){	//RMMemcpy(controls, m_mediaControls, sizeof(m_mediaControls));	(*controls) = m_mediaControls;	return RM_OK;}RMstatus RMcuracaoGuiParser::GetAnimation(guiAnimationType **animation){	//RMMemcpy(controls, m_mediaControls, sizeof(m_mediaControls));	(*animation) = m_loadAnimation;	return RM_OK;}// contributed by KARL@KISS//This function will autogenerate navigation routes for buttons and special string types in pages, popups and menus.RMstatus RMcuracaoGuiParser::DoPageAutoKeyNavigation(guiOsdPageType *page){	//Special navigation commands can still be added in the XML file	RMuint16 highX = 1000;	RMuint16 highY = 1000;	RMuint16 lowX = 0;	RMuint16 lowY = 0;	RMuint8 right = 0;	RMuint8 down = 0;	RMuint8 left = 0;	RMuint8 up = 0;	RMuint16 currentX = 0;	RMuint16 currentY = 0;	RMuint16 targetX = 0;	RMuint16 targetY = 0;	// buttons within page	for(RMuint8 b = 0; b < page->nbButtons; b++){		//Analyse all buttons if more than one		currentX = page->buttons[b]->object.x;		currentY = page->buttons[b]->object.y;		RMDBGLOG((GUIPARSERDBG, "Page button found with coordinates: x %d, y %d\n", currentX, currentY));//		printf("Page button found with coordinates: x %d, y %d\n", currentX, currentY);		//Find neighbour buttons if any		for(RMuint8 c = 0; c < page->nbButtons; c++){			if( page->buttons[c]->object.state != STATE_DISABLED){				targetX = page->buttons[c]->object.x;				targetY = page->buttons[c]->object.y;				if((b != c) && (targetX == currentX)){					if((currentY > targetY) && (lowY < targetY)) {lowY = targetY; up = c+1;}					if((currentY < targetY) && (highY > targetY)) {highY = targetY; down = c+1;}				}				else if((b != c) && (targetY == currentY)){					if((currentX > targetX) && (lowX < targetX)) {lowX = targetX; left = c+1;}					if((currentX < targetX) && (highX > targetX)) {highX = targetX; right = c+1;}				}			}		}		//Assign neighbour buttons if available and not previously assigned		if(up && page->buttons[b]->keyup == (RMascii*)NULL)			 page->buttons[b]->keyup = STRDUP(page->buttons[up-1]->name);		if(down && page->buttons[b]->keydown == (RMascii*)NULL)			 page->buttons[b]->keydown = STRDUP(page->buttons[down-1]->name);		if(left && page->buttons[b]->keyleft == (RMascii*)NULL)			page->buttons[b]->keyleft = STRDUP(page->buttons[left-1]->name);		if(right && page->buttons[b]->keyright == (RMascii*)NULL)			page->buttons[b]->keyright = STRDUP(page->buttons[right-1]->name);		RMDBGLOG((GUIPARSERDBG, "Assigning index: up = %d down = %d left = %d right = %d\n", up, down, left, right));//		printf("Assigning index: up = %d down = %d left = %d right = %d\n", up, down, left, right);		up = 0; down = 0; left = 0; right = 0; lowX = 0; lowY = 0; highX = 1000; highY = 1000;	}	// menus within page	for(RMuint8 i = 0; i < page->nbMenus; i++){		if(page->menus[i]->nbItems ){			for(RMuint8 j = 0; j < page->menus[i]->nbItems; j++){				if(page->menus[i]->items[j]->nbButtons > 1){					//if(debug)printf("\n*** Page menuButton autonavigation starts for page index: %d\n", a);					for(RMuint8 b=0; b < page->menus[i]->items[j]->nbButtons; b++){						currentX = page->menus[i]->items[j]->buttons[b]->object.x;						currentY = page->menus[i]->items[j]->buttons[b]->object.y;						RMDBGLOG((GUIPARSERDBG, "Menuitem button found with coordinates: x %d, y %d\n", currentX, currentY));						//Find neighbour buttons if any						for(RMuint8 c=0; c < page->menus[i]->items[j]->nbButtons; c++){							if( page->menus[i]->items[j]->buttons[c]->object.state != STATE_DISABLED){								targetX = page->menus[i]->items[j]->buttons[c]->object.x;								targetY = page->menus[i]->items[j]->buttons[c]->object.y;								if((b != c) && (targetX == currentX)){									if((currentY > targetY) && (lowY < targetY))										{lowY = targetY; up = c+1;}									if((currentY < targetY) && (highY > targetY))										{highY = targetY; down = c+1;}								}								else if((b != c) && (targetY == currentY)){									if((currentX > targetX) && (lowX < targetX))										{lowX = targetX; left = c+1;}									if((currentX < targetX) && (highX > targetX))										{highX = targetX; right = c+1;}								}							}						}						//Assign neighbour buttons if available and not previously assigned						if(up && page->menus[i]->items[j]->buttons[b]->keyup == (RMascii*)NULL)							page->menus[i]->items[j]->buttons[b]->keyup = STRDUP(page->menus[i]->items[j]->buttons[up-1]->name);						if(down && page->menus[i]->items[j]->buttons[b]->keydown == (RMascii*)NULL)							page->menus[i]->items[j]->buttons[b]->keydown = STRDUP(page->menus[i]->items[j]->buttons[down-1]->name);						if(left && page->menus[i]->items[j]->buttons[b]->keyleft == (RMascii*)NULL)							page->menus[i]->items[j]->buttons[b]->keyleft = STRDUP(page->menus[i]->items[j]->buttons[left-1]->name);						if(right && page->menus[i]->items[j]->buttons[b]->keyright == (RMascii*)NULL)							page->menus[i]->items[j]->buttons[b]->keyright = STRDUP(page->menus[i]->items[j]->buttons[right-1]->name);						RMDBGLOG((GUIPARSERDBG, "Assigning index: up = %d down = %d left = %d right = %d\n", up, down, left, right));						up = 0; down = 0; left = 0; right = 0;						lowX = 0; lowY = 0; highX = 1000; highY = 1000;					}				}			}		}	}	return RM_OK;}////////////////////////////////////////////////////////////////////////////////// EVENTS////////////////////////////////////////////////////////////////////////////////RMstatus RMcuracaoGuiParser::GetEvents(	guiEventType *events[MAX_GUI_EVENTS],	RMuint16 *nEvents){	if(m_nbEvents){		RMMemcpy(events, m_Events, sizeof(m_Events));		*nEvents = m_nbEvents;	}	return RM_OK;}RMstatus RMcuracaoGuiParser::ParseEventList(TiXmlElement *pnode){	TiXmlElement *ptempNode;	const RMascii *str;	for(ptempNode = pnode->FirstChildElement(); ptempNode != NULL; ptempNode = ptempNode->NextSiblingElement()) {       		str = ptempNode->Value();		if (str == (RMascii *)NULL)			continue;		if (RMCompareAsciiCaseInsensitively (str, XMLEVENT_NODE)) {			if(m_nbEvents < MAX_GUI_EVENTS) {				m_Events[m_nbEvents] = ParseEvent(ptempNode);				if(m_Events[m_nbEvents] != (guiEventType*)NULL){					m_nbEvents++;				}			}			else{				RMDBGLOG((GUIPARSERDBG, "Exceed max number of global events (=%d)\n", MAX_GUI_EVENTS));			}		}		else {			RMDBGLOG((GUIPARSERDBG, "unknown node [%s] in global eventList\n", str));		}	}	return RM_OK;}RMstatus RMcuracaoGuiParser::ParseEventList(

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩成人在线一区| 国产精品家庭影院| 亚洲精品国产成人久久av盗摄| 亚洲国产欧美一区二区三区丁香婷| 麻豆精品视频在线| 在线看一区二区| 中文字幕国产一区| 国产一区二区三区在线看麻豆| 欧美午夜精品久久久久久孕妇| 国产无人区一区二区三区| 肉肉av福利一精品导航| 99热精品国产| 国产精品久久影院| 国产成人啪免费观看软件| 欧美成人欧美edvon| 奇米888四色在线精品| 欧美乱熟臀69xxxxxx| 亚洲视频电影在线| 成人av在线网| 国产欧美日韩另类一区| 国产精品自拍一区| 精品国产一区二区三区忘忧草| 亚洲电影在线播放| 欧美在线|欧美| 亚洲一区二区三区视频在线| 91小视频免费观看| 亚洲欧美另类小说| 99国产精品久久久久久久久久久| 久久精品亚洲麻豆av一区二区| 九九**精品视频免费播放| 欧美一区二区三区在线电影| 亚洲一区在线观看免费 | 美女网站视频久久| 91精品久久久久久久91蜜桃| 午夜视频一区在线观看| 欧美夫妻性生活| 日本vs亚洲vs韩国一区三区二区| 欧美久久久久免费| 久久精品国产第一区二区三区| 在线播放中文一区| 蜜臀av一区二区三区| 日韩免费高清av| 另类专区欧美蜜桃臀第一页| 精品欧美乱码久久久久久1区2区| 国产一区二区调教| 综合av第一页| 欧亚洲嫩模精品一区三区| 亚洲国产美国国产综合一区二区| 欧美久久一二区| 极品少妇一区二区三区精品视频| 久久精品人人做人人综合| 99视频精品免费视频| 亚洲图片一区二区| 精品国产91洋老外米糕| 丁香激情综合五月| 一区二区三区久久久| 欧美精品v日韩精品v韩国精品v| 男人的天堂久久精品| 国产人成一区二区三区影院| 色88888久久久久久影院野外| 午夜精品久久一牛影视| 亚洲精品在线观看视频| 97aⅴ精品视频一二三区| 午夜精品视频一区| 欧美国产日韩亚洲一区| 欧美日韩中文字幕一区二区| 精品亚洲欧美一区| 最新久久zyz资源站| 欧美一卡二卡在线观看| 不卡av在线网| 欧美aaaaa成人免费观看视频| 国产日韩欧美精品在线| 欧美午夜精品一区二区三区 | 欧美精品一区二| 色综合天天综合网国产成人综合天 | 欧美另类z0zxhd电影| 国产乱子伦视频一区二区三区 | 激情综合五月婷婷| 亚洲视频免费在线| 精品久久久久久久久久久久久久久久久 | 精品久久久久久久久久久院品网| 99视频在线精品| 精品一区二区三区免费毛片爱| 亚洲免费观看高清在线观看| 日韩欧美在线不卡| 日本韩国欧美在线| 国产91丝袜在线18| 免费人成黄页网站在线一区二区| 一区二区三区在线观看网站| 中文字幕免费不卡在线| 日韩一区二区精品| 色欧美88888久久久久久影院| 国内精品在线播放| 日韩电影一二三区| 香港成人在线视频| 亚洲综合在线观看视频| 国产精品白丝在线| 国产欧美一区二区精品性| 欧美一区二区在线视频| 欧美日韩小视频| 色视频成人在线观看免| 成人免费黄色在线| 国产 日韩 欧美大片| 国产成人欧美日韩在线电影| 精品在线亚洲视频| 美洲天堂一区二卡三卡四卡视频| 亚洲国产视频一区| 夜夜嗨av一区二区三区中文字幕| 亚洲日本韩国一区| 亚洲欧洲99久久| 国产日本欧洲亚洲| 欧美国产精品中文字幕| 欧美国产精品一区| 国产精品护士白丝一区av| 中文字幕一区二区三区不卡在线| 国产精品久久久久久久裸模| 国产精品天美传媒| 日韩毛片一二三区| ...av二区三区久久精品| 亚洲伦在线观看| 一区二区三区免费在线观看| 一区二区三区在线高清| 亚洲网友自拍偷拍| 麻豆精品视频在线观看视频| 精品无人区卡一卡二卡三乱码免费卡| 久久草av在线| 国产不卡在线视频| 色8久久人人97超碰香蕉987| 欧美亚洲国产一区二区三区va| 欧美日韩一区成人| 在线综合视频播放| 国产亚洲成年网址在线观看| 中文字幕av资源一区| 一区二区三区中文免费| 丝袜亚洲另类欧美综合| 另类小说综合欧美亚洲| 懂色av中文字幕一区二区三区| 91在线porny国产在线看| 欧美性受xxxx黑人xyx| 欧美一区二区二区| 国产日韩欧美高清| 亚洲午夜精品17c| 国模娜娜一区二区三区| 91在线精品一区二区三区| 这里只有精品电影| 欧美激情在线一区二区三区| 亚洲主播在线播放| 极品美女销魂一区二区三区 | 亚洲乱码日产精品bd| 天堂一区二区在线免费观看| 国产一区二区成人久久免费影院| 91小视频在线观看| 精品久久国产字幕高潮| 亚洲精品乱码久久久久久| 国产一区二区在线观看免费| 在线这里只有精品| 久久精品一区二区三区四区| 亚洲成人你懂的| 精品一区二区日韩| 欧美最猛性xxxxx直播| 久久婷婷综合激情| 亚洲18色成人| 丁香另类激情小说| 日韩精品一区二区三区swag| 亚洲欧美激情在线| 国产在线一区二区| 在线观看91av| 亚洲男人都懂的| 国产成人午夜99999| 欧美一区二区在线播放| 亚洲品质自拍视频网站| 国产一区二区91| 6080午夜不卡| 一区二区三区精品久久久| 国产超碰在线一区| 精品欧美乱码久久久久久1区2区| 亚洲成人激情av| 色综合久久88色综合天天免费| 久久久久成人黄色影片| 美腿丝袜在线亚洲一区| 欧美日韩1234| 一区二区成人在线观看| av日韩在线网站| 久久久精品黄色| 国产老女人精品毛片久久| 在线播放91灌醉迷j高跟美女| 亚洲欧美综合在线精品| 成人动漫一区二区| 国产日韩欧美综合一区| 国产激情精品久久久第一区二区| 69堂国产成人免费视频| 日韩国产欧美在线视频| 欧美精品aⅴ在线视频| 亚洲r级在线视频| 欧美精品在线一区二区三区| 日韩主播视频在线| 欧美军同video69gay| 免费成人美女在线观看| 日韩一区二区在线观看视频| 毛片一区二区三区|