void CDialogDefaultAttribList::OnLbnSelchangeListDefaultAttrib()
{
	// TODO: 在此添加控件通知处理程序代码
	int nIndex = m_lstDefaultAttrib.GetCurSel();
	if(nIndex == -1)
		return;

	CString strUIName;
	m_lstDefaultAttrib.GetText(nIndex, strUIName);
	LPCTSTR pstrDefaultAttrib = m_pManager->GetDefaultAttributeList(strUIName);
	CControlUI* pControl = (CControlUI*)m_lstDefaultAttrib.GetItemDataPtr(nIndex);
	if(pControl == NULL)
	{
		strUIName += _T("UI");
		int nClass = gGetUIClass(strUIName);
		if(nClass == classPointer)
		{
			MessageBox(_T("无法识别此控件!"), _T("提示"), MB_ICONINFORMATION);
			return;
		}
		pControl = CLayoutManager::NewUI(nClass, CRect(0, 0, 0, 0), NULL, NULL);
		ASSERT(pControl);
		m_lstDefaultAttrib.SetItemDataPtr(nIndex, pControl);
		pControl->ApplyAttributeList(pstrDefaultAttrib);
	}
	m_wndUIProperties.ShowProperty(pControl);
}
void CDialogDefaultAttribList::OnBnClickedButtonAttribModify()
{
	// TODO: 在此添加控件通知处理程序代码
	int nIndex = m_lstDefaultAttrib.GetCurSel();
	if(nIndex == -1)
		return;

	CString strDefaultAttribName;
	m_lstDefaultAttrib.GetText(nIndex, strDefaultAttribName);
	LPCTSTR pstrDefaultAttrib = m_pManager->GetDefaultAttributeList(strDefaultAttribName);
	CControlUI* pControl = (CControlUI*)m_lstDefaultAttrib.GetItemDataPtr(nIndex);
	if(pControl == NULL)
	{
		int nClass = gGetUIClass(strDefaultAttribName + _T("UI"));
		if(nClass == classPointer)
		{
			MessageBox(_T("无法识别此控件!"), _T("提示"), MB_ICONINFORMATION);
			return;
		}
		pControl = CLayoutManager::NewUI(nClass, CRect(0, 0, 0, 0), NULL, NULL);
		ASSERT(pControl);
		pControl->ApplyAttributeList(pstrDefaultAttrib);
		m_lstDefaultAttrib.SetItemDataPtr(nIndex, pControl);
	}

	CControlUI* pCopyControl = CLayoutManager::CloneControl(pControl);
	CDialogUIAttribEdit dlg(pCopyControl);
	if(dlg.DoModal() == IDOK)
	{
		CString strValue;
		if(GetDefaultAttrib(pCopyControl, strValue) == FALSE)
		{
			MessageBox(_T("修改默认属性失败!"), _T("提示"), MB_ICONINFORMATION);
			delete pCopyControl;
			return;
		}
		m_pManager->RemoveDefaultAttributeList(strDefaultAttribName);
		m_pManager->AddDefaultAttributeList(strDefaultAttribName, strValue);

		delete pControl;
		m_lstDefaultAttrib.SetItemDataPtr(nIndex, pCopyControl);
		m_wndUIProperties.ShowProperty(pCopyControl);
		g_pMainFrame->GetActiveUIView()->SetModifiedFlag();
	}
	else
		delete pCopyControl;
}
Exemplo n.º 3
0
//  BOOL  ViCbApplyAttributeList(VApiHandle hWnd, LPCTSTR pstrList)
SQInteger ViCbApplyAttributeList(HSQUIRRELVM v)
{
	SQInteger      nargs         = sq_gettop(v);
	SQInteger      Handle        = 0;
	CControlUI*    pCtrl         = NULL;
	LPCTSTR        pstrList      = NULL;
	if (!v || 2 + 1 != nargs) {goto _Exit_;}
	if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;}
	if (OT_STRING  != sq_gettype(v, 3)) {goto _Exit_;}

	sq_getinteger(v, 2, &Handle);
	sq_getstring(v, 3, &pstrList);
	pCtrl = QiHwHandleToCtrl(Handle);
	if (!pCtrl) {goto _Exit_;}

	pCtrl->ApplyAttributeList(pstrList);

_Exit_:
	sq_pushbool(v, TRUE);
	return 1;

}