Example #1
0
void TreeList_Update(HWND hwnd)
{
	TTreeList_Data *data = (TTreeList_Data *)sttTreeList_GeWindowData(hwnd);
	HTREELISTITEM hItem = data->root;
	int sortIndex = 0;

	SendMessage(hwnd, WM_SETREDRAW, FALSE, 0);
	if (data->sortMode)
		TreeList_RecursiveApply(hItem, sttTreeList_SortItems, (LPARAM)data->sortMode);
	TreeList_RecursiveApply(hItem, sttTreeList_ResetIndex, (LPARAM)&sortIndex);
	if (data->filter)
		TreeList_RecursiveApply(hItem, sttTreeList_FilterItems, (LPARAM)data->filter);
	for (int i = ListView_GetItemCount(hwnd); i--;) {
		LVITEM lvi = {0};
		lvi.mask = LVIF_PARAM;
		lvi.iItem = i;
		lvi.iSubItem = 0;
		ListView_GetItem(hwnd, &lvi);

		HTREELISTITEM ptli = (HTREELISTITEM)lvi.lParam;
		if ((ptli->flags & TLIF_VISIBLE) && (!data->filter || (ptli->flags & TLIF_FILTERED))) {
			ptli->flags |= TLIF_HASITEM;
			if (ptli->flags & TLIF_MODIFIED) {
				lvi.mask = LVIF_TEXT | LVIF_STATE | LVIF_IMAGE | LVIF_TEXT;
				lvi.iItem = i;
				lvi.iSubItem = 0;
				lvi.pszText = ptli->text[0];
				lvi.stateMask = LVIS_OVERLAYMASK|LVIS_STATEIMAGEMASK;
				lvi.iImage = ptli->iIcon;
				if (data->mode == TLM_TREE)
					lvi.state =
						INDEXTOSTATEIMAGEMASK(
						((ptli->subItems.getCount() == 0) && !(ptli->flags & TLIF_FAKEPARENT)) ? 0 :
						(ptli->flags & TLIF_EXPANDED) ? 1 : 2) |
						INDEXTOOVERLAYMASK(ptli->iOverlay);
				else
					lvi.state =
						INDEXTOSTATEIMAGEMASK(
						((ptli->subItems.getCount() == 0) && !(ptli->flags & TLIF_FAKEPARENT)) ? 0 : 3) |
						INDEXTOOVERLAYMASK(ptli->iOverlay);

				ListView_SetItem(hwnd, &lvi);
				for (int j = 1; j < ptli->text.getCount(); ++j)
					ListView_SetItemText(hwnd, i, j, ptli->text[j]);
			}
		}
		else ListView_DeleteItem(hwnd, i);
	}
	if (data->mode == TLM_TREE)
		TreeList_RecursiveApply(hItem, sttTreeList_CreateItems, (LPARAM)hwnd);
	else {
		for (int i = data->hItemSelected->subItems.getCount(); i--;)
			sttTreeList_CreateItems_List(data->hItemSelected->subItems[i], (LPARAM)hwnd);
		for (HTREELISTITEM hItem = data->hItemSelected; !(hItem->flags & TLIF_ROOT); hItem = hItem->parent)
			sttTreeList_CreateItems_List(hItem, (LPARAM)hwnd);
	}
	ListView_SortItems(hwnd, sttTreeList_SortFunc, 0);
	SendMessage(hwnd, WM_SETREDRAW, TRUE, 0);
	UpdateWindow(hwnd);
}
void CComplexSymbolLayerCtrl::AddItem(int nIndex, int nState)
{
	LV_ITEM lvi;
	lvi.mask =  LVIF_IMAGE|LVIF_STATE;
	lvi.iItem = nIndex;
	lvi.iSubItem = 0;
	lvi.iImage = nIndex;
	lvi.pszText = "";
	lvi.stateMask =  LVIS_STATEIMAGEMASK|LVIS_DROPHILITED;

	switch(nState)
	{
	case 1:
		lvi.state = INDEXTOSTATEIMAGEMASK( 1 );
		break;
	case 2:
		lvi.state =INDEXTOSTATEIMAGEMASK( 2 );
		break;
	case 3:
		lvi.state = INDEXTOSTATEIMAGEMASK( 3 )|LVIS_DROPHILITED ;
		break;
	case 4:
		lvi.state = INDEXTOSTATEIMAGEMASK( 4 )|LVIS_DROPHILITED;
		break;
	}

	InsertItem( &lvi );
}
Example #3
0
void CIVRuleDlg::OnRuleUse()
{
    if ( CIVRuleCfgDoc::IsUse(m_nCurrentChan) )
    {
        CIVRuleCfgDoc::Use(m_nCurrentChan,false); 
        m_CameraTree.SetItemState(
            m_ClickItem, 
            INDEXTOSTATEIMAGEMASK(1), 
            TVIS_STATEIMAGEMASK ); 
    }
    else
    {
        if ( g_IIVDeviceBase2->IsHaveFreeDevice() )
        {
            CIVRuleCfgDoc::Use(m_nCurrentChan,true);
            m_CameraTree.SetItemState(
                m_ClickItem, 
                INDEXTOSTATEIMAGEMASK(2), 
                TVIS_STATEIMAGEMASK ); 
        }
        else
        {
            MessageBox(
                _T("Is not enought IV Channel, You Must Stop Other IV Channel First!"));
        }
    }
}
// Clicked 'Active' check box
LRESULT ADLSearchFrame::onItemChanged(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
{
    NM_LISTVIEW* lv = (NM_LISTVIEW*) pnmh;
    ::EnableWindow(GetDlgItem(IDC_EDIT), (lv->uNewState & LVIS_FOCUSED));
    ::EnableWindow(GetDlgItem(IDC_REMOVE), (lv->uNewState & LVIS_FOCUSED));

    NMITEMACTIVATE* item = (NMITEMACTIVATE*)pnmh;

    if((item->uChanged & LVIF_STATE) == 0)
        return 0;
    if((item->uOldState & INDEXTOSTATEIMAGEMASK(0xf)) == 0)
        return 0;
    if((item->uNewState & INDEXTOSTATEIMAGEMASK(0xf)) == 0)
        return 0;

    if(item->iItem >= 0)
    {
        // Set new active status check box
        /*ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection;
        ADLSearch* search = collection[item->iItem];
        search->isActive = (ctrlList.GetCheckState(item->iItem) != 0);*/
        ADLSearchManager::getInstance()->changeState(item->iItem, ctrlList.GetCheckState(item->iItem) != 0);
    }
    return 0;
}
Example #5
0
void CRowListView::CheckItem(int nNewCheckedItem)
{
	CListCtrl& ListCtrl = GetListCtrl();

// reset if there is checked item

	if (m_nCheckedItem != -1)
	{
		if (m_bStateIcons)
		{
			ListCtrl.SetItemState(m_nCheckedItem,
				INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK);
		}
		else
		{
			ListCtrl.SetItemState(m_nCheckedItem,
				INDEXTOSTATEIMAGEMASK(1),
				LVIS_STATEIMAGEMASK | LVIS_OVERLAYMASK);
		}

		::DestroyIcon(m_hSmallIcon);
		::DestroyIcon(m_hLargeIcon);
	}

// check new item and set its icon as the app icon

	CWnd* pMainWnd = AfxGetMainWnd();

	if (m_nCheckedItem == nNewCheckedItem)
	{
		m_nCheckedItem = -1;
		pMainWnd->SetIcon(NULL, FALSE);
		pMainWnd->SetIcon(NULL, TRUE);
	}
	else if ((m_nCheckedItem = nNewCheckedItem) != -1)
	{
		if (m_bStateIcons)
		{
			ListCtrl.SetItemState(m_nCheckedItem,
				INDEXTOSTATEIMAGEMASK(2), LVIS_STATEIMAGEMASK);
		}
		else
		{
			ListCtrl.SetItemState(m_nCheckedItem,
				INDEXTOSTATEIMAGEMASK(2) | INDEXTOOVERLAYMASK(1),
				LVIS_STATEIMAGEMASK | LVIS_OVERLAYMASK);
		}

		m_hSmallIcon =
			ListCtrl.GetImageList(LVSIL_SMALL)->ExtractIcon(nNewCheckedItem);
		pMainWnd->SetIcon(m_hSmallIcon,FALSE);
		m_hLargeIcon =
			ListCtrl.GetImageList(LVSIL_NORMAL)->ExtractIcon(nNewCheckedItem);
		pMainWnd->SetIcon(m_hLargeIcon,TRUE);
	}
}
Example #6
0
void KUIMulStatusTree::TravelChild(HTREEITEM hItem, int nCheck)
{
    HTREEITEM hChildItem   = NULL;
    HTREEITEM hBrotherItem = NULL;;
    HWND hParent = GetParent();
    UINT nState  = 0;


    //查找子节点,没有就结束
    hChildItem = GetChildItem(hItem);

    int nChildCheck = nCheck;
    GetCheck(hChildItem,nChildCheck);

    if(hChildItem != NULL && nChildCheck != KUIMulStatusTree::EM_TVIS_NONE)
    {
        //设置子节点的状态与当前节点的状态一致
        nState = GetItemState(hChildItem, TVIS_STATEIMAGEMASK);
        if (nState != INDEXTOSTATEIMAGEMASK(nCheck))
        {        
            SetItemState(hChildItem, INDEXTOSTATEIMAGEMASK(nCheck), TVIS_STATEIMAGEMASK);
//             if (hParent != NULL)
//             {
//                 ::SendMessage(hParent, WM_KAN_NOTIFY_TREE_CHECKED_CHANGE, (WPARAM)hChildItem, (LPARAM)nCheck);
//             }
        }

        //再递归处理子节点的子节点和兄弟节点
        TravelChild(hChildItem, nCheck);

        //处理子节点的兄弟节点和其子节点
        hBrotherItem = GetNextSiblingItem(hChildItem);

        while (hBrotherItem)
        {
            //设置子节点的兄弟节点状态与当前节点的状态一致
            nState = GetItemState(hBrotherItem, TVIS_STATEIMAGEMASK);
            int nBrotherCheck = nCheck;
            GetCheck(hBrotherItem,nBrotherCheck);
            if (nState != INDEXTOSTATEIMAGEMASK(nCheck) && nBrotherCheck != KUIMulStatusTree::EM_TVIS_NONE)
            {        
                SetItemState(hBrotherItem, INDEXTOSTATEIMAGEMASK(nCheck), TVIS_STATEIMAGEMASK);
//                 if (hParent != NULL)
//                 {
//                     ::SendMessage(hParent, WM_KAN_NOTIFY_TREE_CHECKED_CHANGE, (WPARAM)hBrotherItem, (LPARAM)nCheck);
//                 }
            }

            //再递归处理子节点的兄弟节点的子节点和兄弟节点
            TravelChild(hBrotherItem, nCheck);

            hBrotherItem = GetNextSiblingItem(hBrotherItem);
        }
    }
}
void CTracksSerializerDlg::OnLvnGetdispinfoTracklist(NMHDR *pNMHDR, LRESULT *pResult)
{
	NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
	//Create a pointer to the item
	LV_ITEM* pItem= &(pDispInfo->item);

	//Which item number?
	int itemid = pItem->iItem;

	TCHAR bf[20];
	//Do the list need text information?
	if (pItem->mask & LVIF_TEXT)
	{
		LPCTSTR str = NULL;
		switch (pItem->iSubItem)
		{
		case 0:		str = m_ItemsURL[itemid].c_str();				break;
		case 1:		str = m_ItemsTagInfo[itemid].Title.c_str();		break;
		case 2:		str = m_ItemsTagInfo[itemid].Artist.c_str();	break;
		case 3:		str = m_ItemsTagInfo[itemid].Album.c_str();		break;
		case 4:		
			PrgAPI::FormatDuration(bf, 20, m_ItemsTagInfo[itemid].Length);
			str = bf;
			break;
		case 5:		str = m_ItemsTagInfo[itemid].Genre.c_str();		break;
		}


		//Copy the text to the LV_ITEM structure
		//Maximum number of characters is in pItem->cchTextMax
		lstrcpyn(pItem->pszText, str, pItem->cchTextMax);
	}

	//Do the list need image information?
	if( pItem->mask & LVIF_IMAGE) 
	{
		pItem->mask |= LVIF_STATE;
		pItem->stateMask = LVIS_STATEIMAGEMASK;
		if(m_ItemsChecked[itemid])
		{
			//Turn check box on
			pItem->state = INDEXTOSTATEIMAGEMASK(2);
		}
		else
		{
			//Turn check box off
			pItem->state = INDEXTOSTATEIMAGEMASK(1);
		}
	}

	*pResult = 0;

}
Example #8
0
void CWallChangerDlg::OnLvnItemchangedListClass(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

	if (!pNMLV)
		return;

	if (m_bInit && (pNMLV->uOldState==INDEXTOSTATEIMAGEMASK(1)) && (pNMLV->uNewState==INDEXTOSTATEIMAGEMASK(2))) {
		// Check this Item
		bool bEmptyEnable = (::g_pWallEnablePicList->GetCount() == 0);
		m_listClass.SetItemEnable(pNMLV->iItem, true);
		if (bEmptyEnable && ::g_pWallEnablePicList->GetCount())
			StartTimer();
		m_listClass.SetIniModify();
	} else if (m_bInit && (pNMLV->uOldState==INDEXTOSTATEIMAGEMASK(2)) && (pNMLV->uNewState==INDEXTOSTATEIMAGEMASK(1))) {
		// UnCheck this Item
		m_listClass.SetItemEnable(pNMLV->iItem, false);
		if (::g_pWallEnablePicList->GetCount() == 0)
			StopTimer();
		m_listClass.SetIniModify();
	} else {
		// Change Select Items
		int iSelCount = m_listClass.GetSelectedCount();
		if (iSelCount == 1) {
			if (m_pCurListDirPath)
				m_pCurListDirPath->ShowWindow(SW_HIDE);
			else
				m_listDirPath.ShowWindow(SW_HIDE);

			CWallClassListItem *pListItem = (CWallClassListItem *)m_listClass.GetFirstSelectedItemLParam();
			if (pListItem)
				m_pCurListDirPath = (CWallDirListCtrl *)pListItem->GetChildDirList();
			if (m_pCurListDirPath) {
				CRect rcDirList;
				m_listDirPath.GetWindowRect(rcDirList);

				ScreenToClient(rcDirList);
				m_pCurListDirPath->MoveWindow(rcDirList);
				m_pCurListDirPath->ShowWindow(SW_SHOW);
			}
		} else {
			if (m_pCurListDirPath) {
				m_pCurListDirPath->ShowWindow(SW_HIDE);
				m_pCurListDirPath = NULL;
			}
			m_listDirPath.ShowWindow(SW_SHOW);
		}
	}

	*pResult = 0;
}
void PopulateProtocolList(HWND hWnd)
{
	bool useOne = IsDlgButtonChecked(hWnd, IDC_USEBYPROTOCOL) == BST_UNCHECKED;

	HWND hLstView = GetDlgItem(hWnd, IDC_PROTOLIST);

	TreeView_DeleteAllItems(hLstView);

	TVINSERTSTRUCT tvi = {0};
	tvi.hParent = TVI_ROOT;
	tvi.hInsertAfter = TVI_LAST;
	tvi.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_STATE | TVIF_SELECTEDIMAGE;
	tvi.item.stateMask = TVIS_STATEIMAGEMASK;

	NudgeElementList *n;
	int i = 0;
	if (GlobalNudge.useByProtocol)
	{
		#ifdef _UNICODE
		wchar_t buff[256];
		#endif
		for(n = NudgeList;n != NULL; n = n->next)
		{
			#ifdef _UNICODE
				MultiByteToWideChar(CP_ACP, 0, n->item.ProtocolName, -1, buff, 256);
				tvi.item.pszText = buff;
			#else
				tvi.item.pszText = n->item.ProtocolName;
			#endif
			tvi.item.iImage  = i;
			n->item.iProtoNumber = i;
			tvi.item.iSelectedImage = i;
			tvi.item.state = INDEXTOSTATEIMAGEMASK(n->item.enabled?2:1);	
			TreeView_InsertItem(hLstView, &tvi);
			i++;
		}
	}
	else
	{
		tvi.item.pszText = TranslateT("Nudge");
		tvi.item.iImage  = nProtocol;
		DefaultNudge.iProtoNumber = nProtocol;
		tvi.item.iSelectedImage = nProtocol;
		tvi.item.state = INDEXTOSTATEIMAGEMASK(DefaultNudge.enabled?2:1);	
		TreeView_InsertItem(hLstView, &tvi);

	}
	TreeView_SelectItem(hLstView, TreeView_GetRoot(hLstView));
	//TreeView_SetCheckState(hLstView, TreeView_GetRoot(hLstView), TRUE)
}
Example #10
0
void CHistoryBar::OnGetdispinfoList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
	LVITEM&	item = pDispInfo->item;
	CUndoManager	*UndoMgr = theApp.GetMain()->GetUndoManager();
	if (UndoMgr == NULL)	// if no documents
		return;
	*pResult = 0;
	if (item.mask & LVIF_TEXT) {
		switch (item.iSubItem) {
		case COL_ACTION:
			{
				CString	s;
				if (item.iItem) {
					CWaveShopView	*View = theApp.GetMain()->GetView();
					// items are offset by one to make room for initial state
					s = View->GetUndoTitle(UndoMgr->GetState(item.iItem - 1));
				} else	// item zero is initial state
					s.LoadString(IDS_HIST_INITIAL_STATE);
				_tcsncpy(item.pszText, s, item.cchTextMax);
			}
			break;
		}
	}
	if (item.mask & LVIF_IMAGE) {
		switch (item.iSubItem) {
		case COL_ACTION:
			item.mask |= LVIF_STATE;
			item.state = INDEXTOSTATEIMAGEMASK(item.iItem == UndoMgr->GetPos());
			item.stateMask = LVIS_STATEIMAGEMASK;
			break;
		}
	}
}
void MainWindowPageScripts::ScriptToList(const uint8_t &ui8ScriptId, const bool &bInsert, const bool &bSelected) {
    bIgnoreItemChanged = true;

    LVITEM lvItem = { 0 };
    lvItem.mask = LVIF_PARAM | LVIF_TEXT;
    lvItem.iItem = ui8ScriptId;
    lvItem.pszText = ScriptManager->ScriptTable[ui8ScriptId]->sName;
    lvItem.lParam = (LPARAM)ScriptManager->ScriptTable[ui8ScriptId];

    if(bSelected == true) {
        lvItem.mask |= LVIF_STATE;
        lvItem.state = LVIS_SELECTED;
        lvItem.stateMask = LVIS_SELECTED;
    }

    int i = -1;
    
    if(bInsert == true) {
        i = (int)::SendMessage(hWndPageItems[LV_SCRIPTS], LVM_INSERTITEM, 0, (LPARAM)&lvItem);
    } else {
        i = (int)::SendMessage(hWndPageItems[LV_SCRIPTS], LVM_SETITEM, 0, (LPARAM)&lvItem);
    }

    if(i != -1 || bInsert == false) {
        lvItem.mask = LVIF_STATE;
        lvItem.state = INDEXTOSTATEIMAGEMASK(ScriptManager->ScriptTable[ui8ScriptId]->bEnabled == true ? 2 : 1);
        lvItem.stateMask = LVIS_STATEIMAGEMASK;

        ::SendMessage(hWndPageItems[LV_SCRIPTS], LVM_SETITEMSTATE, ui8ScriptId, (LPARAM)&lvItem);
    }

    bIgnoreItemChanged = false;
}
Example #12
0
	HTREEITEM Tree_AddExtraIconGroup(intlist &group, bool selected, HTREEITEM hAfter = TVI_LAST)
	{
		intlist *ids = new intlist();
		CMString desc;
		int img = 0;
		for (int i = 0; i < group.count; i++) {
			BaseExtraIcon *extra = registeredExtraIcons[group.data[i] - 1];
			ids->add(extra->getID());

			if (img == 0 && !IsEmpty(extra->getDescIcon()))
				img = extra->getID();

			if (i > 0)
				desc += _T(" / ");
			desc += extra->getDescription();
		}

		TVINSERTSTRUCT tvis = { 0 };
		tvis.hInsertAfter = hAfter;
		tvis.item.mask = TVIF_PARAM | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE;
		tvis.item.stateMask = TVIS_STATEIMAGEMASK;
		tvis.item.iSelectedImage = tvis.item.iImage = img;
		tvis.item.lParam = (LPARAM)ids;
		tvis.item.pszText = (TCHAR*)desc.c_str();
		tvis.item.state = INDEXTOSTATEIMAGEMASK(selected ? 2 : 1);
		return m_tree.InsertItem(&tvis);
	}
