Minor fixes
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
// Copyright (c) Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using FlaxEditor.Content.Settings;
|
using FlaxEditor.Content.Settings;
|
||||||
using FlaxEditor.Scripting;
|
using FlaxEditor.Scripting;
|
||||||
using FlaxEditor.Surface.Elements;
|
using FlaxEditor.Surface.Elements;
|
||||||
@@ -262,12 +261,55 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if false // TODO: finish code editor based on RichTextBoxBase with text block parsing for custom styling
|
||||||
|
internal sealed class CustomCodeTextBox : RichTextBoxBase
|
||||||
|
{
|
||||||
|
protected override void OnParseTextBlocks()
|
||||||
|
{
|
||||||
|
base.OnParseTextBlocks();
|
||||||
|
|
||||||
|
// Single block for a whole text
|
||||||
|
// TODO: implement code parsing with HLSL syntax
|
||||||
|
var font = Style.Current.FontMedium;
|
||||||
|
var style = new TextBlockStyle
|
||||||
|
{
|
||||||
|
Font = new FontReference(font),
|
||||||
|
Color = Style.Current.Foreground,
|
||||||
|
BackgroundSelectedBrush = new SolidColorBrush(Style.Current.BackgroundSelected),
|
||||||
|
};
|
||||||
|
_textBlocks.Clear();
|
||||||
|
_textBlocks.Add(new TextBlock
|
||||||
|
{
|
||||||
|
Range = new TextRange
|
||||||
|
{
|
||||||
|
StartIndex = 0,
|
||||||
|
EndIndex = TextLength,
|
||||||
|
},
|
||||||
|
Style = style,
|
||||||
|
Bounds = new Rectangle(Float2.Zero, font.MeasureText(Text)),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
internal sealed class CustomCodeTextBox : TextBox
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
public override void Draw()
|
||||||
|
{
|
||||||
|
base.Draw();
|
||||||
|
|
||||||
|
// Draw border
|
||||||
|
if (!IsFocused)
|
||||||
|
Render2D.DrawRectangle(new Rectangle(Float2.Zero, Size), Style.Current.BorderNormal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal sealed class CustomCodeNode : SurfaceNode
|
internal sealed class CustomCodeNode : SurfaceNode
|
||||||
{
|
{
|
||||||
private Rectangle _resizeButtonRect;
|
private Rectangle _resizeButtonRect;
|
||||||
private Float2 _startResizingSize;
|
private Float2 _startResizingSize;
|
||||||
private Float2 _startResizingCornerOffset;
|
private Float2 _startResizingCornerOffset;
|
||||||
private bool _isResizing;
|
private bool _isResizing;
|
||||||
|
private CustomCodeTextBox _textBox;
|
||||||
|
|
||||||
private int SizeValueIndex => Archetype.TypeID == 8 ? 1 : 3; // Index of the Size stored in Values array
|
private int SizeValueIndex => Archetype.TypeID == 8 ? 1 : 3; // Index of the Size stored in Values array
|
||||||
|
|
||||||
@@ -280,6 +322,26 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
public CustomCodeNode(uint id, VisjectSurfaceContext context, NodeArchetype nodeArch, GroupArchetype groupArch)
|
public CustomCodeNode(uint id, VisjectSurfaceContext context, NodeArchetype nodeArch, GroupArchetype groupArch)
|
||||||
: base(id, context, nodeArch, groupArch)
|
: base(id, context, nodeArch, groupArch)
|
||||||
{
|
{
|
||||||
|
Float2 pos = new Float2(FlaxEditor.Surface.Constants.NodeMarginX, FlaxEditor.Surface.Constants.NodeMarginY + FlaxEditor.Surface.Constants.NodeHeaderSize), size;
|
||||||
|
if (nodeArch.TypeID == 8)
|
||||||
|
{
|
||||||
|
pos += new Float2(60, 0);
|
||||||
|
size = new Float2(172, 200);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pos += new Float2(0, 40);
|
||||||
|
size = new Float2(300, 200);
|
||||||
|
}
|
||||||
|
_textBox = new CustomCodeTextBox
|
||||||
|
{
|
||||||
|
IsMultiline = true,
|
||||||
|
Location = pos,
|
||||||
|
Size = size,
|
||||||
|
Parent = this,
|
||||||
|
AnchorMax = Float2.One,
|
||||||
|
};
|
||||||
|
_textBox.EditEnd += () => SetValue(0, _textBox.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanSelect(ref Float2 location)
|
public override bool CanSelect(ref Float2 location)
|
||||||
@@ -291,8 +353,7 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
{
|
{
|
||||||
base.OnSurfaceLoaded(action);
|
base.OnSurfaceLoaded(action);
|
||||||
|
|
||||||
var textBox = (TextBox)Children.First(x => x is TextBox);
|
_textBox.Text = (string)Values[0];
|
||||||
textBox.AnchorMax = Float2.One;
|
|
||||||
|
|
||||||
var size = SizeValue;
|
var size = SizeValue;
|
||||||
if (Surface != null && Surface.GridSnappingEnabled)
|
if (Surface != null && Surface.GridSnappingEnabled)
|
||||||
@@ -306,6 +367,7 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
|
|
||||||
var size = SizeValue;
|
var size = SizeValue;
|
||||||
Resize(size.X, size.Y);
|
Resize(size.X, size.Y);
|
||||||
|
_textBox.Text = (string)Values[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateRectangles()
|
protected override void UpdateRectangles()
|
||||||
@@ -579,8 +641,6 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
NodeElementArchetype.Factory.Output(1, "Output1", typeof(Float4), 9),
|
NodeElementArchetype.Factory.Output(1, "Output1", typeof(Float4), 9),
|
||||||
NodeElementArchetype.Factory.Output(2, "Output2", typeof(Float4), 10),
|
NodeElementArchetype.Factory.Output(2, "Output2", typeof(Float4), 10),
|
||||||
NodeElementArchetype.Factory.Output(3, "Output3", typeof(Float4), 11),
|
NodeElementArchetype.Factory.Output(3, "Output3", typeof(Float4), 11),
|
||||||
|
|
||||||
NodeElementArchetype.Factory.TextBox(60, 0, 175, 200, 0),
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new NodeArchetype
|
new NodeArchetype
|
||||||
@@ -1038,7 +1098,6 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
NodeElementArchetype.Factory.Text(20, 0, "Enabled"),
|
NodeElementArchetype.Factory.Text(20, 0, "Enabled"),
|
||||||
NodeElementArchetype.Factory.Text(0, 20, "Location"),
|
NodeElementArchetype.Factory.Text(0, 20, "Location"),
|
||||||
NodeElementArchetype.Factory.Enum(50, 20, 120, 2, typeof(MaterialTemplateInputsMapping)),
|
NodeElementArchetype.Factory.Enum(50, 20, 120, 2, typeof(MaterialTemplateInputsMapping)),
|
||||||
NodeElementArchetype.Factory.TextBox(0, 40, 300, 200, 0),
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new NodeArchetype
|
new NodeArchetype
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ Object::~Object()
|
|||||||
{
|
{
|
||||||
#if BUILD_DEBUG
|
#if BUILD_DEBUG
|
||||||
// Prevent removing object that is still reverenced by the removal service
|
// Prevent removing object that is still reverenced by the removal service
|
||||||
ASSERT(!ObjectsRemovalService::IsInPool(this));
|
//ASSERT(!ObjectsRemovalService::IsInPool(this));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace FlaxEngine.GUI
|
|||||||
{
|
{
|
||||||
base.OnSizeChanged();
|
base.OnSizeChanged();
|
||||||
|
|
||||||
// Refresh textblocks since thos emight depend on control size (eg. align right)
|
// Refresh textblocks since those might depend on control size (eg. align right)
|
||||||
UpdateTextBlocks();
|
UpdateTextBlocks();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user