Example #1
0
// 加载XML文件
BOOL CDuiPanel::LoadXmlFile(CString strFileName)
{
	DuiXmlDocument xmlDoc;
	DuiXmlNode pDivElem;

	if(!DuiSystem::Instance()->LoadXmlFile(xmlDoc, strFileName))
	{
		DuiSystem::LogEvent(LOG_LEVEL_ERROR, _T("CDuiPanel::LoadXmlFile %s failed"), strFileName);
		return FALSE;
	}

	m_strXmlFile = strFileName;
	pDivElem = xmlDoc.child(_T("div"));
	if(pDivElem == NULL)
	{
		DuiSystem::LogEvent(LOG_LEVEL_ERROR, _T("CDuiPanel::LoadXmlFile %s failed, not found div node"), strFileName);
		return FALSE;
	}

	// 加载div节点属性
	if(!Load(pDivElem))
	{
		DuiSystem::LogEvent(LOG_LEVEL_ERROR, _T("CDuiPanel::LoadXmlFile %s failed, load div node fail"), strFileName);
		return FALSE;
	}

	return TRUE;
}
Example #2
0
// 加载XML文件
BOOL CDuiMenu::LoadXmlFile(CString strFileName, CWnd *pParent, CPoint point, UINT uMessageID, CString strSubItemName)
{
	m_pParent = pParent;
	m_point = point;
	m_uMessageID = uMessageID;

	DuiXmlDocument xmlDoc;
	DuiXmlNode pDivElem;

	BOOL bRet = FALSE;
	if(DuiSystem::Instance()->LoadXmlFile(xmlDoc, strFileName))
	{
		m_strXmlFile = strFileName;
		pDivElem = xmlDoc.child(GetClassName());
		if(pDivElem)
		{
			if(!strSubItemName.IsEmpty())
			{
				// 加载一下XML的root节点的内容(不加载子控件)
				Load(pDivElem, FALSE);
				// 指定了子菜单名,则按照子菜单名进行查找并加载
				bRet = LoadSubMenu(pDivElem, strSubItemName);
			}else
			{
				// 加载menu节点属性
				bRet = Load(pDivElem);
			}
		}
	}

	return bRet;
}
Example #3
0
// 加载XML文件中定义的菜单
BOOL CDuiMenu::LoadXmlFile(CString strFileName, CString strSubItemName)
{
	DuiXmlDocument xmlDoc;
	DuiXmlNode pDivElem;

	if(DuiSystem::Instance()->LoadXmlFile(xmlDoc, strFileName))
	{
		pDivElem = xmlDoc.child(GetClassName());
		if(pDivElem != NULL)
		{
			if(!strSubItemName.IsEmpty())
			{
				// 加载一下XML的root节点的内容(不加载子控件)
				Load(pDivElem, FALSE);
				// 指定了子菜单名,则按照子菜单名进行查找并加载
				LoadSubMenu(pDivElem, strSubItemName);
			}else
			{
				// 加载menu节点(可以设置节点菜单项的XML文件属性)
				LoadXmlNode(pDivElem, strFileName);
			}
		}
		return TRUE;
	}

	return FALSE;
}
Example #4
0
// 从嵌套的xml文件中加载tab页
BOOL CDuiTabCtrl::LoadTabXml(CString strFileName)
{
	// 首先将所有tab页都隐藏
	for(size_t i = 0; i < m_vecItemInfo.size(); i++)
	{
		TabItemInfo &itemInfo = m_vecItemInfo.at(i);
		if(itemInfo.pControl != NULL)
		{
			itemInfo.pControl->SetVisible(FALSE);
		}
	}

	DuiXmlDocument xmlDoc;
	DuiXmlNode pTabElem;

	if(DuiSystem::Instance()->LoadXmlFile(xmlDoc, strFileName))
	{
		pTabElem = xmlDoc.child(GetClassName());
		if(pTabElem != NULL)
		{
			// 加载下层tab页
			Load(pTabElem, FALSE);
		}
	}

	// 只显示当前活动的tab页对应的Panel对象,其他页面的Panel对象都隐藏
	for(size_t i = 0; i < m_vecItemInfo.size(); i++)
	{
		TabItemInfo &itemInfo = m_vecItemInfo.at(i);
		if(itemInfo.pControl != NULL)
		{
			if(i == m_nDownItem)
			{
				itemInfo.pControl->SetVisible(TRUE);
			}else
			{
				itemInfo.pControl->SetVisible(FALSE);
			}
		}
	}

	// 重新计算每个tab页的位置,并刷新界面
	RefreshItems();

	return TRUE;
}
Example #5
0
// 加载XML文件
BOOL CDlgPopup::LoadXmlFile(CString strFileName)
{
	DuiXmlDocument xmlDoc;
	DuiXmlNode pDivElem;

	if(DuiSystem::Instance()->LoadXmlFile(xmlDoc, strFileName))
	{
		m_strXmlFile = strFileName;
		pDivElem = xmlDoc.child((const LPCTSTR)GetClassName());
		if(pDivElem)
		{
			// 加载popup节点属性
			Load(pDivElem);
		}
	}

	return TRUE;
}
Example #6
0
// 加载XML内容
BOOL CDlgPopup::LoadXmlContent(CString strXmlContent)
{
	DuiXmlDocument xmlDoc;
	DuiXmlNode pDivElem;

	m_strXmlContent = strXmlContent;
	DuiXmlParseResult result = xmlDoc.load(m_strXmlContent);
	if(result)
	{
		pDivElem = xmlDoc.child((const LPCTSTR)GetClassName());
		if(pDivElem)
		{
			// 加载popup节点属性
			Load(pDivElem);
		}
	}

	return TRUE;
}
Example #7
0
// 从XML设置XML属性,加载XML文件的内容作为div容器内的内容
HRESULT CDuiPanel::OnAttributeXml(const CString& strValue, BOOL bLoading)
{
	if (strValue.IsEmpty()) return E_FAIL;

	DuiXmlDocument xmlDoc;
	DuiXmlNode pDivElem;

	if(DuiSystem::Instance()->LoadXmlFile(xmlDoc, strValue))
	{
		m_strXmlFile = strValue;
		pDivElem = xmlDoc.child(_T("div"));
		if(pDivElem != NULL)
		{
			// 加载div节点属性
			Load(pDivElem);
		}
	}

	return bLoading?S_FALSE:S_OK;
}