mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-04-17 18:35:24 +00:00
Parametrize script extension, default to 'tscript'
This commit is contained in:
parent
b8b62292bd
commit
099dd4f1f3
542 changed files with 774 additions and 783 deletions
248
Templates/BaseGame/game/tools/gui/guiObjectInspector.ed.tscript
Normal file
248
Templates/BaseGame/game/tools/gui/guiObjectInspector.ed.tscript
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// The "Object Inspector" is a useful little window for browsing and editing SimObject
|
||||
// hierarchies. Be aware that there is no undo in the inspector.
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
/// Bring up a new inspector window on the given object.
|
||||
function inspectObject( %object )
|
||||
{
|
||||
if( !isObject( %object ) )
|
||||
{
|
||||
error( "inspectObject: no object '" @ %object @ "'" );
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a new object inspector window.
|
||||
exec( "./guiObjectInspector.ed.gui" );
|
||||
|
||||
if( !isObject( %guiContent) )
|
||||
{
|
||||
error( "InspectObject: failed to create GUI from 'guiObjectInspector.ed.gui'" );
|
||||
return;
|
||||
}
|
||||
|
||||
// Initialize the inspector.
|
||||
|
||||
%guiContent.init( %object );
|
||||
|
||||
Canvas.getContent().add( %guiContent );
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// GuiObjectInspector
|
||||
//=============================================================================================
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspector::init( %this, %object )
|
||||
{
|
||||
if( !%object.isMemberOfClass( "SimSet" ) )
|
||||
{
|
||||
// Complete deletely the splitter and the left-side part of the inspector
|
||||
// leaving only the field inspector.
|
||||
|
||||
%this.add( %this-->panel2 );
|
||||
%this-->splitter.delete();
|
||||
%this-->inspector.inspect( %object );
|
||||
%this-->methodList.init( %object );
|
||||
}
|
||||
else
|
||||
{
|
||||
%treeView = %this-->treeView;
|
||||
%treeView.inspectorCtrl = %this-->inspector;
|
||||
%treeView.methodList = %this-->methodList;
|
||||
|
||||
%treeView.open( %object );
|
||||
}
|
||||
|
||||
// Set window caption.
|
||||
|
||||
%caption = "Object Inspector - " @ %object.getId() @ " : " @ %object.getClassName();
|
||||
|
||||
%name = %object.getName();
|
||||
if( %name !$= "" )
|
||||
%caption = %caption @ " - " @ %name;
|
||||
|
||||
%this.text = %caption;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspector::onClose( %this )
|
||||
{
|
||||
// Delete us.
|
||||
%this.schedule( 1, "delete" );
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// GuiObjectInspectorTree
|
||||
//=============================================================================================
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspectorTree::onSelect( %this, %object )
|
||||
{
|
||||
if( isObject( %object ) )
|
||||
{
|
||||
%this.inspectorCtrl.inspect( %object );
|
||||
%this.methodList.init( %object );
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspectorTree::onRightMouseUp( %this, %itemId, %mousePos, %object )
|
||||
{
|
||||
if( !isObject( GuiObjectInspectorTreePopup ) )
|
||||
new PopupMenu( GuiObjectInspectorTreePopup )
|
||||
{
|
||||
superClass = "MenuBuilder";
|
||||
isPopup = true;
|
||||
|
||||
item[ 0 ] = "Jump to Definition in Torsion" TAB "" TAB "EditorOpenDeclarationInTorsion( %this.object );";
|
||||
|
||||
object = "";
|
||||
};
|
||||
|
||||
GuiObjectInspectorTreePopup.object = %object;
|
||||
GuiObjectInspectorTreePopup.showPopup( Canvas );
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// GuiObjectInspectorMethodList
|
||||
//=============================================================================================
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspectorMethodList::init( %this, %object )
|
||||
{
|
||||
%this.clear();
|
||||
|
||||
%methods = %object.dumpMethods();
|
||||
%count = %methods.count();
|
||||
%methodsGroup = %this.insertItem( 0, "Methods" );
|
||||
%parentScripted = %this.insertItem( %methodsGroup, "Scripted" );
|
||||
%parentNative = %this.insertItem( %methodsGroup, "Native" );
|
||||
|
||||
for( %i = 0; %i < %count; %i ++ )
|
||||
{
|
||||
%name = %methods.getKey( %i );
|
||||
%value = %methods.getValue( %i );
|
||||
%prototype = getRecord( %value, 2 );
|
||||
%fileName = getRecord( %value, 3 );
|
||||
%lineNumber = getRecord( %value, 4 );
|
||||
%usage = getRecords( %value, 5 );
|
||||
|
||||
%tooltip = %prototype;
|
||||
if( isFile( %fileName ) )
|
||||
{
|
||||
%parent = %parentScripted;
|
||||
%tooltip = %tooltip NL "Declared in: " @ %fileName @ ":" @ %lineNumber;
|
||||
}
|
||||
else
|
||||
%parent = %parentNative;
|
||||
|
||||
%tooltip = %tooltip @ "\n\n" @ %usage;
|
||||
|
||||
%id = %this.insertItem( %parent, %prototype, %fileName NL %lineNumber );
|
||||
%this.setItemTooltip( %id, %tooltip );
|
||||
}
|
||||
|
||||
%methods.delete();
|
||||
|
||||
if( %object.isMethod( "getDebugInfo" ) )
|
||||
{
|
||||
%debugInfo = %object.getDebugInfo();
|
||||
%count = %debugInfo.count();
|
||||
%parent = %this.insertItem( 0, "Debug Info" );
|
||||
|
||||
for( %i = 0; %i < %count; %i ++ )
|
||||
%id = %this.insertItem( %parent, %debugInfo.getKey( %i ) @ ": " @ %debugInfo.getValue( %i ) );
|
||||
|
||||
%debugInfo.delete();
|
||||
}
|
||||
|
||||
%this.sort( 0, true );
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspectorMethodList::onRightMouseUp( %this, %item, %mousePos )
|
||||
{
|
||||
%value = %this.getItemValue( %item );
|
||||
if( %value $= "" )
|
||||
return;
|
||||
|
||||
%fileName = getRecord( %value, 0 );
|
||||
%lineNumber = getRecord( %value, 1 );
|
||||
|
||||
if( isFile( %fileName ) )
|
||||
{
|
||||
if( !isObject( GuiInspectorMethodListPopup ) )
|
||||
new PopupMenu( GuiInspectorMethodListPopup )
|
||||
{
|
||||
superClass = "MenuBuilder";
|
||||
isPopup = true;
|
||||
|
||||
item[ 0 ] = "Jump to Definition in Torsion" TAB "" TAB "EditorOpenFileInTorsion( %this.jumpFileName, %this.jumpLineNumber );";
|
||||
|
||||
jumpFileName = "";
|
||||
jumpLineNumber = "";
|
||||
};
|
||||
|
||||
GuiInspectorMethodListPopup.jumpFileName = %fileName;
|
||||
GuiInspectorMethodListPopup.jumpLineNumber = %lineNumber;
|
||||
|
||||
GuiInspectorMethodListPopup.showPopup( Canvas );
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// GuiObjectInspectorTreeFilter
|
||||
//=============================================================================================
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspectorTreeFilter::onWake( %this )
|
||||
{
|
||||
%treeView = %this.getParent()-->TreeView;
|
||||
if( isObject( %treeView ) )
|
||||
%this.treeView = %treeView;
|
||||
|
||||
Parent::onWake( %this );
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
// GuiObjectInspectorTreeFilter
|
||||
//=============================================================================================
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
function GuiObjectInspectorTreeFilterClearButton::onWake( %this )
|
||||
{
|
||||
%filterText = %this.getParent()-->FilterText;
|
||||
if( isObject( %filterText ) )
|
||||
%this.textCtrl = %filterText;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue