datablockField.cpp
Engine/source/gui/editor/inspector/datablockField.cpp
Public Functions
ConsoleDocClass(GuiInspectorDatablockField , "@brief Custom field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> datablock <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">enumeration.\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXAmbienceName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXAmbience\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXDescriptionName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXDescriptionName\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXEnvironmentName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXEnvironment\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXTrackName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXTrackName\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
Detailed Description
Public Functions
ConsoleDocClass(GuiInspectorDatablockField , "@brief Custom field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> datablock <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">enumeration.\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXAmbienceName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXAmbience\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXDescriptionName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXDescriptionName\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXEnvironmentName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXEnvironment\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
ConsoleDocClass(GuiInspectorTypeSFXTrackName , "@brief Inspector field type <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1a2732ab74fa0237854c2ba0f75f88a624">for</a> <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">SFXTrackName\n\n</a>" "Editor use <a href="/coding/file/cmdscan_8cpp/#cmdscan_8cpp_1aeab71244afb687f16d8c4f5ee9d6ef0e">only.\n\n</a>" "@internal" )
IMPLEMENT_CONOBJECT(GuiInspectorDatablockField )
IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXAmbienceName )
IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXDescriptionName )
IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXEnvironmentName )
IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXTrackName )
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#include "console/simBase.h" 25#include "console/simDatablock.h" 26#include "gui/editor/guiInspector.h" 27#include "gui/editor/inspector/datablockField.h" 28#include "gui/editor/inspector/group.h" 29#include "gui/buttons/guiIconButtonCtrl.h" 30#include "gui/editor/inspector/datablockField.h" 31#include "sfx/sfxTypes.h" 32#include "sfx/sfxDescription.h" 33#include "sfx/sfxEnvironment.h" 34#include "sfx/sfxAmbience.h" 35#include "sfx/sfxTrack.h" 36 37 38//----------------------------------------------------------------------------- 39// GuiInspectorDatablockField 40// Field construction for datablock types 41//----------------------------------------------------------------------------- 42IMPLEMENT_CONOBJECT(GuiInspectorDatablockField); 43 44ConsoleDocClass( GuiInspectorDatablockField, 45 "@brief Custom field type for datablock enumeration.\n\n" 46 "Editor use only.\n\n" 47 "@internal" 48); 49 50 51GuiInspectorDatablockField::GuiInspectorDatablockField( StringTableEntry className ) 52{ 53 setClassName( className ); 54} 55 56void GuiInspectorDatablockField::setClassName( StringTableEntry className ) 57{ 58 if( !className || !className[ 0 ] ) 59 mDesiredClass = NULL; 60 else 61 { 62 mDesiredClass = AbstractClassRep::findClassRep( className ); 63 if( !mDesiredClass ) 64 Con::errorf( "GuiInspectorDatablockField::setClassName - no class '%s' found!", className ); 65 } 66} 67 68void GuiInspectorDatablockField::_populateMenu( GuiPopUpMenuCtrl* menu ) 69{ 70 menu->addScheme( 1, ColorI( 80, 0, 0, 255 ), ColorI( 80, 0, 0, 255 ), ColorI( 80, 0, 0, 255 ) ); // For client-only coloring. 71 menu->addEntry( "", 0 ); // For unsetting. 72 73 SimSet* set = _getDatablockSet(); 74 U32 id = 1; 75 76 for( SimSet::iterator iter = set->begin(); iter != set->end(); ++ iter ) 77 { 78 SimDataBlock* datablock = dynamic_cast< SimDataBlock* >( *iter ); 79 80 // Skip non-datablocks if we somehow encounter them. 81 if( !datablock ) 82 continue; 83 84 // Ok, now we have to figure inheritance info. 85 if( datablock && ( !mDesiredClass || datablock->getClassRep()->isClass( mDesiredClass ) ) ) 86 menu->addEntry( datablock->getName(), id ++, datablock->isClientOnly() ? 1 : 0 ); 87 } 88 89 menu->sort(); 90} 91 92 93//----------------------------------------------------------------------------- 94// GuiInspectorTypeSFXDescriptionName 95//----------------------------------------------------------------------------- 96IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXDescriptionName); 97 98ConsoleDocClass( GuiInspectorTypeSFXDescriptionName, 99 "@brief Inspector field type for SFXDescriptionName\n\n" 100 "Editor use only.\n\n" 101 "@internal" 102); 103 104void GuiInspectorTypeSFXDescriptionName::consoleInit() 105{ 106 Parent::consoleInit(); 107 108 ConsoleBaseType::getType( TypeSFXDescriptionName )->setInspectorFieldType( "GuiInspectorTypeSFXDescriptionName" ); 109} 110 111 112//----------------------------------------------------------------------------- 113// GuiInspectorTypeSFXTrackName 114//----------------------------------------------------------------------------- 115IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXTrackName); 116 117ConsoleDocClass( GuiInspectorTypeSFXTrackName, 118 "@brief Inspector field type for SFXTrackName\n\n" 119 "Editor use only.\n\n" 120 "@internal" 121); 122 123void GuiInspectorTypeSFXTrackName::consoleInit() 124{ 125 Parent::consoleInit(); 126 127 ConsoleBaseType::getType( TypeSFXTrackName )->setInspectorFieldType( "GuiInspectorTypeSFXTrackName" ); 128} 129 130 131//----------------------------------------------------------------------------- 132// GuiInspectorTypeSFXEnvironmentName 133//----------------------------------------------------------------------------- 134IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXEnvironmentName); 135 136ConsoleDocClass( GuiInspectorTypeSFXEnvironmentName, 137 "@brief Inspector field type for SFXEnvironment\n\n" 138 "Editor use only.\n\n" 139 "@internal" 140); 141 142void GuiInspectorTypeSFXEnvironmentName::consoleInit() 143{ 144 Parent::consoleInit(); 145 146 ConsoleBaseType::getType( TypeSFXEnvironmentName )->setInspectorFieldType( "GuiInspectorTypeSFXEnvironmentName" ); 147} 148 149 150//----------------------------------------------------------------------------- 151// GuiInspectorTypeSFXAmbienceName 152//----------------------------------------------------------------------------- 153IMPLEMENT_CONOBJECT(GuiInspectorTypeSFXAmbienceName); 154 155ConsoleDocClass( GuiInspectorTypeSFXAmbienceName, 156 "@brief Inspector field type for SFXAmbience\n\n" 157 "Editor use only.\n\n" 158 "@internal" 159); 160 161void GuiInspectorTypeSFXAmbienceName::consoleInit() 162{ 163 Parent::consoleInit(); 164 165 ConsoleBaseType::getType( TypeSFXAmbienceName )->setInspectorFieldType( "GuiInspectorTypeSFXAmbienceName" ); 166} 167