+ // don't automatically show topic selector if this
+ // item points to multiple pages:
+ if (index[i].items.size() == 1)
+ {
+ m_IndexList->SetSelection(0);
+ DisplayIndexItem(&index[i]);
+ }
+ }
+
+ // if this is nested item of the index, show its parent(s)
+ // as well, otherwise it would not be clear what entry is
+ // shown:
+ wxHtmlHelpMergedIndexItem *parent = index[i].parent;
+ while (parent)
+ {
+ if (pos == 0 ||
+ (index.Index(*(wxHtmlHelpMergedIndexItem*)m_IndexList->GetClientData(pos-1))) < index.Index(*parent))
+ {
+ m_IndexList->Insert(parent->name,
+ pos, (char*)parent);
+ parent = parent->parent;
+ }
+ else break;
+ }
+
+ // finally, it the item we just added is itself a parent for
+ // other items, show them as well, because they are refinements
+ // of the displayed index entry (i.e. it is implicitly contained
+ // in them: "foo" with parent "bar" reads as "bar, foo"):
+ int level = index[i].items[0]->level;
+ i++;
+ while (i < cnt && index[i].items[0]->level > level)
+ {
+ m_IndexList->Append(index[i].name, (char*)(&index[i]));
+ i++;