Verify Views files against decompiled, extract embedded types
Fixed files: - SkiaImageButton.cs: Added SVG support with multi-path search - SkiaNavigationPage.cs: Added LinuxApplication.IsGtkMode check - SkiaRefreshView.cs: Added ICommand support (Command, CommandParameter) - SkiaTemplatedView.cs: Added missing using statements Extracted embedded types to separate files (matching decompiled pattern): - From SkiaMenuBar.cs: MenuBarItem, MenuItem, SkiaMenuFlyout, MenuItemClickedEventArgs - From SkiaNavigationPage.cs: NavigationEventArgs - From SkiaTabbedPage.cs: TabItem - From SkiaVisualStateManager.cs: SkiaVisualStateGroupList, SkiaVisualStateGroup, SkiaVisualState, SkiaVisualStateSetter - From SkiaSwipeView.cs: SwipeItem, SwipeStartedEventArgs, SwipeEndedEventArgs - From SkiaFlyoutPage.cs: FlyoutLayoutBehavior (already separate) - From SkiaIndicatorView.cs: IndicatorShape (already separate) - From SkiaBorder.cs: SkiaFrame - From SkiaCarouselView.cs: PositionChangedEventArgs - From SkiaCollectionView.cs: SkiaSelectionMode, ItemsLayoutOrientation - From SkiaContentPresenter.cs: LayoutAlignment Verified matching decompiled: - SkiaContextMenu.cs, SkiaFlexLayout.cs, SkiaGraphicsView.cs Build: 0 errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -79,153 +79,3 @@ public interface IInputMethodService
|
||||
/// </summary>
|
||||
event EventHandler? PreEditEnded;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents an input context that can receive IME input.
|
||||
/// </summary>
|
||||
public interface IInputContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the current text content.
|
||||
/// </summary>
|
||||
string Text { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the cursor position.
|
||||
/// </summary>
|
||||
int CursorPosition { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the selection start position.
|
||||
/// </summary>
|
||||
int SelectionStart { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the selection length.
|
||||
/// </summary>
|
||||
int SelectionLength { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Called when text is committed from the IME.
|
||||
/// </summary>
|
||||
/// <param name="text">The committed text.</param>
|
||||
void OnTextCommitted(string text);
|
||||
|
||||
/// <summary>
|
||||
/// Called when pre-edit text changes.
|
||||
/// </summary>
|
||||
/// <param name="preEditText">The current pre-edit text.</param>
|
||||
/// <param name="cursorPosition">Cursor position within pre-edit text.</param>
|
||||
void OnPreEditChanged(string preEditText, int cursorPosition);
|
||||
|
||||
/// <summary>
|
||||
/// Called when pre-edit mode ends.
|
||||
/// </summary>
|
||||
void OnPreEditEnded();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event args for text committed events.
|
||||
/// </summary>
|
||||
public class TextCommittedEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The committed text.
|
||||
/// </summary>
|
||||
public string Text { get; }
|
||||
|
||||
public TextCommittedEventArgs(string text)
|
||||
{
|
||||
Text = text;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event args for pre-edit changed events.
|
||||
/// </summary>
|
||||
public class PreEditChangedEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The current pre-edit text.
|
||||
/// </summary>
|
||||
public string PreEditText { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Cursor position within the pre-edit text.
|
||||
/// </summary>
|
||||
public int CursorPosition { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Formatting attributes for the pre-edit text.
|
||||
/// </summary>
|
||||
public IReadOnlyList<PreEditAttribute> Attributes { get; }
|
||||
|
||||
public PreEditChangedEventArgs(string preEditText, int cursorPosition, IReadOnlyList<PreEditAttribute>? attributes = null)
|
||||
{
|
||||
PreEditText = preEditText;
|
||||
CursorPosition = cursorPosition;
|
||||
Attributes = attributes ?? Array.Empty<PreEditAttribute>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents formatting for a portion of pre-edit text.
|
||||
/// </summary>
|
||||
public class PreEditAttribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Start position in the pre-edit text.
|
||||
/// </summary>
|
||||
public int Start { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Length of the attributed range.
|
||||
/// </summary>
|
||||
public int Length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The attribute type.
|
||||
/// </summary>
|
||||
public PreEditAttributeType Type { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Types of pre-edit text attributes.
|
||||
/// </summary>
|
||||
public enum PreEditAttributeType
|
||||
{
|
||||
/// <summary>
|
||||
/// Normal text (no special formatting).
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Underlined text (typical for composition).
|
||||
/// </summary>
|
||||
Underline,
|
||||
|
||||
/// <summary>
|
||||
/// Highlighted/selected text.
|
||||
/// </summary>
|
||||
Highlighted,
|
||||
|
||||
/// <summary>
|
||||
/// Reverse video (selected clause in some IMEs).
|
||||
/// </summary>
|
||||
Reverse
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Key modifiers for IME processing.
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum KeyModifiers
|
||||
{
|
||||
None = 0,
|
||||
Shift = 1 << 0,
|
||||
Control = 1 << 1,
|
||||
Alt = 1 << 2,
|
||||
Super = 1 << 3,
|
||||
CapsLock = 1 << 4,
|
||||
NumLock = 1 << 5
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user