Ejemplo n.º 1
0
//
// Full Description:
void CuDlgEventSettingBottom::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	SORTPARAMS sp;
	if (pNMListView->iSubItem == 0)
	{
		sp.m_nItem = pNMListView->iSubItem;
		if (m_sortListCtrl.m_nItem == sp.m_nItem)
			sp.m_bAsc = !m_sortListCtrl.m_bAsc;
		else
			sp.m_bAsc = TRUE;
		memcpy (&m_sortListCtrl, &sp, sizeof(m_sortListCtrl3));


		CObArray& arrayEvent = m_cListCtrlFullDesc.GetArrayEvent();
		CProgressCtrl cProgress;
		CfEventSetting* pFrm = (CfEventSetting*)GetParentFrame();

		if (pFrm)
		{
			CxDlgEventSetting* pDlg = (CxDlgEventSetting*)pFrm->GetParent();
			if (pDlg && IsWindow (pDlg->m_cStaticProgress.m_hWnd))
			{
				CRect rc;
				pDlg->m_cStaticProgress.GetWindowRect(rc);
				pDlg->ScreenToClient(rc);
				VERIFY (cProgress.Create(WS_CHILD | WS_VISIBLE, rc, pDlg, 1));
			}
		}

		IVM_DichotomySort(arrayEvent, CompareSubItem, (LPARAM)&m_sortListCtrl, &cProgress);
		m_cListCtrlFullDesc.Sort ((LPARAM)&m_sortListCtrl, CompareSubItem);
	}

	*pResult = 0;
}
Ejemplo n.º 2
0
void CuDlgParameterInstallationExtra::RefreshParameter()
{
	try
	{
		int nTopIndex = m_cListCtrl.GetTopIndex();
		m_cListCtrl.HideProperty(FALSE);
		m_cListCtrl.DeleteAllItems();
		while (!m_listParameter.IsEmpty())
			delete m_listParameter.RemoveHead();

		if (theApp.m_ingresVariable.QueryEnvironment (m_listParameter, FALSE, TRUE))
		{
			//
			// Sort the parameter:
			CaEnvironmentParameter* pParam = NULL;
			CObArray a;
			int i, indx, nCount = 0;
			if (!m_listParameter.IsEmpty())
			{
				a.SetSize(m_listParameter.GetCount());
				POSITION pos = m_listParameter.GetHeadPosition();

				while (pos != NULL)
				{
					pParam = (CaEnvironmentParameter*)m_listParameter.GetNext(pos);
					if (pParam->GetName().CompareNoCase(_T("II_NUM_OF_PROCESSORS"))==0)
						pParam->LoadDescription(IDS_II_NUM_OF_PROCESSORS);
					else
					if (pParam->GetName().CompareNoCase(_T("II_MAX_SEM_LOOPS"))==0)
						pParam->LoadDescription(IDS_II_MAX_SEM_LOOPS);

					a[nCount] = pParam;
					nCount++;
				}
				if (a.GetSize() > 1)
					IVM_DichotomySort(a, CompareSubItem, (LPARAM)&m_sortparam, NULL);
			}
			else
				return;

			for (i=0; i< a.GetSize(); i++)
			{
				pParam = (CaEnvironmentParameter*)a[i];
				nCount = m_cListCtrl.GetItemCount();
				indx = m_cListCtrl.InsertItem (nCount, pParam->GetName(), IM_ENV_SYSTEM);
				if (indx != -1)
				{
					m_cListCtrl.SetItemText (indx, 1, pParam->GetValue());
					m_cListCtrl.SetItemText (indx, 2, pParam->GetDescription());
					m_cListCtrl.SetItemData (indx, (DWORD_PTR)pParam);
				}
			}

			if (nTopIndex != -1)
			{
				CRect r;
				m_cListCtrl.GetItemRect (0, r, LVIR_BOUNDS);
				m_cListCtrl.Scroll (CSize(0, nTopIndex*r.Height()));
			}
		}
	}
	catch (...)
	{
		AfxMessageBox (_T("System error (CuDlgParameterInstallationExtra::RefreshParameter): \nRefresh parameter failed"));
	}
}