Files
sbox-public/engine/Sandbox.Tools/ControlWidget/RectControlWidget.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

38 lines
979 B
C#

namespace Editor;
[CustomEditor( typeof( Rect ) )]
[CustomEditor( typeof( RectInt ) )]
public class RectControlWidget : ControlWidget
{
SerializedObject obj;
public RectControlWidget( SerializedProperty property ) : base( property )
{
property.TryGetAsObject( out obj );
Layout = Layout.Row();
Layout.Spacing = 2;
TryAddField( "Left", Theme.Red, "X" );
TryAddField( "Top", Theme.Blue, "Y" );
TryAddField( "Width", Theme.Green, "W" );
TryAddField( "Height", Theme.Yellow, "H" );
}
private void TryAddField( string propertyName, Color color, string label )
{
var prop = obj.GetProperty( propertyName );
if ( prop is null ) return;
var control = Layout.Add( new FloatControlWidget( prop ) { HighlightColor = color, Label = label } );
control.MinimumWidth = Theme.RowHeight;
control.HorizontalSizeMode = SizeMode.CanGrow | SizeMode.Expand;
control.MakeRanged( SerializedProperty );
}
protected override void OnPaint()
{
// nothing
}
}