Example #13
0
BOOL KUIMulStatusTree::SetCheck(
    HTREEITEM hItem, 
    int  nCheck, 
    BOOL bUpdate /* = TRUE */)
{
    ATLASSERT(hItem  != NULL);
    ATLASSERT(m_hWnd != NULL);

    TV_ITEM tvi;
    ZeroMemory(&tvi, sizeof(tvi));

    tvi.hItem = hItem;
    tvi.mask  = TVIF_STATE;
    tvi.stateMask = TVIS_STATEIMAGEMASK;

    ATLASSERT((nCheck >= EM_TVIS_NONE) && (nCheck <= EM_TVIS_CHECK));

    tvi.state = INDEXTOSTATEIMAGEMASK(nCheck);

    if (!TreeView_SetItem(m_hWnd, &tvi))
        return FALSE;

    if (nCheck != EM_TVIS_NONE)
    {    
        if (bUpdate)
            TravelChild(hItem, nCheck);

        TravelSiblingAndParent(hItem, nCheck);
    } // if (nCheck != EM_TVIS_NONE)    

    return TRUE;
}
Example #14
0
void Settings::DlgInsertTeam(HWND hwnd, const std::string& team, const std::string& section) {
  if (dialog_data_.teams_.find(team) != dialog_data_.teams_.end())
    return;

  if (dialog_data_.sections_.find(section) == dialog_data_.sections_.end()) {
		TVINSERTSTRUCTA tvi;
		tvi.hParent = 0;
		tvi.hInsertAfter = TVI_LAST;
		tvi.itemex.mask = TVIF_TEXT;
		tvi.itemex.pszText = const_cast<char*>(section.c_str());
    dialog_data_.sections_[section] = (HTREEITEM)SendMessageA((hwnd), TVM_INSERTITEMA, 0, (LPARAM)&tvi);
	}

  HTREEITEM parent = dialog_data_.sections_[section];

	{
		TVINSERTSTRUCTA tvi;
		tvi.hParent = parent;
		tvi.hInsertAfter = TVI_LAST;
		tvi.itemex.mask = TVIF_TEXT  | TVIF_STATE;
		tvi.itemex.state =  INDEXTOSTATEIMAGEMASK((IsTeamFavorite(team) ? 2 : 1));
		tvi.itemex.stateMask = TVIS_STATEIMAGEMASK;
		tvi.itemex.pszText = const_cast<char*>(team.c_str());
    dialog_data_.teams_[team] = (HTREEITEM)SendMessageA((hwnd), TVM_INSERTITEMA, 0, (LPARAM)&tvi);
		TreeView_Expand(hwnd, parent, TVE_EXPAND);
	}
}
Example #15
0
int CLiveItem::Add(CListCtrl* pCtrl, int nItem, int nColumns)
{
	ASSERT_VALID( this );
	ASSERT_VALID( pCtrl );

	LV_ITEM pItem = {};
	pItem.mask		= LVIF_PARAM|LVIF_TEXT|LVIF_STATE;
	pItem.iItem		= nItem >= 0 ? nItem : pCtrl->GetItemCount();
	if ( m_nImage[ 0 ] >= 0 )
	{
		pItem.mask |= LVIF_IMAGE;
		pItem.iImage = m_nImage[ 0 ];
	}
	pItem.lParam	= (LPARAM)m_nParam;
	pItem.state		= INDEXTOOVERLAYMASK( m_nMaskOverlay ) | INDEXTOSTATEIMAGEMASK( m_nMaskState );
	pItem.stateMask	= LVIS_OVERLAYMASK | LVIS_STATEIMAGEMASK;
	pItem.pszText	= (LPTSTR)(LPCTSTR)m_pColumn[0];
	pItem.iItem		= pCtrl->InsertItem( &pItem );
	if ( pItem.iItem != -1 )
	{
		for ( pItem.iSubItem = 1 ; pItem.iSubItem < nColumns ; pItem.iSubItem++ )
		{
			pItem.mask = LVIF_TEXT;
			pItem.pszText = (LPTSTR)(LPCTSTR)m_pColumn[ pItem.iSubItem ];
			if ( m_nImage[ pItem.iSubItem ] >= 0 )
			{
				pItem.mask |= LVIF_IMAGE;
				pItem.iImage = m_nImage[ pItem.iSubItem ];
			}
			VERIFY( pCtrl->SetItem( &pItem ) );
		}
	}

	return pItem.iItem;
}
Example #16
0
void CWZStep3::OnAdd() 
{
	int nTotal,i;
	WCHAR szPath[MAX_PATH];
	CString strPath;
	UpdateData(TRUE);

	if (GetLongPathName(m_SourcePath.GetBuffer(0),szPath,MAX_PATH))
	{
		m_SourcePath = szPath;
		nTotal = m_SourceList.GetItemCount();
		for (i = 0;i < nTotal;i++)
		{
			strPath = m_SourceList.GetItemText(i,0);
			if (CheckConflict(strPath.GetBuffer(0),szPath,FALSE)) return;
			if (CheckConflict(szPath,strPath.GetBuffer(0),FALSE))
			{
				m_SourceList.DeleteItem(i);
				nTotal --;
				i --;
			}
		}
		m_SourceList.InsertItem(nTotal,m_SourcePath);
		m_SourceList.SetItem(nTotal,0,LVIF_STATE,L"",0,INDEXTOSTATEIMAGEMASK(1),LVIS_STATEIMAGEMASK,0);
	}
	else AfxMessageBox(IDS_INVALID_SOURCE,MB_OK | MB_ICONINFORMATION);
	// TODO: Add your control notification handler code here
	
}
//
// Sets the specified tree item's check box to the specified state.
//
void CPageNetwork::SetSelectionCheck(HTREEITEM hitem, TargetSelType selection)
{
	// set the interface icon's associated state icon
	if (!m_TTargets.SetItemState(hitem, INDEXTOSTATEIMAGEMASK(selection), TVIS_STATEIMAGEMASK)) {
		ErrorMessage("SetItemState() failed in CPageNetwork::" "SetSelectionCheck()");
	}
}
Example #18
0
void CUserManagePage::FillListCtrl()
{
	LV_ITEM lvi;
	int colnum = 2;
	m_listctrl.DeleteAllItems();
	char * query = "select USERNAME, USERGROUP.GROUPNAME from user join USERGROUP on USERGROUP.GROUPID=USER.USERGROUPID ";
    rst = CDbsource::GetDB().GerResult(query,colnum);
    int i = 0;
	m_box_user.ResetContent();
	for(list<CString>::iterator It=rst->begin();It!=rst->end();It++)
	{
		lvi.mask = LVIF_TEXT | LVIF_STATE;
		lvi.iItem = i;
		lvi.iSubItem = 0;
		lvi.pszText = (*It).GetBuffer((*It).GetLength());
		lvi.stateMask = LVIS_STATEIMAGEMASK;
		lvi.state = INDEXTOSTATEIMAGEMASK(1);
		m_listctrl.InsertItem(&lvi);
		m_box_user.AddString((LPCTSTR)*It);
		for(int j = 1; j<colnum; j++)
		{
			m_listctrl.SetItemText(i,j,(LPCTSTR)*(++It));
		}
		i++;
	}
	colnum = 1;
	query  = "select USERGROUP.GROUPNAME from  USERGROUP";
    rst = CDbsource::GetDB().GerResult(query,colnum);
	m_box_role.ResetContent();
	for(list<CString>::iterator It=rst->begin();It!=rst->end();It++)
	{
		m_box_role.AddString((LPCTSTR)*It);
	}
}
Example #19
0
BOOL CLiveItem::Update(CListCtrl* pCtrl, int nItem, int nColumns)
{
	ASSERT_VALID( this );
	ASSERT_VALID( pCtrl );

	BOOL bModified = FALSE;

	LV_ITEM pMainItem = {
		LVIF_PARAM | LVIF_IMAGE | LVIF_STATE,
		nItem,
		0,
		0,
		LVIS_OVERLAYMASK|LVIS_STATEIMAGEMASK
	};

	if ( ! pCtrl->GetItem( &pMainItem ) || pMainItem.lParam != (LPARAM)m_nParam )
		return FALSE;

	if ( ( pMainItem.state & (LVIS_OVERLAYMASK|LVIS_STATEIMAGEMASK) ) != ( INDEXTOOVERLAYMASK( m_nMaskOverlay ) | INDEXTOSTATEIMAGEMASK( m_nMaskState ) ) )
	{
		pMainItem.state		= INDEXTOOVERLAYMASK( m_nMaskOverlay ) | INDEXTOSTATEIMAGEMASK( m_nMaskState );
		pMainItem.stateMask	= LVIS_OVERLAYMASK | LVIS_STATEIMAGEMASK;
		bModified = TRUE;
	}

	if ( bModified )
		VERIFY( pCtrl->SetItem( &pMainItem ) );

	CString buf;
	for ( int i = 0 ; i < nColumns ; ++i )
	{
		LV_ITEM pItem = { LVIF_IMAGE | LVIF_TEXT, nItem, i, 0, 0, buf.GetBuffer( 1024 ), 1024 };
		BOOL bResult = pCtrl->GetItem( &pItem );
		buf.ReleaseBuffer();
		if ( ! bResult )
			return FALSE;

		pItem.mask = 0;
		if ( ! pItem.pszText || m_pColumn[ pItem.iSubItem ] != pItem.pszText )
		{
			pItem.mask |= LVIF_TEXT;
			pItem.pszText = (LPTSTR)(LPCTSTR)m_pColumn[ pItem.iSubItem ];
		}

		if ( m_nImage[ pItem.iSubItem ] >= 0 &&
			 m_nImage[ pItem.iSubItem ] != pItem.iImage )
		{
			pItem.mask |= LVIF_IMAGE;
			pItem.iImage = m_nImage[ pItem.iSubItem ];
		}

		if ( pItem.mask )
		{
			VERIFY( pCtrl->SetItem( &pItem ) );
			bModified = TRUE;
		}
	}

	return bModified;
}
void
TLvItem::SetStateImage(int index)
{
  mask |= LVIF_STATE;
  stateMask |= LVIS_STATEIMAGEMASK;
  state = INDEXTOSTATEIMAGEMASK(index+1);
}
Example #21
0
	void GroupSelectedItems()
	{
		LIST<_TREEITEM> toRemove(1);
		intlist ids;
		bool selected = false;
		HTREEITEM hPlace = NULL;

		// Find items
		HTREEITEM hItem = m_tree.GetRoot();
		TVITEMEX tvi = { 0 };
		tvi.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_TEXT | TVIF_STATE;
		while (hItem) {
			if (m_tree.IsSelected(hItem)) {
				if (hPlace == NULL)
					hPlace = hItem;

				tvi.hItem = hItem;
				m_tree.GetItem(&tvi);

				intlist *iids = (intlist*)tvi.lParam;
				for (int i = 0; i < iids->count; i++)
					ids.add(iids->data[i]);

				if ((tvi.state & INDEXTOSTATEIMAGEMASK(3)) == INDEXTOSTATEIMAGEMASK(2))
					selected = true;

				toRemove.insert(hItem);
			}

			hItem = m_tree.GetNextSibling(hItem);
		}

		if (hPlace != NULL) {
			// Add new
			HTREEITEM hNew = Tree_AddExtraIconGroup(ids, selected, hPlace);

			// Remove old
			for (int i = 0; i < toRemove.getCount(); i++) {
				delete Tree_GetIDs(toRemove[i]);
				m_tree.DeleteItem(toRemove[i]);
			}

			// Select
			m_tree.UnselectAll();
			m_tree.SelectItem(hNew);
		}
	}
