Add project files.

This commit is contained in:
Ankitkumar Satapara
2026-04-17 22:31:58 +05:30
commit 21aaef6776
473 changed files with 50152 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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;
}
}