Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdsNavtree::AddItem | (const hzString&,const hzString&,const hzString&,hdsArticle*,bool,) |
Declared in file: hzDissemino.h
Defined in file : hdsNavtree.cpp
Function Logic:
Function body:
hzEcode hdsNavtree::AddItem (const hzString& parent, const hzString& refname, const hzString& title, hdsArticle* pArt, bool bSlct) { _hzfunc("hdsNavtree::AddItem") ; _navitem item ; _navitem parItem ; hzEcode rc = E_OK ; threadLog("Adding article %p %s\n", pArt, *refname) ; if (!refname) return hzerr(E_ARGUMENT, "%s: No item item id supplied", *m_Groupname) ; if (!title) return hzerr(E_ARGUMENT, "%s: No item headline supplied", *m_Groupname) ; if (m_ItemsByName.Exists(refname)) return hzerr(E_DUPLICATE, "%s: Duplicate entry attempted: Item %s alredy exists", *m_Groupname, *refname) ; if (parent) { if (!m_ItemsByName.Count()) return hzerr(E_CORRUPT, "%s: Adding first item %s but with non-null parent", *m_Groupname, *title) ; if (!m_ItemsByName.Exists(parent)) return hzerr(E_CORRUPT, "%s: Supplied parent (%s) does not exist", *m_Groupname, *parent) ; parItem = m_ItemsByName[parent] ; } m_Articles.Add(pArt) ; item.m_ItemId = m_Articles.Count() ; item.m_Title = title ; if (bSlct) item.m_bFlags |= HZ_TREEITEM_OPEN ; item.m_bFlags |= HZ_TREEITEM_LINK ; if (!parent) item.m_nLevel = 0; else item.m_nLevel = parItem.m_nLevel + 1; rc = m_ItemsByParent.Insert(parent, refname) ; if (rc != E_OK) return hzerr(rc, "%s: Could not insert parent for article %s", *m_Groupname, *title) ; rc = m_ItemsByName.Insert(refname, item) ; if (rc != E_OK) return hzerr(rc, "%s: Could not insert article %s", *m_Groupname, *title) ; return rc ; }