void InsertTag(HTREEITEM htiRoot, const TCHAR *tag, bool bSelect) { TVINSERTSTRUCT tvi = {0}; tvi.hParent = htiRoot; tvi.hInsertAfter = TVI_LAST; tvi.itemex.mask = TVIF_TEXT|TVIF_PARAM; tvi.itemex.pszText = (TCHAR *)tag; tvi.itemex.lParam = (LPARAM)mir_tstrdup(tag); HTREEITEM hti = m_tvFilter.InsertItem(&tvi); if (bSelect) m_tvFilter.SelectItem(hti); }
virtual void OnInitDialog() { TVINSERTSTRUCT tvis; tvis.hParent = NULL; tvis.hInsertAfter = TVI_LAST; tvis.item.mask = TVIF_TEXT | TVIF_PARAM; for (int i = 0; i < _countof(nameOrderDescr); i++) { tvis.item.lParam = nameOrder[i]; tvis.item.pszText = TranslateTS(nameOrderDescr[nameOrder[i]]); m_nameOrder.InsertItem(&tvis); } }
void RebuildTree() { TVITEMEX tvi = { 0 }; tvi.mask = TVIF_HANDLE | TVIF_PARAM; tvi.hItem = m_tvFilter.GetSelection(); m_tvFilter.GetItem(&tvi); TCHAR *szActiveTag = mir_tstrdup((TCHAR *)tvi.lParam); m_tvFilter.DeleteAllItems(); TVINSERTSTRUCT tvis = { 0 }; tvis.hInsertAfter = TVI_LAST; tvis.itemex.mask = TVIF_TEXT | TVIF_PARAM | TVIF_STATE; tvis.itemex.stateMask = tvis.itemex.state = TVIS_BOLD | TVIS_EXPANDED; tvis.itemex.pszText = TranslateT("All tags"); PopulateTags(m_tvFilter.InsertItem(&tvis), szActiveTag); mir_free(szActiveTag); }