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

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

?? cuiskinxmlreader.cpp

?? wince ImageViewer_Skinned
?? CPP
字號:
//
// CUISkinXmlReader.cpp
//
// --------------------------------------------------------
// A Practical Guide to Script-Driven Software Development
// Author: Qiming Lu                        Date: 6/1/2006
// MSN Messager: luqiming26@hotmail.com
// MSN Blog: http://spaces.msn.com/jemylu
// --------------------------------------------------------

#include "stdafx.h"
#include "CUISkinXmlReader.h"
#include "MiscUtils.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

const char * kNode_MainWindow	= "MainWindow";
const char * kNode_ImageBox		= "ImageBox";
const char * kNode_Button		= "Button";

const char * kAttr_Version		= "version";
const char * kAttr_Skin			= "skin";
const char * kAttr_Name			= "name";
const char * kAttr_XPos			= "xpos";
const char * kAttr_YPos			= "ypos";
const char * kAttr_Width		= "width";
const char * kAttr_Height		= "height";

// Singleton instance
CUISkinXmlReader* CUISkinXmlReader::mInstance = 0;
////////////////////////////////////////////////////////////////////////////
CUISkinXmlReader::CUISkinXmlReader() 
	: mXmlManager(0)
	, mMainWindowNode(0)
	, mCurrentButton(0)
{
}

CUISkinXmlReader::~CUISkinXmlReader()
{
	Finalize();
}

void CUISkinXmlReader::CreateInstance()
{
	if (mInstance == 0)
	{
		mInstance = new CUISkinXmlReader();

		CString filePath = MiscUtils::GetSkinFolder() + "\\ImageViewer.xml";
		mInstance->SetXmlFile(filePath);
	}
}

void CUISkinXmlReader::DeleteInstance()
{
	if (mInstance)
	{
		delete mInstance;
		mInstance = 0;
	}
}

CUISkinXmlReader* CUISkinXmlReader::GetInstance()
{
	if (mInstance == 0)
	{
		CreateInstance();
	}
	return mInstance;
}

void CUISkinXmlReader::Finalize()
{
	if (mCurrentButton)
	{
		mCurrentButton->Release();
		mCurrentButton = 0;
	}
	if (mMainWindowNode)
	{
		mMainWindowNode->Release();
		mMainWindowNode = 0;
	}
	if (mXmlManager)
	{
		delete mXmlManager;
		mXmlManager = 0;
	}
}

bool CUISkinXmlReader::SetXmlFile(const char * inFile)
{
	Finalize();

	mXmlFile = inFile;
	mXmlManager = new CXmlWrapper(inFile);
	if (!mXmlManager->IsReady())
		return false;

	IXMLDOMNode* pRoot = mXmlManager->GetNodeFirstChild(NULL);
	if (pRoot)
	{
		// Retrieve the product version.
		CString version = mXmlManager->GetNodeAttr(pRoot, kAttr_Version);

		// Get the first node under the root.
		// That is 'MainWindow' node.
		mMainWindowNode = mXmlManager->GetNodeFirstChild(pRoot);
		pRoot->Release();

		if (mMainWindowNode)
		{
			return true;
		}
	}
	return false;
}

CString CUISkinXmlReader::GetMainWindowSkin()
{
	if (mMainWindowNode)
	{
		return mXmlManager->GetNodeAttr(mMainWindowNode, kAttr_Skin);
	}
	return CString("");
}

bool CUISkinXmlReader::FindButton(const char* inName)
{
	// Release the previous used button.
	if (mCurrentButton)
	{
		mCurrentButton->Release();
		mCurrentButton = NULL;
	}

	if (mMainWindowNode)
	{
		IXMLDOMNode * pNode = mXmlManager->GetNodeFirstChild(mMainWindowNode);
		while (pNode && !mCurrentButton)
		{
			// Check:	1. Is it a <Button /> node?
			//			2. Does the button node have the specified name?
			CString strName = mXmlManager->GetNodeAttr(pNode, kAttr_Name);
			if (mXmlManager->GetNodeName(pNode) == kNode_Button && 
				strName.Compare(inName) == 0)
			{
				mCurrentButton = pNode;
			}
			else
			{
				IXMLDOMNode* pNextNode = mXmlManager->GetNodeNextSibling(pNode);
				pNode->Release();
				pNode = pNextNode;
			}
		}
	}

	return (mCurrentButton != NULL);
}

// Get attributes of the current button
CString CUISkinXmlReader::GetName()
{
	return GetAttribute(kAttr_Name);
}

CString CUISkinXmlReader::GetSkin()
{
	return GetAttribute(kAttr_Skin);
}

