port from perforce
This commit is contained in:
44
intromat/Intromat/Views/ShaderFileView.xaml.cs
Normal file
44
intromat/Intromat/Views/ShaderFileView.xaml.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Windows;
|
||||
using System.Xml;
|
||||
using ICSharpCode.AvalonEdit.Highlighting;
|
||||
using ICSharpCode.AvalonEdit.Highlighting.Xshd;
|
||||
using Intromat.ViewModels;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Intromat.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for ShaderFileView.xaml
|
||||
/// </summary>
|
||||
public partial class ShaderFileView : IViewFor<ShaderFileViewModel>
|
||||
{
|
||||
static ShaderFileView()
|
||||
{
|
||||
using var s = Application.GetResourceStream(new Uri("Resources/HLSL-Mode.xshd", UriKind.Relative))!.Stream;
|
||||
using var reader = new XmlTextReader(s);
|
||||
HighlightingManager.Instance.RegisterHighlighting("HLSL", new string[0], HighlightingLoader.Load(reader, HighlightingManager.Instance));
|
||||
}
|
||||
|
||||
public ShaderFileView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.WhenActivated(d =>
|
||||
{
|
||||
var documentViewModel = ViewModel!;
|
||||
this.Bind(documentViewModel, vm => vm.Source, v => v._textEditor.Text).DisposeWith(d);
|
||||
});
|
||||
}
|
||||
|
||||
object? IViewFor.ViewModel
|
||||
{
|
||||
get => ViewModel;
|
||||
set => ViewModel = (ShaderFileViewModel?)value;
|
||||
}
|
||||
|
||||
public ShaderFileViewModel? ViewModel { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user