Skip to content

Commit 47bd4d9

Browse files
authored
[PencilKit] Implement Xcode 16.0 beta 1-6 changes. (#21148)
Note: there were no changes in beta 4, beta 5 or beta 6.
1 parent e714ce4 commit 47bd4d9

File tree

6 files changed

+232
-208
lines changed

6 files changed

+232
-208
lines changed

src/pencilkit.cs

Lines changed: 190 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
using UIColor = AppKit.NSColor;
1414
using UIImage = AppKit.NSImage;
1515

16+
using UIBarButtonItem = Foundation.NSObject;
1617
using UIScrollViewDelegate = Foundation.NSObjectProtocol;
1718
using UIScrollView = Foundation.NSObject;
1819
using UIGestureRecognizer = Foundation.NSObject;
1920
using UIResponder = Foundation.NSObject;
2021
using UIView = Foundation.NSObject;
22+
using UIViewController = Foundation.NSObject;
2123
using UIWindow = Foundation.NSObject;
2224
using UIUserInterfaceStyle = Foundation.NSObject;
2325
using BezierPath = AppKit.NSBezierPath;
@@ -131,7 +133,6 @@ interface PKCanvasView : PKToolPickerObserver {
131133
// [Export ("delegate", ArgumentSemantic.Weak), NullAllowed]
132134
// NSObject WeakDelegate { get; set; }
133135

134-
[Unavailable (PlatformName.MacCatalyst), Advice ("This API is not available when using Catalyst on macOS.")]
135136
[Wrap ("WeakDelegate"), NullAllowed, New]
136137
IPKCanvasViewDelegate Delegate { get; set; }
137138

@@ -160,6 +161,14 @@ interface PKCanvasView : PKToolPickerObserver {
160161
[iOS (17, 0), MacCatalyst (17, 0)]
161162
[Export ("maximumSupportedContentVersion", ArgumentSemantic.Assign)]
162163
PKContentVersion MaximumSupportedContentVersion { get; set; }
164+
165+
[iOS (18, 0), MacCatalyst (18, 0)]
166+
[Export ("drawingEnabled")]
167+
bool DrawingEnabled {
168+
[Bind ("isDrawingEnabled")]
169+
get;
170+
set;
171+
}
163172
}
164173

165174
[iOS (13, 0)]
@@ -323,6 +332,8 @@ interface IPKToolPickerObserver { }
323332
[Protocol]
324333
interface PKToolPickerObserver {
325334

335+
[Deprecated (PlatformName.iOS, 18, 0, message: "Use 'SelectedToolItemDidChange' instead.")]
336+
[Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use 'SelectedToolItemDidChange' instead.")]
326337
[Export ("toolPickerSelectedToolDidChange:")]
327338
void SelectedToolDidChange (PKToolPicker toolPicker);
328339

@@ -334,6 +345,10 @@ interface PKToolPickerObserver {
334345

335346
[Export ("toolPickerFramesObscuredDidChange:")]
336347
void FramesObscuredDidChange (PKToolPicker toolPicker);
348+
349+
[iOS (18, 0), MacCatalyst (18, 0)]
350+
[Export ("toolPickerSelectedToolItemDidChange:")]
351+
void SelectedToolItemDidChange (PKToolPicker toolPicker);
337352
}
338353

339354
[iOS (13, 0), NoMac]
@@ -347,6 +362,10 @@ interface PKToolPicker {
347362
[Export ("init")]
348363
NativeHandle Constructor ();
349364

365+
[iOS (18, 0), MacCatalyst (18, 0)]
366+
[Export ("initWithToolItems:")]
367+
NativeHandle Constructor (PKToolPickerItem [] items);
368+
350369
[Export ("addObserver:")]
351370
void AddObserver (IPKToolPickerObserver observer);
352371

@@ -356,6 +375,8 @@ interface PKToolPicker {
356375
[Export ("setVisible:forFirstResponder:")]
357376
void SetVisible (bool visible, UIResponder responder);
358377

378+
[Deprecated (PlatformName.iOS, 18, 0, message: "Use 'SelectedToolItem' instead.")]
379+
[Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use 'SelectedToolItem' instead.")]
359380
[Export ("selectedTool", ArgumentSemantic.Strong)]
360381
PKTool SelectedTool { get; set; }
361382

@@ -395,6 +416,31 @@ interface PKToolPicker {
395416
[iOS (17, 0), MacCatalyst (17, 0)]
396417
[Export ("maximumSupportedContentVersion", ArgumentSemantic.Assign)]
397418
PKContentVersion MaximumSupportedContentVersion { get; set; }
419+
420+
[iOS (18, 0), MacCatalyst (18, 0)]
421+
[Export ("selectedToolItem", ArgumentSemantic.Strong)]
422+
PKToolPickerItem SelectedToolItem { get; set; }
423+
424+
[iOS (18, 0), MacCatalyst (18, 0)]
425+
[Export ("selectedToolItemIdentifier", ArgumentSemantic.Copy)]
426+
string SelectedToolItemIdentifier { get; set; }
427+
428+
[iOS (18, 0), MacCatalyst (18, 0)]
429+
[Export ("toolItems")]
430+
PKToolPickerItem [] ToolItems { get; }
431+
432+
[iOS (18, 0), MacCatalyst (18, 0)]
433+
[Export ("accessoryItem", ArgumentSemantic.Strong), NullAllowed]
434+
UIBarButtonItem AccessoryItem { get; set; }
435+
436+
[iOS (18, 0), MacCatalyst (18, 0)]
437+
[Export ("delegate", ArgumentSemantic.Weak), NullAllowed]
438+
NSObject WeakDelegate { get; set; }
439+
440+
[iOS (18, 0), MacCatalyst (18, 0)]
441+
[Wrap ("WeakDelegate"), NullAllowed]
442+
IPKToolPickerDelegate Delegate { get; set; }
443+
398444
}
399445

400446
[Mac (11, 0), iOS (14, 0)]
@@ -563,4 +609,147 @@ interface PKStrokePoint : NSCopying {
563609
[Export ("secondaryScale")]
564610
nfloat SecondaryScale { get; }
565611
}
612+
613+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
614+
[BaseType (typeof (PKToolPickerItem))]
615+
[DisableDefaultCtor]
616+
interface PKToolPickerCustomItem {
617+
[Export ("initWithConfiguration:")]
618+
NativeHandle Constructor (PKToolPickerCustomItemConfiguration configuration);
619+
620+
[Export ("configuration")]
621+
PKToolPickerCustomItemConfiguration Configuration { get; }
622+
623+
[Export ("color", ArgumentSemantic.Strong)]
624+
UIColor Color { get; set; }
625+
626+
[Export ("allowsColorSelection", ArgumentSemantic.Assign)]
627+
bool AllowsColorSelection { get; set; }
628+
629+
[Export ("width", ArgumentSemantic.Assign)]
630+
nfloat Width { get; set; }
631+
632+
[Export ("reloadImage")]
633+
void ReloadImage ();
634+
}
635+
636+
delegate UIImage PKToolPickerCustomItemConfigurationImageProviderCallback (PKToolPickerCustomItem toolPickerItem);
637+
delegate UIViewController PKToolPickerCustomItemConfigurationViewControllerProvider (PKToolPickerCustomItem toolPickerItem);
638+
639+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
640+
[BaseType (typeof (NSObject))]
641+
[DisableDefaultCtor]
642+
interface PKToolPickerCustomItemConfiguration : NSCopying {
643+
[Export ("initWithIdentifier:name:")]
644+
NativeHandle Constructor (string identifier, string name);
645+
646+
[Export ("identifier", ArgumentSemantic.Copy)]
647+
string Identifier { get; set; }
648+
649+
[Export ("name", ArgumentSemantic.Copy)]
650+
string Name { get; set; }
651+
652+
[Export ("imageProvider", ArgumentSemantic.Copy), NullAllowed]
653+
PKToolPickerCustomItemConfigurationImageProviderCallback ImageProvider { get; set; }
654+
655+
[Export ("viewControllerProvider", ArgumentSemantic.Copy), NullAllowed]
656+
PKToolPickerCustomItemConfigurationViewControllerProvider ViewControllerProvider { get; set; }
657+
658+
[Export ("defaultWidth", ArgumentSemantic.Assign)]
659+
nfloat DefaultWidth { get; set; }
660+
661+
[Export ("widthVariants", ArgumentSemantic.Copy)]
662+
NSDictionary<NSNumber, UIImage> WidthVariants { get; set; }
663+
664+
[Export ("defaultColor", ArgumentSemantic.Strong)]
665+
UIColor DefaultColor { get; set; }
666+
667+
[Export ("allowsColorSelection", ArgumentSemantic.Assign)]
668+
bool AllowsColorSelection { get; set; }
669+
670+
[Export ("toolAttributeControls", ArgumentSemantic.Assign)]
671+
PKToolPickerCustomItemControlOptions ToolAttributeControls { get; set; }
672+
}
673+
674+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
675+
[BaseType (typeof (PKToolPickerItem))]
676+
[DisableDefaultCtor]
677+
interface PKToolPickerEraserItem {
678+
[Export ("initWithEraserType:")]
679+
NativeHandle Constructor (PKEraserType eraserType);
680+
681+
[Export ("initWithEraserType:width:")]
682+
NativeHandle Constructor (PKEraserType eraserType, nfloat width);
683+
684+
[Export ("eraserTool")]
685+
PKEraserTool EraserTool { get; }
686+
}
687+
688+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
689+
[BaseType (typeof (PKToolPickerItem))]
690+
[DisableDefaultCtor]
691+
interface PKToolPickerInkingItem {
692+
[Export ("initWithInkType:")]
693+
NativeHandle Constructor (PKInkType inkType);
694+
695+
[Export ("initWithInkType:color:")]
696+
NativeHandle Constructor (PKInkType inkType, UIColor color);
697+
698+
[Export ("initWithInkType:width:")]
699+
NativeHandle Constructor (PKInkType inkType, nfloat width);
700+
701+
[Export ("initWithInkType:color:width:")]
702+
NativeHandle Constructor (PKInkType inkType, UIColor color, nfloat width);
703+
704+
[Export ("initWithInkType:color:width:identifier:")]
705+
NativeHandle Constructor (PKInkType inkType, UIColor color, nfloat width, [NullAllowed] string identifier);
706+
707+
[Export ("inkingTool")]
708+
PKInkingTool InkingTool { get; }
709+
710+
[Export ("allowsColorSelection", ArgumentSemantic.Assign)]
711+
bool AllowsColorSelection { get; set; }
712+
}
713+
714+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
715+
[BaseType (typeof (NSObject))]
716+
[DisableDefaultCtor]
717+
interface PKToolPickerItem : NSCopying {
718+
[Export ("identifier")]
719+
string Identifier { get; }
720+
}
721+
722+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
723+
[BaseType (typeof (PKToolPickerItem))]
724+
interface PKToolPickerLassoItem {
725+
[Export ("lassoTool")]
726+
PKLassoTool LassoTool { get; }
727+
}
728+
729+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
730+
[BaseType (typeof (PKToolPickerItem))]
731+
interface PKToolPickerRulerItem {
732+
}
733+
734+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
735+
[BaseType (typeof (PKToolPickerItem))]
736+
interface PKToolPickerScribbleItem {
737+
}
738+
739+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
740+
[Protocol (BackwardsCompatibleCodeGeneration = false), Model]
741+
[BaseType (typeof (NSObject))]
742+
interface PKToolPickerDelegate {
743+
}
744+
745+
interface IPKToolPickerDelegate { }
746+
747+
[iOS (18, 0), MacCatalyst (18, 0), NoMac]
748+
[Native]
749+
[Flags]
750+
enum PKToolPickerCustomItemControlOptions : ulong {
751+
None = 0,
752+
Width = 1 << 0,
753+
Opacity = 1 << 1
754+
}
566755
}

tests/cecil-tests/Documentation.KnownFailures.txt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16526,6 +16526,9 @@ F:PencilKit.PKInkType.Monoline
1652616526
F:PencilKit.PKInkType.Pen
1652716527
F:PencilKit.PKInkType.Pencil
1652816528
F:PencilKit.PKInkType.Watercolor
16529+
F:PencilKit.PKToolPickerCustomItemControlOptions.None
16530+
F:PencilKit.PKToolPickerCustomItemControlOptions.Opacity
16531+
F:PencilKit.PKToolPickerCustomItemControlOptions.Width
1652916532
F:Phase.PhaseAssetError.AlreadyExists
1653016533
F:Phase.PhaseAssetError.BadParameters
1653116534
F:Phase.PhaseAssetError.FailedToLoad
@@ -44577,11 +44580,13 @@ M:PencilKit.IPKCanvasViewDelegate.EndUsingTool(PencilKit.PKCanvasView)
4457744580
M:PencilKit.IPKToolPickerObserver.FramesObscuredDidChange(PencilKit.PKToolPicker)
4457844581
M:PencilKit.IPKToolPickerObserver.IsRulerActiveDidChange(PencilKit.PKToolPicker)
4457944582
M:PencilKit.IPKToolPickerObserver.SelectedToolDidChange(PencilKit.PKToolPicker)
44583+
M:PencilKit.IPKToolPickerObserver.SelectedToolItemDidChange(PencilKit.PKToolPicker)
4458044584
M:PencilKit.IPKToolPickerObserver.VisibilityDidChange(PencilKit.PKToolPicker)
4458144585
M:PencilKit.PKCanvasView.FramesObscuredDidChange(PencilKit.PKToolPicker)
4458244586
M:PencilKit.PKCanvasView.IsRulerActiveDidChange(PencilKit.PKToolPicker)
4458344587
M:PencilKit.PKCanvasView.PKCanvasViewAppearance.#ctor(System.IntPtr)
4458444588
M:PencilKit.PKCanvasView.SelectedToolDidChange(PencilKit.PKToolPicker)
44589+
M:PencilKit.PKCanvasView.SelectedToolItemDidChange(PencilKit.PKToolPicker)
4458544590
M:PencilKit.PKCanvasView.VisibilityDidChange(PencilKit.PKToolPicker)
4458644591
M:PencilKit.PKCanvasViewDelegate_Extensions.DidBeginUsingTool(PencilKit.IPKCanvasViewDelegate,PencilKit.PKCanvasView)
4458744592
M:PencilKit.PKCanvasViewDelegate_Extensions.DidFinishRendering(PencilKit.IPKCanvasViewDelegate,PencilKit.PKCanvasView)
@@ -44652,14 +44657,23 @@ M:PencilKit.PKStrokePoint.#ctor(CoreGraphics.CGPoint,System.Double,CoreGraphics.
4465244657
M:PencilKit.PKStrokePoint.Copy(Foundation.NSZone)
4465344658
M:PencilKit.PKTool.Copy(Foundation.NSZone)
4465444659
M:PencilKit.PKToolPicker.#ctor
44660+
M:PencilKit.PKToolPicker.#ctor(PencilKit.PKToolPickerItem[])
4465544661
M:PencilKit.PKToolPicker.AddObserver(PencilKit.IPKToolPickerObserver)
44662+
M:PencilKit.PKToolPicker.Dispose(System.Boolean)
4465644663
M:PencilKit.PKToolPicker.GetFrameObscured(UIKit.UIView)
4465744664
M:PencilKit.PKToolPicker.GetSharedToolPicker(UIKit.UIWindow)
4465844665
M:PencilKit.PKToolPicker.RemoveObserver(PencilKit.IPKToolPickerObserver)
4465944666
M:PencilKit.PKToolPicker.SetVisible(System.Boolean,UIKit.UIResponder)
44667+
M:PencilKit.PKToolPickerCustomItem.ReloadImage
44668+
M:PencilKit.PKToolPickerCustomItemConfiguration.Copy(Foundation.NSZone)
44669+
M:PencilKit.PKToolPickerInkingItem.#ctor(PencilKit.PKInkType,System.Runtime.InteropServices.NFloat)
44670+
M:PencilKit.PKToolPickerInkingItem.#ctor(PencilKit.PKInkType,UIKit.UIColor)
44671+
M:PencilKit.PKToolPickerInkingItem.#ctor(PencilKit.PKInkType)
44672+
M:PencilKit.PKToolPickerItem.Copy(Foundation.NSZone)
4466044673
M:PencilKit.PKToolPickerObserver_Extensions.FramesObscuredDidChange(PencilKit.IPKToolPickerObserver,PencilKit.PKToolPicker)
4466144674
M:PencilKit.PKToolPickerObserver_Extensions.IsRulerActiveDidChange(PencilKit.IPKToolPickerObserver,PencilKit.PKToolPicker)
4466244675
M:PencilKit.PKToolPickerObserver_Extensions.SelectedToolDidChange(PencilKit.IPKToolPickerObserver,PencilKit.PKToolPicker)
44676+
M:PencilKit.PKToolPickerObserver_Extensions.SelectedToolItemDidChange(PencilKit.IPKToolPickerObserver,PencilKit.PKToolPicker)
4466344677
M:PencilKit.PKToolPickerObserver_Extensions.VisibilityDidChange(PencilKit.IPKToolPickerObserver,PencilKit.PKToolPicker)
4466444678
M:Phase.PhaseAmbientMixerDefinition.#ctor(AVFoundation.AVAudioChannelLayout,System.Numerics.Quaternion,Foundation.NSString)
4466544679
M:Phase.PhaseAmbientMixerDefinition.#ctor(AVFoundation.AVAudioChannelLayout,System.Numerics.Quaternion)
@@ -73792,6 +73806,7 @@ P:PdfKit.PdfViewUrlEventArgs.Url
7379273806
P:PencilKit.PKCanvasView.AllowsFingerDrawing
7379373807
P:PencilKit.PKCanvasView.Delegate
7379473808
P:PencilKit.PKCanvasView.Drawing
73809+
P:PencilKit.PKCanvasView.DrawingEnabled
7379573810
P:PencilKit.PKCanvasView.DrawingGestureRecognizer
7379673811
P:PencilKit.PKCanvasView.DrawingPolicy
7379773812
P:PencilKit.PKCanvasView.MaximumSupportedContentVersion
@@ -73829,13 +73844,24 @@ P:PencilKit.PKStrokePoint.Opacity
7382973844
P:PencilKit.PKStrokePoint.SecondaryScale
7383073845
P:PencilKit.PKStrokePoint.Size
7383173846
P:PencilKit.PKStrokePoint.TimeOffset
73847+
P:PencilKit.PKToolPicker.AccessoryItem
7383273848
P:PencilKit.PKToolPicker.ColorUserInterfaceStyle
73849+
P:PencilKit.PKToolPicker.Delegate
7383373850
P:PencilKit.PKToolPicker.IsVisible
7383473851
P:PencilKit.PKToolPicker.MaximumSupportedContentVersion
7383573852
P:PencilKit.PKToolPicker.OverrideUserInterfaceStyle
7383673853
P:PencilKit.PKToolPicker.RulerActive
73854+
P:PencilKit.PKToolPicker.SelectedToolItem
73855+
P:PencilKit.PKToolPicker.SelectedToolItemIdentifier
7383773856
P:PencilKit.PKToolPicker.ShowsDrawingPolicyControls
7383873857
P:PencilKit.PKToolPicker.StateAutosaveName
73858+
P:PencilKit.PKToolPicker.ToolItems
73859+
P:PencilKit.PKToolPicker.WeakDelegate
73860+
P:PencilKit.PKToolPickerCustomItem.AllowsColorSelection
73861+
P:PencilKit.PKToolPickerCustomItem.Color
73862+
P:PencilKit.PKToolPickerCustomItem.Width
73863+
P:PencilKit.PKToolPickerInkingItem.AllowsColorSelection
73864+
P:PencilKit.PKToolPickerItem.Identifier
7383973865
P:Phase.PhaseAmbientMixerDefinition.InputChannelLayout
7384073866
P:Phase.PhaseAmbientMixerDefinition.Orientation
7384173867
P:Phase.PhaseAsset.Identifier
@@ -83422,6 +83448,7 @@ T:PdfKit.PdfViewUrlEventArgs
8342283448
T:PdfKit.PdfWidgetCellState
8342383449
T:PdfKit.PdfWidgetControlType
8342483450
T:PencilKit.IPKCanvasViewDelegate
83451+
T:PencilKit.IPKToolPickerDelegate
8342583452
T:PencilKit.IPKToolPickerObserver
8342683453
T:PencilKit.PKCanvasView
8342783454
T:PencilKit.PKCanvasViewDelegate
@@ -83440,6 +83467,18 @@ T:PencilKit.PKStroke
8344083467
T:PencilKit.PKStrokePath
8344183468
T:PencilKit.PKStrokePoint
8344283469
T:PencilKit.PKToolPicker
83470+
T:PencilKit.PKToolPickerCustomItem
83471+
T:PencilKit.PKToolPickerCustomItemConfiguration
83472+
T:PencilKit.PKToolPickerCustomItemConfigurationImageProviderCallback
83473+
T:PencilKit.PKToolPickerCustomItemConfigurationViewControllerProvider
83474+
T:PencilKit.PKToolPickerCustomItemControlOptions
83475+
T:PencilKit.PKToolPickerDelegate
83476+
T:PencilKit.PKToolPickerEraserItem
83477+
T:PencilKit.PKToolPickerInkingItem
83478+
T:PencilKit.PKToolPickerItem
83479+
T:PencilKit.PKToolPickerLassoItem
83480+
T:PencilKit.PKToolPickerRulerItem
83481+
T:PencilKit.PKToolPickerScribbleItem
8344383482
T:Phase.PhaseAmbientMixerDefinition
8344483483
T:Phase.PhaseAsset
8344583484
T:Phase.PhaseAssetError
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# adding these since weak delegate exists in base class
2+
!missing-selector! PKCanvasView::delegate not bound
3+
!missing-selector! PKCanvasView::setDelegate: not bound

0 commit comments

Comments
 (0)