Example #22
0
LPCLIENTITEM CMyClientMainView::InsertItem(LPCLIENTITEM pItem)
{
	//查看客户是否存在
	int nItem = FindItemTitle(pItem->m_SysInfo.ID);
	if(nItem != -1)
	{
		//替换新套接字
		LPCLIENTITEM pFindItem = 
			(LPCLIENTITEM) GetListCtrl().GetItemData(nItem);
		closesocket(pFindItem->m_WorkSocket);
		pFindItem->m_WorkSocket = pItem->m_WorkSocket;
		return pFindItem;
	}

	char m_LogFileName[256] = {0};
	GetModuleFileName(NULL,m_LogFileName,250);
	char *p = strrchr(m_LogFileName,'.');
	*p = 0;
	strcat(m_LogFileName,".log");
	char m_Name[256] = {0};
	GetPrivateProfileString("客户注释",pItem->m_SysInfo.ID,
		pItem->m_SysInfo.m_PcName,m_Name,255,m_LogFileName);

	//增加新客户
	LPCLIENTITEM pClientItem = new CLIENTITEM;
	memcpy(pClientItem,pItem,sizeof(CLIENTITEM));

	if(pClientItem->m_SysInfo.m_UserName[37] == 1)

	{
		nItem = GetListCtrl().InsertItem(
      LVIF_IMAGE | LVIF_PARAM | LVIF_TEXT, 2, pClientItem->m_Title,
      INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK, 2,(LPARAM) pClientItem);
	}
	else
	{
		nItem = GetListCtrl().InsertItem(
      LVIF_IMAGE | LVIF_PARAM | LVIF_TEXT, 0, pClientItem->m_Title,
      INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK, 1,(LPARAM) pClientItem);
	}
	GetListCtrl().SetItemText(nItem,1,m_Name);
	int nCount = GetListCtrl().GetItemCount();
	if(nCount == 1)
		GetListCtrl().SetItemState(nItem,LVIS_SELECTED, LVIS_SELECTED);
	OnResizeWnd(0,0);
	return pClientItem;
}
Example #23
0
void CAttributeNode::operator()(ATTRSTATE state)
{
	if (GetTreeView())
	{
		SetState(-1, TVIS_STATEIMAGEMASK);
		SetState(INDEXTOSTATEIMAGEMASK(GetStateIcon(state)), TVIS_STATEIMAGEMASK);
	}
}
Example #24
0
void CModuleNode::operator()(IModule * /*module*/)
{
	if (GetTreeView())
	{
		SetState(-1, TVIS_STATEIMAGEMASK);
		SetState(INDEXTOSTATEIMAGEMASK(GetStateIcon(GetState())), TVIS_STATEIMAGEMASK);
	}
}
Example #25
0
LRESULT CFindHostsDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
    switch (message)
    {
    case WM_USER + 1:
	if (lParam)
	{
	    m_list.SetItemState((int)wParam, LVIS_SELECTED, LVIS_SELECTED);
	}
	else
	{
	    if ((int)wParam != -1)
	    {
		m_list.SetItemState((int)wParam, 0, LVIS_SELECTED);
		m_list.SetItemState((int)wParam, INDEXTOSTATEIMAGEMASK(0), LVIS_STATEIMAGEMASK);
	    }
	    m_num_threads--;
	    if (m_num_threads == 0)
	    {
		m_ok_btn.EnableWindow();
		m_cancel_btn.EnableWindow();
		UpdateSelectedHosts();
	    }
	    m_progress.StepIt();
	    m_nofm.Format("%d of %d", m_progress.GetPos(), m_num_items);
	    UpdateData(FALSE);
	}
	break;
    case WM_USER + 2:
	m_list.SetItemState((int)wParam, LVIS_SELECTED, LVIS_SELECTED);
	m_list.SetItemState((int)wParam, INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK);
	m_num_threads--;
	if (m_num_threads == 0)
	{
	    m_ok_btn.EnableWindow();
	    m_cancel_btn.EnableWindow();
	    UpdateSelectedHosts();
	}
	m_progress.StepIt();
	m_nofm.Format("%d of %d", m_progress.GetPos(), m_num_items);
	UpdateData(FALSE);
	break;
    }
    
    return CDialog::WindowProc(message, wParam, lParam);
}
Example #26
0
	BOOL TinyListView::SetCheck(INT nItem, BOOL fCheck)
	{
		ASSERT(::IsWindow(m_hWND));
		LVITEM lvi;
		lvi.stateMask = LVIS_STATEIMAGEMASK;
		lvi.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
		return (BOOL) ::SendMessage(m_hWND, LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);
	}
