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:
@@ -425,113 +425,3 @@ public class NotificationService
|
||||
return arg?.Replace("\\", "\\\\").Replace("\"", "\\\"") ?? "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Options for displaying a notification.
|
||||
/// </summary>
|
||||
public class NotificationOptions
|
||||
{
|
||||
public string Title { get; set; } = "";
|
||||
public string Message { get; set; } = "";
|
||||
public string? IconPath { get; set; }
|
||||
public string? IconName { get; set; } // Standard icon name like "dialog-information"
|
||||
public NotificationUrgency Urgency { get; set; } = NotificationUrgency.Normal;
|
||||
public int ExpireTimeMs { get; set; } = 5000; // 5 seconds default
|
||||
public string? Category { get; set; } // e.g., "email", "im", "transfer"
|
||||
public bool IsTransient { get; set; }
|
||||
public Dictionary<string, string>? Actions { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Notification urgency level.
|
||||
/// </summary>
|
||||
public enum NotificationUrgency
|
||||
{
|
||||
Low,
|
||||
Normal,
|
||||
Critical
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reason a notification was closed.
|
||||
/// </summary>
|
||||
public enum NotificationCloseReason
|
||||
{
|
||||
Expired = 1,
|
||||
Dismissed = 2,
|
||||
Closed = 3,
|
||||
Undefined = 4
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internal context for tracking active notifications.
|
||||
/// </summary>
|
||||
internal class NotificationContext
|
||||
{
|
||||
public string? Tag { get; set; }
|
||||
public Dictionary<string, Action?>? ActionCallbacks { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event args for notification action events.
|
||||
/// </summary>
|
||||
public class NotificationActionEventArgs : EventArgs
|
||||
{
|
||||
public uint NotificationId { get; }
|
||||
public string ActionKey { get; }
|
||||
public string? Tag { get; }
|
||||
|
||||
public NotificationActionEventArgs(uint notificationId, string actionKey, string? tag)
|
||||
{
|
||||
NotificationId = notificationId;
|
||||
ActionKey = actionKey;
|
||||
Tag = tag;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event args for notification closed events.
|
||||
/// </summary>
|
||||
public class NotificationClosedEventArgs : EventArgs
|
||||
{
|
||||
public uint NotificationId { get; }
|
||||
public NotificationCloseReason Reason { get; }
|
||||
public string? Tag { get; }
|
||||
|
||||
public NotificationClosedEventArgs(uint notificationId, NotificationCloseReason reason, string? tag)
|
||||
{
|
||||
NotificationId = notificationId;
|
||||
Reason = reason;
|
||||
Tag = tag;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines an action button for a notification.
|
||||
/// </summary>
|
||||
public class NotificationAction
|
||||
{
|
||||
/// <summary>
|
||||
/// Internal action key (not displayed).
|
||||
/// </summary>
|
||||
public string Key { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Display label for the action button.
|
||||
/// </summary>
|
||||
public string Label { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Callback to invoke when the action is clicked.
|
||||
/// </summary>
|
||||
public Action? Callback { get; set; }
|
||||
|
||||
public NotificationAction() { }
|
||||
|
||||
public NotificationAction(string key, string label, Action? callback = null)
|
||||
{
|
||||
Key = key;
|
||||
Label = label;
|
||||
Callback = callback;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user