| 209 | } |
| 210 | |
| 211 | bool GuiInspectorDynamicField::onAdd() |
| 212 | { |
| 213 | if( !Parent::onAdd() ) |
| 214 | return false; |
| 215 | |
| 216 | //pushObjectToBack(mEdit); |
| 217 | |
| 218 | // Create our renaming field |
| 219 | mRenameCtrl = new GuiTextEditCtrl(); |
| 220 | mRenameCtrl->setDataField( StringTable->insert("profile"), NULL, "GuiInspectorDynamicFieldProfile" ); |
| 221 | |
| 222 | char szName[512]; |
| 223 | dSprintf( szName, 512, "IE_%s_%d_%s_Rename", mRenameCtrl->getClassName(), mInspector->getInspectObject()->getId(), getFieldName() ); |
| 224 | mRenameCtrl->registerObject( szName ); |
| 225 | |
| 226 | // Our command will evaluate to : |
| 227 | // |
| 228 | // if( (editCtrl).getText() !$= "" ) |
| 229 | // (field).renameField((editCtrl).getText()); |
| 230 | // |
| 231 | char szBuffer[1024]; |
| 232 | dSprintf( szBuffer, sizeof( szBuffer ), "if( %d.getText() !$= \"\" ) %d.renameField(%d.getText());", mRenameCtrl->getId(), getId(), mRenameCtrl->getId() ); |
| 233 | mRenameCtrl->setText( getFieldName() ); |
| 234 | mRenameCtrl->setField("Validate", szBuffer ); |
| 235 | addObject( mRenameCtrl ); |
| 236 | |
| 237 | // Resize the name control to fit in our caption rect |
| 238 | mRenameCtrl->resize( mCaptionRect.point, mCaptionRect.extent ); |
| 239 | |
| 240 | // Resize the value control to leave space for the delete button |
| 241 | mEdit->resize( mValueRect.point, mValueRect.extent); |
| 242 | |
| 243 | // Clear out any caption set from Parent::onAdd |
| 244 | // since we are rendering the fieldname with our 'rename' control. |
| 245 | mCaption = StringTable->insert( "" ); |
| 246 | |
| 247 | // Create delete button control |
| 248 | mDeleteButton = new GuiBitmapButtonCtrl(); |
| 249 | |
| 250 | SimObject* profilePtr = Sim::findObject("InspectorDynamicFieldButton"); |
| 251 | if( profilePtr != NULL ) |
| 252 | mDeleteButton->setControlProfile( dynamic_cast<GuiControlProfile*>(profilePtr) ); |
| 253 | |
| 254 | dSprintf( szBuffer, sizeof( szBuffer ), |
| 255 | "%d.apply(\"\");%d.schedule(1,\"inspectGroup\");", |
| 256 | getId(), |
| 257 | mParent->getId() ); |
| 258 | |
| 259 | // FIXME Hardcoded image |
| 260 | mDeleteButton->setField( "Bitmap", "ToolsModule:iconDelete_image" ); |
| 261 | mDeleteButton->setField( "Text", "X" ); |
| 262 | mDeleteButton->setField( "Command", szBuffer ); |
| 263 | mDeleteButton->setSizing( horizResizeLeft, vertResizeCenter ); |
| 264 | mDeleteButton->resize(Point2I(getWidth() - 20,2), Point2I(16, 16)); |
| 265 | mDeleteButton->registerObject(); |
| 266 | |
| 267 | addObject(mDeleteButton); |
| 268 |
nothing calls this directly
no test coverage detected