first commit

This commit is contained in:
Beyhan Oğur
2026-09-03 04:45:36 +03:00
commit d5f52cc3d3
1038 changed files with 169579 additions and 0 deletions
@@ -0,0 +1,125 @@
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Input;
using ClassicAssist.Annotations;
using ClassicAssist.UO.Data;
using ReactiveUI;
namespace ClassicAssist.UI.Views
{
/// <summary>
/// Interaction logic for HuePickerWindow.xaml
/// </summary>
public partial class HuePickerWindow : Window, INotifyPropertyChanged
{
private ObservableCollection<HuePickerEntry> _filteredItems = new ObservableCollection<HuePickerEntry>();
private string _filterText;
private ObservableCollection<HuePickerEntry> _items = new ObservableCollection<HuePickerEntry>();
private ICommand _okCommand;
private int _selectedHue = -1;
private HuePickerEntry _selectedItem;
public HuePickerWindow()
{
InitializeComponent();
for ( int i = 0; i < 3000; i++ )
{
Items.Add( new HuePickerEntry { Index = i + 1, Entry = Hues._lazyHueEntries.Value[i] } );
}
ApplyFilter( _filterText );
}
public ObservableCollection<HuePickerEntry> FilteredItems
{
get => _filteredItems;
set => SetProperty( ref _filteredItems, value );
}
public string FilterText
{
get => _filterText;
set
{
SetProperty( ref _filterText, value );
ApplyFilter( value );
}
}
public ObservableCollection<HuePickerEntry> Items
{
get => _items;
set => SetProperty( ref _items, value );
}
public ICommand OKCommand =>
_okCommand ?? ( _okCommand = ReactiveCommand.Create<HuePickerEntry>( OK,
this.WhenAnyValue( e => e.SelectedItem, selector: e => e != null ) ) );
public int SelectedHue
{
get => _selectedHue;
set => SetProperty( ref _selectedHue, value );
}
public HuePickerEntry SelectedItem
{
get => _selectedItem;
set => SetProperty( ref _selectedItem, value );
}
public event PropertyChangedEventHandler PropertyChanged;
private void ApplyFilter( string value )
{
FilteredItems = new ObservableCollection<HuePickerEntry>( Items.Where( i =>
string.IsNullOrEmpty( value ) || i.Index.ToString().StartsWith( value ) ) );
}
public static bool GetHue( out int hue )
{
HuePickerWindow window = new HuePickerWindow();
window.ShowDialog();
hue = window.SelectedHue;
return hue != -1;
}
private void OK( object obj )
{
if ( !( obj is HuePickerEntry entry ) )
{
return;
}
SelectedHue = entry.Index;
}
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged( [CallerMemberName] string propertyName = null )
{
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
}
// ReSharper disable once RedundantAssignment
public virtual void SetProperty<T>( ref T obj, T value, [CallerMemberName] string propertyName = "" )
{
obj = value;
OnPropertyChanged( propertyName );
CommandManager.InvalidateRequerySuggested();
}
public class HuePickerEntry
{
public HueEntry Entry { get; set; }
public string EntryName => Entry.Name ?? "Unknown";
public int Index { get; set; }
}
}
}