| 4420 | //----------------------------------------------------------------------------- |
| 4421 | |
| 4422 | StringTableEntry GuiTreeViewCtrl::getTextToRoot( S32 itemId, const char * delimiter ) |
| 4423 | { |
| 4424 | Item * item = getItem(itemId); |
| 4425 | |
| 4426 | if(!item) |
| 4427 | { |
| 4428 | Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: invalid start item id!"); |
| 4429 | return StringTable->EmptyString(); |
| 4430 | } |
| 4431 | |
| 4432 | if(item->isInspectorData()) |
| 4433 | { |
| 4434 | Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: cannot get text to root of inspector data items"); |
| 4435 | return StringTable->EmptyString(); |
| 4436 | } |
| 4437 | |
| 4438 | char bufferOne[1024]; |
| 4439 | char bufferTwo[1024]; |
| 4440 | char bufferNodeText[128]; |
| 4441 | |
| 4442 | dMemset( bufferOne, 0, sizeof(bufferOne) ); |
| 4443 | dMemset( bufferTwo, 0, sizeof(bufferTwo) ); |
| 4444 | |
| 4445 | dStrcpy( bufferOne, item->getText(), 1024 ); |
| 4446 | |
| 4447 | Item *prevNode = item->mParent; |
| 4448 | while ( prevNode ) |
| 4449 | { |
| 4450 | dMemset( bufferNodeText, 0, sizeof(bufferNodeText) ); |
| 4451 | dStrcpy( bufferNodeText, prevNode->getText(), 128 ); |
| 4452 | dSprintf( bufferTwo, 1024, "%s%s%s",bufferNodeText, delimiter, bufferOne ); |
| 4453 | dStrcpy( bufferOne, bufferTwo, 1024 ); |
| 4454 | dMemset( bufferTwo, 0, sizeof(bufferTwo) ); |
| 4455 | prevNode = prevNode->mParent; |
| 4456 | } |
| 4457 | |
| 4458 | // Return the result, StringTable-ized. |
| 4459 | return StringTable->insert( bufferOne, true ); |
| 4460 | } |
| 4461 | |
| 4462 | //----------------------------------------------------------------------------- |
| 4463 |
no test coverage detected