long CUISkinXmlReader::GetXPos()
{
	CString strValue = GetAttribute(kAttr_XPos);
	if (strValue != "")
	{
		return atol(strValue);
	}
	return -1;
}

long CUISkinXmlReader::GetYPos()
{
	CString strValue = GetAttribute(kAttr_YPos);
	if (strValue != "")
	{
		return atol(strValue);
	}
	return -1;
}

long CUISkinXmlReader::GetWidth()
{
	CString strValue = GetAttribute(kAttr_Width);
	if (strValue != "")
	{
		return atol(strValue);
	}
	return -1;
}

long CUISkinXmlReader::GetHeight()
{
	CString strValue = GetAttribute(kAttr_Height);
	if (strValue != "")
	{
		return atol(strValue);
	}
	return -1;
}

void CUISkinXmlReader::GetPosition(long& xpos, long& ypos, long& width, long& height)
{
	xpos = GetXPos();
	ypos = GetYPos();
	width  = GetWidth();
	height = GetHeight();
}

// Preview Window for the image
bool CUISkinXmlReader::GetImageBox(long& xpos, long& ypos, long& width, long& height)
{
	if (mMainWindowNode)
	{
		bool found = false;
		IXMLDOMNode * pNode = mXmlManager->GetNodeFirstChild(mMainWindowNode);
		while (pNode && !found)
		{
			if (mXmlManager->GetNodeName(pNode) == kNode_ImageBox)
			{
				found = true;
			}
			else
			{
				IXMLDOMNode* pNextNode = mXmlManager->GetNodeNextSibling(pNode);
				pNode->Release();
				pNode = pNextNode;
			}
		}

		// If we found a <ImageBox /> node, read its attributes out.
		if (found)
		{
			CString strXPos = mXmlManager->GetNodeAttr(pNode, kAttr_XPos);
			CString strYPos = mXmlManager->GetNodeAttr(pNode, kAttr_YPos);
			CString strWidth  = mXmlManager->GetNodeAttr(pNode, kAttr_Width);
			CString strHeight = mXmlManager->GetNodeAttr(pNode, kAttr_Height);
			pNode->Release();

			xpos = atol(strXPos);
			ypos = atol(strYPos);
			width  = atol(strWidth);
			height = atol(strHeight);
			return true;
		}
	}
	return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡av在线免费观看| av不卡在线观看| av一区二区三区四区| 国产一区日韩二区欧美三区| 三级欧美韩日大片在线看| 国产日韩成人精品| 欧美国产国产综合| 国产精品久久毛片av大全日韩| 日韩午夜在线观看| 在线观看91视频| 91精品国产丝袜白色高跟鞋| 欧美一区二区三区免费视频| 国产女人aaa级久久久级 | 日本一区二区三区久久久久久久久不| 欧美一区二区久久久| 欧美激情中文字幕一区二区| 亚洲欧洲在线观看av| 亚洲一区二区三区精品在线| 美女视频黄 久久| 国产成人亚洲综合a∨婷婷| av亚洲精华国产精华精华| 欧美美女bb生活片| 欧美激情综合网| 亚洲国产视频一区二区| 懂色一区二区三区免费观看| 欧美视频完全免费看| 精品久久久久久久一区二区蜜臀| 国产精品色一区二区三区| 亚洲一区二区在线视频| 国内偷窥港台综合视频在线播放| 日本韩国视频一区二区| 精品国产乱码久久久久久浪潮| 中文字幕一区日韩精品欧美| 国产精品白丝jk白祙喷水网站| 日韩欧美激情四射| 午夜精品久久久久久久蜜桃app| 成人午夜精品在线| 国产欧美一区二区精品性色 | 日韩精品中文字幕在线不卡尤物 | 成人中文字幕在线| 日韩免费成人网| 免费人成精品欧美精品| 制服丝袜亚洲色图| 日本欧美大码aⅴ在线播放| 6080午夜不卡| 麻豆精品在线播放| 精品国一区二区三区| 久久99久久精品| 日韩欧美专区在线| 欧美精品第1页| 免费精品视频在线| 67194成人在线观看| 国产一区二区三区蝌蚪| 亚洲视频在线观看一区| 欧美三级乱人伦电影| 国产成人h网站| 一区二区三区精品在线观看| 在线不卡a资源高清| 成人少妇影院yyyy| 青青草原综合久久大伊人精品优势 | 国产精品无遮挡| 蜜臀91精品一区二区三区| 久久亚区不卡日本| 波多野结衣亚洲一区| 免费观看成人av| 综合分类小说区另类春色亚洲小说欧美| 欧美午夜精品一区二区三区| 韩国精品久久久| 日韩成人精品在线| 亚洲成人福利片| 自拍偷拍欧美激情| 中文字幕国产一区| 欧美精品一区二区三区在线 | 91精品国产欧美一区二区18 | 精品国产青草久久久久福利| 国产精品1区2区| 国产精品欧美一级免费| 91老师国产黑色丝袜在线| 91精品麻豆日日躁夜夜躁| 国产精品一线二线三线精华| 日韩精品欧美成人高清一区二区| 欧美日韩大陆一区二区| 欧美日韩一区二区电影| 欧美日韩国产一级片| 亚洲第一av色| 中文字幕亚洲精品在线观看| 欧美在线一区二区三区| 成人动漫中文字幕| 懂色av一区二区三区免费观看| 婷婷综合在线观看| 亚洲一区二区四区蜜桃| 午夜电影网一区| 亚洲国产精品天堂| 夜夜嗨av一区二区三区中文字幕| 欧美精品一区二区高清在线观看| 欧美久久久久久久久中文字幕| 欧美午夜精品久久久久久超碰| 成人免费高清在线| 99在线精品视频| 欧美挠脚心视频网站| 欧美一级搡bbbb搡bbbb| 久久色视频免费观看| 亚洲人精品午夜| 五月婷婷久久丁香| 蜜臀av性久久久久蜜臀aⅴ四虎| 不卡的av在线播放| 56国语精品自产拍在线观看| 91麻豆精品国产综合久久久久久| 国产视频一区二区在线观看| 亚洲福利一区二区| 日本va欧美va精品发布| 国产福利一区二区| 欧洲亚洲精品在线| 日韩三区在线观看| 久久精品欧美一区二区三区不卡 | 国产精品视频yy9299一区| 国产精品你懂的| 五月婷婷激情综合| 91丨国产丨九色丨pron| 在线综合亚洲欧美在线视频| 亚洲视频在线一区观看| 国产精品自拍一区| 欧美日韩免费观看一区三区| 一区二区在线观看不卡| 国产91富婆露脸刺激对白| fc2成人免费人成在线观看播放| 91精品欧美综合在线观看最新| 精品国产3级a| 日本少妇一区二区| 91精品国产综合久久小美女| 一区二区成人在线视频| 成人综合婷婷国产精品久久蜜臀| 日韩精品专区在线影院观看| 免费国产亚洲视频| 日韩一级完整毛片| 麻豆91小视频| 久久久av毛片精品| 成人午夜av电影| 亚洲欧美另类小说| 欧日韩精品视频| 天天色综合天天| 在线观看日产精品| 亚洲1区2区3区4区| 欧美一区二区观看视频| 韩国一区二区三区| 亚洲蜜桃精久久久久久久| 91精品国产一区二区三区蜜臀| 日日夜夜免费精品| 久久只精品国产| 91香蕉视频在线| 久久精品国产久精国产爱| 国产精品日韩精品欧美在线| 日韩美女天天操| 欧美日韩日日摸| 成人黄色av网站在线| 日韩高清国产一区在线| 国产女同互慰高潮91漫画| 99久久婷婷国产综合精品| 日韩精品成人一区二区三区| 欧美精品一区二区久久婷婷| 91国模大尺度私拍在线视频| 亚洲福利一区二区| 日韩精品一区二区三区四区视频 | 国产日韩欧美精品电影三级在线 | 久久综合中文字幕| 色呦呦一区二区三区| 精品一区二区三区免费观看 | 在线观看av一区二区| hitomi一区二区三区精品| 丁香婷婷深情五月亚洲| 日韩一区精品字幕| 亚洲一区二区视频在线观看| 一区二区三区中文字幕精品精品 | 午夜久久福利影院| 亚洲天天做日日做天天谢日日欢| 久久亚洲综合色一区二区三区| 欧美日韩一本到| 欧美日韩一区 二区 三区 久久精品| 91老师国产黑色丝袜在线| 99久久99久久免费精品蜜臀| 色综合久久综合| 777a∨成人精品桃花网| 91精品国产欧美一区二区18| 欧美激情在线一区二区三区| 日本一不卡视频| 久久成人羞羞网站| 欧美做爰猛烈大尺度电影无法无天| 91成人在线精品| 国产亚洲欧美在线| 日本系列欧美系列| 欧美肥妇bbw| 五月激情综合网| 成人av电影免费观看| 国产精品麻豆网站| jizz一区二区| 日本伊人精品一区二区三区观看方式| 99re这里只有精品6| 久久久蜜臀国产一区二区| 成人在线综合网| 国产精品成人免费在线|