diff --git a/Directory.Core.Build.props b/Directory.Core.Build.props index 90acdb61..4f24099a 100644 --- a/Directory.Core.Build.props +++ b/Directory.Core.Build.props @@ -11,7 +11,7 @@ true - true + true true \ No newline at end of file diff --git a/src/Consolonia.Core/Drawing/ConsoloniaRenderInterface.cs b/src/Consolonia.Core/Drawing/ConsoloniaRenderInterface.cs index 7f03c62e..998dfb1e 100644 --- a/src/Consolonia.Core/Drawing/ConsoloniaRenderInterface.cs +++ b/src/Consolonia.Core/Drawing/ConsoloniaRenderInterface.cs @@ -90,14 +90,12 @@ public IWriteableBitmapImpl LoadWriteableBitmap(Stream stream) throw new NotImplementedException(); } - IBitmapImpl IPlatformRenderInterface.LoadBitmapToWidth(Stream stream, int width, - BitmapInterpolationMode interpolationMode) + IBitmapImpl IPlatformRenderInterface.LoadBitmapToWidth(Stream stream, int width, BitmapInterpolationMode interpolationMode) { throw new NotImplementedException(); } - IBitmapImpl IPlatformRenderInterface.LoadBitmapToHeight(Stream stream, int height, - BitmapInterpolationMode interpolationMode) + IBitmapImpl IPlatformRenderInterface.LoadBitmapToHeight(Stream stream, int height, BitmapInterpolationMode interpolationMode) { throw new NotImplementedException(); } @@ -107,7 +105,7 @@ IBitmapImpl IPlatformRenderInterface.ResizeBitmap(IBitmapImpl bitmapImpl, PixelS { throw new NotImplementedException(); } - + public IBitmapImpl LoadBitmap( PixelFormat format, AlphaFormat alphaFormat, @@ -119,11 +117,10 @@ public IBitmapImpl LoadBitmap( throw new NotImplementedException(); } - public IGlyphRunImpl CreateGlyphRun(IGlyphTypeface glyphTypeface, double fontRenderingEmSize, - IReadOnlyList glyphInfos, + public IGlyphRunImpl CreateGlyphRun(IGlyphTypeface glyphTypeface, double fontRenderingEmSize, IReadOnlyList glyphInfos, Point baselineOrigin) { - return new GlyphRunImpl(glyphTypeface, glyphInfos, baselineOrigin); + return new GlyphRunImpl(glyphTypeface,glyphInfos,baselineOrigin); } public IPlatformRenderInterfaceContext CreateBackendContext(IPlatformGraphicsContext graphicsApiContext) diff --git a/src/Consolonia.Core/Drawing/DrawingContextImpl.cs b/src/Consolonia.Core/Drawing/DrawingContextImpl.cs index eca569f5..17e18ac6 100644 --- a/src/Consolonia.Core/Drawing/DrawingContextImpl.cs +++ b/src/Consolonia.Core/Drawing/DrawingContextImpl.cs @@ -170,7 +170,6 @@ public void DrawGlyphRun(IBrush foreground, IGlyphRunImpl glyphRun) ConsoloniaPlatform.RaiseNotSupported(17, glyphRun); throw new InvalidProgramException(); } - if (glyphRun.FontRenderingEmSize.IsNearlyEqual(0)) return; if (!glyphRun.FontRenderingEmSize.IsNearlyEqual(1)) { @@ -196,9 +195,9 @@ public void PushClip(Rect clip) public void PushClip(RoundedRect clip) { - if (clip.IsRounded) + if(clip.IsRounded) ConsoloniaPlatform.RaiseNotSupported(2); - + PushClip(clip.Rect); } @@ -352,7 +351,7 @@ void DrawPixelAndMoveHead(int count) } } } - + private void DrawStringInternal(IBrush foreground, string str, Point origin = new()) { if (foreground is not FourBitColorBrush { Mode: PixelBackgroundMode.Colored } consoleColorBrush) diff --git a/src/Consolonia.Core/Drawing/FourBitColorBrush.cs b/src/Consolonia.Core/Drawing/FourBitColorBrush.cs index bd523b82..0a9d5242 100644 --- a/src/Consolonia.Core/Drawing/FourBitColorBrush.cs +++ b/src/Consolonia.Core/Drawing/FourBitColorBrush.cs @@ -43,19 +43,19 @@ public ConsoleColor Color set => SetValue(ColorProperty, value); } - public double Opacity => 1; - public ITransform Transform => null; - public RelativePoint TransformOrigin => RelativePoint.TopLeft; - // ReSharper disable once UnusedMember.Global used by Avalonia // ReSharper disable once UnusedParameter.Global public IBrush ProvideValue(IServiceProvider _) { return this; } + + public double Opacity => 1; + public ITransform Transform => null; + public RelativePoint TransformOrigin => RelativePoint.TopLeft; } - public class FourBitBrushConverter : TypeConverter + public class FourBitBrushConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { @@ -66,11 +66,15 @@ public override object ConvertFrom( ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string s) - return Enum.TryParse(s, out ConsoleColor result) - ? result + { + return Enum.TryParse(s, out ConsoleColor result) + ? result : null; - + } + return null; } } + + } \ No newline at end of file diff --git a/src/Consolonia.Core/Drawing/RenderTarget.cs b/src/Consolonia.Core/Drawing/RenderTarget.cs index d4cacc4e..096edd7b 100644 --- a/src/Consolonia.Core/Drawing/RenderTarget.cs +++ b/src/Consolonia.Core/Drawing/RenderTarget.cs @@ -67,13 +67,6 @@ void IDrawingContextLayerImpl.Blit(IDrawingContextImpl context) bool IDrawingContextLayerImpl.CanBlit => true; - public IDrawingContextImpl CreateDrawingContext() - { - return new DrawingContextImpl(_consoleWindow, _bufferBuffer); - } - - public bool IsCorrupted => false; - private void OnResized(Size size, WindowResizeReason reason) { @@ -117,7 +110,7 @@ private void RenderToDevice() throw new InvalidOperationException("Caret is already shown"); caretPosition = new PixelBufferCoordinate(x, y); } - + /* todo: There is not IWindowImpl.Invalidate anymore. if (!_consoleWindow.InvalidatedRects.Any(rect => rect.ContainsExclusive(new Point(x, y)))) continue;*/ @@ -228,5 +221,12 @@ public void Flush() _stringBuilder.Clear(); } } + + public IDrawingContextImpl CreateDrawingContext() + { + return new DrawingContextImpl(_consoleWindow, _bufferBuffer); + } + + public bool IsCorrupted => false; } } \ No newline at end of file diff --git a/src/Consolonia.Core/Infrastructure/ArrowsAndKeyboardNavigationHandler.cs b/src/Consolonia.Core/Infrastructure/ArrowsAndKeyboardNavigationHandler.cs index 4beb2077..7cd82e27 100644 --- a/src/Consolonia.Core/Infrastructure/ArrowsAndKeyboardNavigationHandler.cs +++ b/src/Consolonia.Core/Infrastructure/ArrowsAndKeyboardNavigationHandler.cs @@ -10,11 +10,11 @@ namespace Consolonia.Core.Infrastructure { public class ArrowsAndKeyboardNavigationHandler : IKeyboardNavigationHandler { - private readonly IKeyboardNavigationHandler _keyboardNavigationHandler; - //todo: check XTFocus https://github.com/jinek/Consolonia/issues/105#issuecomment-2089015880 private IInputRoot _owner; + private readonly IKeyboardNavigationHandler _keyboardNavigationHandler; + public ArrowsAndKeyboardNavigationHandler(IKeyboardNavigationHandler keyboardNavigationHandler) { _keyboardNavigationHandler = keyboardNavigationHandler; diff --git a/src/Consolonia.Core/Infrastructure/ConsoleWindow.cs b/src/Consolonia.Core/Infrastructure/ConsoleWindow.cs index e5f9c148..7325cffe 100644 --- a/src/Consolonia.Core/Infrastructure/ConsoleWindow.cs +++ b/src/Consolonia.Core/Infrastructure/ConsoleWindow.cs @@ -31,8 +31,6 @@ public ConsoleWindow() Console.FocusEvent += ConsoleOnFocusEvent; } - private IMouseDevice MouseDevice { get; } - public void Dispose() { Closed?.Invoke(); @@ -42,7 +40,7 @@ public void Dispose() Console.FocusEvent -= ConsoleOnFocusEvent; Console.Dispose(); } - + public void SetInputRoot(IInputRoot inputRoot) { _inputRoot = inputRoot; @@ -78,7 +76,7 @@ public void SetFrameThemeVariant(PlatformThemeVariant themeVariant) { //todo: } - + public Size ClientSize { get @@ -106,6 +104,7 @@ public Size ClientSize public Compositor Compositor { get; } = new(null); public Action Closed { get; set; } public Action LostFocus { get; set; } + private IMouseDevice MouseDevice { get; } public WindowTransparencyLevel TransparencyLevel => WindowTransparencyLevel.None; @@ -241,14 +240,6 @@ public void SetExtendClientAreaTitleBarHeightHint(double titleBarHeight) // ReSharper disable once UnassignedGetOnlyAutoProperty todo: what is this property public Thickness OffScreenMargin { get; } - public object TryGetFeature(Type featureType) - { - if (featureType == typeof(ISystemNavigationManagerImpl)) - return null; - if (featureType == typeof(ITextInputMethodImpl)) return null; - throw new NotImplementedException("Consider this"); - } - private void ConsoleOnMouseEvent(RawPointerEventType type, Point point, Vector? wheelDelta, RawInputModifiers modifiers) { @@ -342,5 +333,16 @@ await Dispatcher.UIThread.InvokeAsync(() => }, DispatcherPriority.Input); } } + + public object TryGetFeature(Type featureType) + { + if (featureType == typeof(ISystemNavigationManagerImpl)) + return null; + if (featureType == typeof(ITextInputMethodImpl)) + { + return null; + } + throw new NotImplementedException("Consider this"); + } } } \ No newline at end of file diff --git a/src/Consolonia.Core/Infrastructure/ConsoloniaPlatform.cs b/src/Consolonia.Core/Infrastructure/ConsoloniaPlatform.cs index d35f111e..0026ec6b 100644 --- a/src/Consolonia.Core/Infrastructure/ConsoloniaPlatform.cs +++ b/src/Consolonia.Core/Infrastructure/ConsoloniaPlatform.cs @@ -41,7 +41,7 @@ public void Initialize() .Bind().ToConstant(new UiThreadRenderTimer(120)) .Bind().ToConstant(new ManagedDispatcherImpl(null)) /*.Bind().ToConstant(new SleepLoopRenderTimer(120))*/ - /*SleepLoopRenderTimer : IRenderTimer*/ + /*SleepLoopRenderTimer : IRenderTimer*/ /*.Bind().ToConstant(new RenderLoop()) todo: is internal now*/ .Bind().ToConstant(new PlatformHotkeyConfiguration(KeyModifiers.Control)) .Bind().ToConstant(new ConsoleKeyboardDevice()) diff --git a/src/Consolonia.Core/Infrastructure/ExceptionSink.cs b/src/Consolonia.Core/Infrastructure/ExceptionSink.cs index 717fdf66..ba5bf7bb 100644 --- a/src/Consolonia.Core/Infrastructure/ExceptionSink.cs +++ b/src/Consolonia.Core/Infrastructure/ExceptionSink.cs @@ -16,7 +16,9 @@ public bool IsEnabled(LogEventLevel level, string area) public void Log(LogEventLevel level, string area, object source, string messageTemplate) { Log(level, area, source, messageTemplate, Array.Empty()); - } // ReSharper disable UnusedMember.Global + } + + // ReSharper disable UnusedMember.Global public void Log(LogEventLevel level, string area, object source, string messageTemplate, T0 propertyValue0) { Log(level, area, source, messageTemplate, new object[] { propertyValue0 }); diff --git a/src/Consolonia.Core/Infrastructure/InputLessDefaultNetConsole.cs b/src/Consolonia.Core/Infrastructure/InputLessDefaultNetConsole.cs index 38f6a210..d6e54536 100644 --- a/src/Consolonia.Core/Infrastructure/InputLessDefaultNetConsole.cs +++ b/src/Consolonia.Core/Infrastructure/InputLessDefaultNetConsole.cs @@ -83,7 +83,9 @@ public void Print(PixelBufferCoordinate bufferPoint, ConsoleColor backgroundColo if (str.Any( c => ConsoleText.IsWideChar(c) && char.IsLetterOrDigit(c) /*todo: https://github.com/SlimeNull/NullLib.ConsoleEx/issues/2*/)) + { throw new NotSupportedException("Is not supposed to be rendered"); + } Console.Write(str); diff --git a/src/Consolonia.Core/InternalHelpers/CommonInternalHelper.cs b/src/Consolonia.Core/InternalHelpers/CommonInternalHelper.cs index dc15318f..276c8836 100644 --- a/src/Consolonia.Core/InternalHelpers/CommonInternalHelper.cs +++ b/src/Consolonia.Core/InternalHelpers/CommonInternalHelper.cs @@ -6,8 +6,7 @@ namespace Consolonia.Core.InternalHelpers internal static class CommonInternalHelper { public static bool IsNearlyEqual(this double value, double compareTo) - { - //todo: strange implementation for this name + {//todo: strange implementation for this name return value.CompareTo(compareTo) == 0; } diff --git a/src/Consolonia.Core/Styles/ResourceIncludeBase.cs b/src/Consolonia.Core/Styles/ResourceIncludeBase.cs index 0b41173d..63d13d8e 100644 --- a/src/Consolonia.Core/Styles/ResourceIncludeBase.cs +++ b/src/Consolonia.Core/Styles/ResourceIncludeBase.cs @@ -46,12 +46,11 @@ public IStyle Loaded return _loaded[0]; } } - public bool TryGetResource(object key, ThemeVariant theme, out object value) { if (!_isLoading && Loaded is IResourceProvider p) return p.TryGetResource(key, theme, out value); - + value = null; return false; } diff --git a/src/Consolonia.Core/Text/FontManagerImpl.cs b/src/Consolonia.Core/Text/FontManagerImpl.cs index c3c53874..d93344f3 100644 --- a/src/Consolonia.Core/Text/FontManagerImpl.cs +++ b/src/Consolonia.Core/Text/FontManagerImpl.cs @@ -11,6 +11,11 @@ namespace Consolonia.Core.Text /// internal class FontManagerImpl : IFontManagerImpl { + public static string GetTheOnlyFontFamilyName() + { + return "ConsoleDefault(F7D6533C-AC9D-4C4A-884F-7719A9B5DC0C)"; + } + public string GetDefaultFontFamilyName() { return GetTheOnlyFontFamilyName(); @@ -18,11 +23,10 @@ public string GetDefaultFontFamilyName() string[] IFontManagerImpl.GetInstalledFontFamilyNames(bool checkForUpdates) { - return new[] { GetTheOnlyFontFamilyName() }; + return new []{GetTheOnlyFontFamilyName()}; } - public bool TryMatchCharacter(int codepoint, FontStyle fontStyle, FontWeight fontWeight, - FontStretch fontStretch, + public bool TryMatchCharacter(int codepoint, FontStyle fontStyle, FontWeight fontWeight, FontStretch fontStretch, CultureInfo culture, out Typeface typeface) { throw new NotImplementedException(); @@ -40,10 +44,5 @@ public bool TryCreateGlyphTypeface(Stream stream, out IGlyphTypeface glyphTypefa { throw new NotImplementedException(); } - - public static string GetTheOnlyFontFamilyName() - { - return "ConsoleDefault(F7D6533C-AC9D-4C4A-884F-7719A9B5DC0C)"; - } } } \ No newline at end of file diff --git a/src/Consolonia.Core/Text/GlyphRunImpl.cs b/src/Consolonia.Core/Text/GlyphRunImpl.cs index 7c141569..93b8fc08 100644 --- a/src/Consolonia.Core/Text/GlyphRunImpl.cs +++ b/src/Consolonia.Core/Text/GlyphRunImpl.cs @@ -20,10 +20,9 @@ public GlyphRunImpl(IGlyphTypeface glyphTypeface, IReadOnlyList glyph new Size(glyphInfos.Sum(info => info.GlyphAdvance), FontRenderingEmSize)); } - public ushort[] GlyphIndices { get; } - public void Dispose() { + } public IReadOnlyList GetIntersections(float lowerLimit, float upperLimit) @@ -36,5 +35,6 @@ public IReadOnlyList GetIntersections(float lowerLimit, float upperLimit) public double FontRenderingEmSize { get; } public Point BaselineOrigin { get; } public Rect Bounds { get; } + public ushort[] GlyphIndices { get; } } } \ No newline at end of file diff --git a/src/Consolonia.Core/Text/TextShaper.cs b/src/Consolonia.Core/Text/TextShaper.cs index fae6321a..9df478e6 100644 --- a/src/Consolonia.Core/Text/TextShaper.cs +++ b/src/Consolonia.Core/Text/TextShaper.cs @@ -12,11 +12,14 @@ public class TextShaper : ITextShaperImpl public ShapedBuffer ShapeText(ReadOnlyMemory text, TextShaperOptions options) { var glyphInfos = Convert(text.Span.ToString()); - + var shapedBuffer = new ShapedBuffer(text, glyphInfos.Length, new GlyphTypeface(), 1, 0 /*todo: must be 1 for right to left?*/); - - for (int i = 0; i < shapedBuffer.Length; i++) shapedBuffer[i] = glyphInfos[i]; + + for (int i = 0; i < shapedBuffer.Length; i++) + { + shapedBuffer[i] = glyphInfos[i]; + } return shapedBuffer; } @@ -27,8 +30,8 @@ public static GlyphInfo[] Convert(string str) // ReSharper disable once InvertIf if (str.Any( - c => ConsoleText.IsWideChar(c) && - char.IsLetterOrDigit(c) /*todo: https://github.com/SlimeNull/NullLib.ConsoleEx/issues/2*/)) + c => ConsoleText.IsWideChar(c) && + char.IsLetterOrDigit(c) /*todo: https://github.com/SlimeNull/NullLib.ConsoleEx/issues/2*/)) { StringBuilder stringBuilder = new(); foreach (char c in str) diff --git a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryAnimatedLines.axaml.cs b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryAnimatedLines.axaml.cs index 88aa351c..507833ea 100644 --- a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryAnimatedLines.axaml.cs +++ b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryAnimatedLines.axaml.cs @@ -9,7 +9,7 @@ namespace Consolonia.Gallery.Gallery.GalleryViews { // ReSharper disable once UnusedType.Global - public class GalleryAnimatedLines : UserControl + public partial class GalleryAnimatedLines : UserControl { public GalleryAnimatedLines() { diff --git a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryButton.axaml.cs b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryButton.axaml.cs index 59e3c9f9..dfe84a0d 100644 --- a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryButton.axaml.cs +++ b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryButton.axaml.cs @@ -4,7 +4,7 @@ namespace Consolonia.Gallery.Gallery.GalleryViews { [GalleryOrder(30)] - public class GalleryButton : UserControl + public partial class GalleryButton : UserControl { public GalleryButton() { diff --git a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendar.axaml.cs b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendar.axaml.cs index 9a006c49..b4e2ca33 100644 --- a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendar.axaml.cs +++ b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendar.axaml.cs @@ -5,7 +5,7 @@ namespace Consolonia.Gallery.Gallery.GalleryViews { [GalleryOrder(30)] - public class GalleryCalendar : UserControl + public partial class GalleryCalendar : UserControl { public GalleryCalendar() { diff --git a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendarPicker.axaml.cs b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendarPicker.axaml.cs index 50b7cbd7..112474c1 100644 --- a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendarPicker.axaml.cs +++ b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCalendarPicker.axaml.cs @@ -8,7 +8,7 @@ namespace Consolonia.Gallery.Gallery.GalleryViews { [GalleryOrder(35)] - public class GalleryCalendarPicker : UserControl + public partial class GalleryCalendarPicker : UserControl { public GalleryCalendarPicker() { @@ -53,7 +53,7 @@ public DateTime? ValidatedDateExample } public event PropertyChangedEventHandler PropertyChanged; - + private void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); diff --git a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCheckBox.axaml.cs b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCheckBox.axaml.cs index 7de368ba..425d38b2 100644 --- a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCheckBox.axaml.cs +++ b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryCheckBox.axaml.cs @@ -4,7 +4,7 @@ namespace Consolonia.Gallery.Gallery.GalleryViews { [GalleryOrder(40)] - public class GalleryCheckBox : UserControl + public partial class GalleryCheckBox : UserControl { public GalleryCheckBox() { diff --git a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryComboBox.axaml b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryComboBox.axaml index df58d9f5..f727ca5d 100644 --- a/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryComboBox.axaml +++ b/src/Consolonia.Gallery/Gallery/GalleryViews/GalleryComboBox.axaml @@ -1,5 +1,6 @@