Add project files.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Markup;
|
||||
|
||||
namespace Nodify.StateMachine
|
||||
{
|
||||
public class BlackboardKeyEditorConverter : MarkupExtension, IMultiValueConverter
|
||||
{
|
||||
public bool CanChangeInputType { get; set; }
|
||||
|
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (values.Length >= 2 && values[0] is ICollection<BlackboardKeyViewModel> availableKeys && values[1] is BlackboardKeyViewModel target)
|
||||
{
|
||||
return new BlackboardKeyEditorViewModel
|
||||
{
|
||||
AvailableKeys = availableKeys,
|
||||
Target = target,
|
||||
IsEditing = values.Length >= 3 && values[2] is bool b && b,
|
||||
CanChangeInputType = CanChangeInputType && (target.Type != BlackboardKeyType.Object || target.CanChangeType),
|
||||
CanChangeKeyType = target.CanChangeType
|
||||
};
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override object ProvideValue(IServiceProvider serviceProvider) => this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace Nodify.StateMachine
|
||||
{
|
||||
public class ConnectorOffsetConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double offset = System.Convert.ToDouble(parameter);
|
||||
if (value is Size s)
|
||||
{
|
||||
return new Size((s.Width + offset) / 2, (s.Height + offset) / 2);
|
||||
}
|
||||
|
||||
return new Size(offset / 2, offset / 2);
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double offset = System.Convert.ToDouble(parameter);
|
||||
if (value is Size s)
|
||||
{
|
||||
return new Size((s.Width + offset) / 2, (s.Height + offset) / 2);
|
||||
}
|
||||
|
||||
return new Size(offset / 2, offset / 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Markup;
|
||||
|
||||
namespace Nodify.StateMachine
|
||||
{
|
||||
public class FilterBlackboardKeysConverter : MarkupExtension, IMultiValueConverter
|
||||
{
|
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (values.Length >= 2 && values[0] is IEnumerable<BlackboardKeyViewModel> keys && values[1] is BlackboardKeyType filter)
|
||||
{
|
||||
return keys.Where(k => k.Type == filter || filter == BlackboardKeyType.Object);
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override object ProvideValue(IServiceProvider serviceProvider) => this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user