| 4740 | //----------------------------------------------------------------------------- |
| 4741 | |
| 4742 | StringTableEntry GuiTreeViewCtrl::getTextToRoot( S32 itemId, const char * delimiter ) |
| 4743 | { |
| 4744 | Item * item = getItem(itemId); |
| 4745 | |
| 4746 | if(!item) |
| 4747 | { |
| 4748 | Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: invalid start item id!"); |
| 4749 | return StringTable->EmptyString(); |
| 4750 | } |
| 4751 | |
| 4752 | if(item->isInspectorData()) |
| 4753 | { |
| 4754 | Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: cannot get text to root of inspector data items"); |
| 4755 | return StringTable->EmptyString(); |
| 4756 | } |
| 4757 | |
| 4758 | char bufferOne[1024]; |
| 4759 | char bufferTwo[1024]; |
| 4760 | char bufferNodeText[128]; |
| 4761 | |
| 4762 | dMemset( bufferOne, 0, sizeof(bufferOne) ); |
| 4763 | dMemset( bufferTwo, 0, sizeof(bufferTwo) ); |
| 4764 | |
| 4765 | dStrcpy( bufferOne, item->getText() ); |
| 4766 | |
| 4767 | Item *prevNode = item->mParent; |
| 4768 | while ( prevNode ) |
| 4769 | { |
| 4770 | dMemset( bufferNodeText, 0, sizeof(bufferNodeText) ); |
| 4771 | dStrcpy( bufferNodeText, prevNode->getText() ); |
| 4772 | dSprintf( bufferTwo, 1024, "%s%s%s",bufferNodeText, delimiter, bufferOne ); |
| 4773 | dStrcpy( bufferOne, bufferTwo ); |
| 4774 | dMemset( bufferTwo, 0, sizeof(bufferTwo) ); |
| 4775 | prevNode = prevNode->mParent; |
| 4776 | } |
| 4777 | |
| 4778 | // Return the result, StringTable-ized. |
| 4779 | return StringTable->insert( bufferOne, true ); |
| 4780 | } |
| 4781 | |
| 4782 | //----------------------------------------------------------------------------- |
| 4783 |
no test coverage detected