static HTREEITEM AddTocItemToView(HWND hwnd, DocTocItem *entry, HTREEITEM parent, bool toggleItem) { TV_INSERTSTRUCT tvinsert; tvinsert.hParent = parent; tvinsert.hInsertAfter = TVI_LAST; tvinsert.itemex.mask = TVIF_TEXT | TVIF_PARAM | TVIF_STATE; tvinsert.itemex.state = entry->child && entry->open != toggleItem ? TVIS_EXPANDED : 0; tvinsert.itemex.stateMask = TVIS_EXPANDED; tvinsert.itemex.lParam = (LPARAM)entry; // Replace unprintable whitespace with regular spaces str::NormalizeWS(entry->title); tvinsert.itemex.pszText = entry->title; #ifdef DISPLAY_TOC_PAGE_NUMBERS WindowInfo *win = FindWindowInfoByHwnd(hwnd); if (entry->pageNo && win && win->IsDocLoaded() && !win->AsEbook()) { ScopedMem<WCHAR> label(win->ctrl->GetPageLabel(entry->pageNo)); ScopedMem<WCHAR> text(str::Format(L"%s %s", entry->title, label)); tvinsert.itemex.pszText = text; return TreeView_InsertItem(hwnd, &tvinsert); } #endif return TreeView_InsertItem(hwnd, &tvinsert); }