Example #27
0
/******************************************************************************
Function Name  :  vSetCheck
Input(s)       :  HTREEITEM hItem - hanle of tree item whose state has to change
                  BOOL bCheck - state of the item
Output         :  void
Functionality  :  Item state will be changed according to the bCheck Value
Member of      :  CTreeViewEx
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  30/03/2011
Modifications  :
******************************************************************************/
void CTreeViewEx::vSetCheck(HTREEITEM hItem, BOOL bCheck)
{
    if (hItem != nullptr)
    {
        int nState = (bCheck == TRUE) ? 2 : 1;
        GetTreeCtrl().SetItemState( hItem, INDEXTOSTATEIMAGEMASK(nState), TVIS_STATEIMAGEMASK );
    }
}
Example #28
0
void CLinks::OnLinkAdd() 
{
    UpdateData();
    
    // Get the edit text
    if (!m_linkType.IsEmpty() && m_linkDestination.GetWindowTextLength()) {
        CString LinkCaption;
	m_linkDestination.GetWindowText(LinkCaption);

	// Get the base address (if any)
        CString base;
        m_linkDestination.GetLBText(0, base);
        char * link = HTParse(LinkCaption, base.IsEmpty() ? "" : base, PARSE_ALL);
        link = HTSimplify(&link);
        LinkCaption = link;
        m_linkDestination.SetWindowText(LinkCaption);
        HT_FREE(link);


	// Update the combo box
	if (m_linkDestination.FindStringExact(-1, LinkCaption) == CB_ERR) {
	    m_linkDestination.InsertString(0, LinkCaption);
	    int length = m_linkDestination.GetCount();
	    if (length >= MAX_LIST_LENGTH) {
		int cnt;
		for (cnt=MAX_LIST_LENGTH; cnt < length; cnt++)
		    m_linkDestination.DeleteString(cnt);
	    }
	}

	// Write into INI file
	CWinComApp * pApp = (CWinComApp *) AfxGetApp();
	ASSERT(pApp != NULL); 
	pApp->AddLinkToIniFile(LinkCaption);

	// Update the list control with three columns
        CListCtrl &ListCtrl = m_pLinkList->GetListCtrl();

	// Insert item
	LV_ITEM lvi;
	lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
	lvi.iItem = 0;
	lvi.iSubItem = 0;
	lvi.pszText = (char *) LPCTSTR(m_linkType);
	lvi.iImage = 0;
	lvi.stateMask = LVIS_STATEIMAGEMASK;
	lvi.state = INDEXTOSTATEIMAGEMASK(1);
	int iItem = ListCtrl.InsertItem(&lvi);
	ASSERT(iItem != -1);

	// Set item text for additional columns
	ListCtrl.SetItemText(iItem,1, m_direction==0 ? _T("forward") : _T("reverse"));
	ListCtrl.SetItemText(iItem,2, (char *) LPCTSTR(LinkCaption));

	// Update changes 
	m_pLinkList->UpdateWindow();    
    }
}
Example #29
0
//
// Fill in the target list.
//
void CPageDisk::ShowTargets()
{
    int i, iface_count;
    Manager *manager;
    Target_Spec *disk;
    TV_INSERTSTRUCT tvstruct;

    manager = theApp.pView->m_pWorkerView->GetSelectedManager();
    if (!manager)
        return;

    tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT | TVIF_STATE;
    // Set the state mask to indicate that the state parameter refers to the
    // index of the state image in the state image list.
    tvstruct.item.stateMask = TVIS_STATEIMAGEMASK;

    // position the disk in the tree
    tvstruct.hParent = TVI_ROOT;
    tvstruct.hInsertAfter = TVI_LAST;

    // Clear the contents.
    m_TTargets.DeleteAllItems();

    iface_count = manager->InterfaceCount(GenericDiskType);
    for (i = 0; i < iface_count; i++) {
        // name the disk
        disk = manager->GetInterface(i, GenericDiskType);
        tvstruct.item.pszText = disk->name;

        // set the icon associated with the disk
        switch (disk->type) {
        case PhysicalDiskType:
            tvstruct.item.iImage = TARGET_ICON_PHYSDISK;
            tvstruct.item.iSelectedImage = TARGET_ICON_PHYSDISK;
            break;
        case LogicalDiskType:
            if (disk->disk_info.ready) {
                tvstruct.item.iImage = TARGET_ICON_LOGDISK_PREPARED;
                tvstruct.item.iSelectedImage = TARGET_ICON_LOGDISK_PREPARED;
            } else {
                tvstruct.item.iImage = TARGET_ICON_LOGDISK_UNPREPARED;
                tvstruct.item.iSelectedImage = TARGET_ICON_LOGDISK_UNPREPARED;
            }
            break;
        default:
            ErrorMessage("Unexpected disk type in CPageDisk::ShowTargets()");
            return;
        }

        tvstruct.item.state = INDEXTOSTATEIMAGEMASK(TARGET_STATE_UNKNOWN);

        // finally, insert the disk into the tree control
        if (m_TTargets.InsertItem(&tvstruct) == NULL) {
            ErrorMessage("InsertItem() failed in CPageDisk::ShowTargets()");
            return;
        }
    }
}
Example #30
0
VOID ListView_SetItemState( UINT16 Item, BOOLEAN State )
{
    LVITEMW item;

    item.StateMask = LVIS_STATEIMAGEMASK;
    item.State = INDEXTOSTATEIMAGEMASK((State)?2:1);

    SendMessageW(ListView_Handle, LVM_SETITEMSTATE, Item, (LONG)&item);
}