Граф коммитов

83 Коммитов

Автор SHA1 Сообщение Дата
Alex Soto 9c9a2beb72 [Xtro] Update ginore/todo files for Xcode 15. 2023-08-04 11:47:28 -04:00
Rolf Bjarne Kvinge c9cb8ca5e3
[AppKit] Add a few missing NullAllowed attributes. Fixes #18115. (#18118)
Fixes https://github.com/xamarin/xamarin-macios/issues/18115.
2023-04-25 07:44:38 +02:00
Rolf Bjarne Kvinge 6581fcb5fb
[Foundation] Create a new NSAttributedStringDocumentAttributeKey enum to match Apple's headers. (#16969)
This allows us to unify the code between all platforms.

Also add all the NSAttributedStringDocumentAttributeKey values we haven't bound yet.

There are no changes in the public API, because I'm only changing internal types.

Ref: #14489.
2022-12-07 15:52:20 +01:00
Rolf Bjarne Kvinge c1606d5497
[Foundation] Unify a few NSAttributedString constructor implementations. (#16804)
Unify the code for the following constructors:

* NSAttributedString (NSData data, NSDictionary options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
* NSAttributedString (NSUrl url, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
* NSAttributedString (NSData data, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);

These functions use 'ref' arguments instead of 'out' arguments for mobile
platforms (likely due to the generator not having proper 'out' parameter
support when these functions were implemented), so improve to use 'out'
parameters in XAMCORE_5_0 (and macOS, where they already use 'out'
parameters).

Also fix nullability.

Ref: https://github.com/xamarin/xamarin-macios/issues/15216
2022-11-21 21:05:20 +01:00
Rolf Bjarne Kvinge 95783dbb50
[Foundation] Unify a few NSAttributedString functions. (#16782)
Unify the code for the following functions:

* NSAttributedString.GetData[FromRange]
* NSAttributedString.GetFileWrapper[FromRange]

These functions use 'ref' arguments instead of 'out' arguments for mobile
platforms (likely due to the generator not having proper 'out' parameter
support when these functions were implemented), so improve to use 'out'
parameters in XAMCORE_5_0 (and macOS, where they already use 'out'
parameters).

Also fix nullability.

Ref: https://github.com/xamarin/xamarin-macios/issues/15216
2022-11-17 15:51:19 +01:00
Rolf Bjarne Kvinge bedcbb063f
[Foundation] Remove support for '[NSAttributedString initWithFileURL:options:documentAttributes:error:]'. (#16787)
The 'initWithFileURL:options:documentAttributes:error:' was deprecated in iOS
9, and a new alternative (initWithURL:options:documentAttributes:error:) was
added. At the time, we implemented automatic detection of the current OS, and
would choose one version or the other depending on which was available.

We won't support anything below iOS 9 anymore, which means that keeping the
backwards-compatible constructor is useless, so just remove the corresponding
code and expose the new alternative directly.

On another note, this constructor uses a 'ref NSError' argument instead of an
'out NSError' on mobile platforms (likely due to the generator not having
proper 'out' parameter support when this constructor was implemented), so
improve to use 'out' parameters in XAMCORE_5_0 (and macOS, where it already
uses 'out' parameters).

Ref: https://github.com/xamarin/xamarin-macios/issues/15216
2022-11-17 15:45:11 +01:00
Chris Hamons 532ad02c6b
[AppKit] Xcode 14 Beta 1-5 (#15778)
Co-authored-by: Alex Soto <alex@alexsoto.me>
Co-authored-by: TJ Lambert <50846373+tj-devel709@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2022-08-31 15:08:57 -05:00
Marius Ungureanu 4b86732da5
Nullability annotations on NSUrl (#15356)
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2022-08-19 14:56:55 +02:00
Curtis Wensley 069d34b454
Set NSImageRep DrawInRect hints as nullable (#13834)
* Set NSImageRep DrawInRect hints as nullable

* Add nullable attributes to NSString DrawAtPoint/DrawInRect/StringSize

* Fix xtro test failure

Co-authored-by: Chris Hamons <chris.hamons@xamarin.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2022-03-01 20:34:02 +01:00
Rolf Bjarne Kvinge d58409c018
[AppKit] INSTextInputClient.GetAttributedSubstring can return null. Fixes #14129. (#14131)
Fixes https://github.com/xamarin/xamarin-macios/issues/14129.
2022-02-15 17:44:21 +01:00
Rolf Bjarne Kvinge 06100d8dca
[xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094)
This makes the XAMCORE_4_0 list in our source code substantially smaller.
2022-02-09 08:27:46 +01:00
Rolf Bjarne Kvinge 3a2acf9d99
[AppKit] Implement the NSUserActivityRestoring protocol. (#14045) 2022-02-04 08:06:25 +01:00
Rolf Bjarne Kvinge fb6ab21bc8
[AppKit] Improve a few API names for .NET. (#13824) 2022-01-27 10:56:06 +01:00
Rolf Bjarne Kvinge 82a3b71c60
[Foundation] Adopt a better name/signature for numerous Foundation API in .NET. (#13776) 2022-01-20 10:32:55 +01:00
Marius Ungureanu d2ccca6539
Add NullAllowed to NSRunningApplication (#13703) 2022-01-19 22:36:07 +01:00
Rolf Bjarne Kvinge 65a7794244
[AppKit] Update NSWindowStyle deprecations according to headers. (#13696)
Also remove the Unscaled field, it's removed from the headers, and it was
deprecated before the earliest macOS version we support.

Also also fix a few xtro issues.
2022-01-13 22:29:11 +01:00
Alex Soto dfe6c2b5ab
[main] Add Xcode 13.2 Support (#13643)
* [Xcode13.2] Bump to Xcode 13.2 RC (#13497)

* [Xcode13.2] Bump to Xcode 13.2 Beta 2

Breaking changes addressed for legacy
* HomeKit
* CallKit
* CoreLocation

* [xcode13.2] Bump to Xcode 13.2 RC and apply feedback

* [AppKit] Fix missing Notifications

* Fix xtro

* [xcode13.2] Bump versions and use stable Xcode 13.2

* [monotouch-tests] Make TestAddingByComponents work on the last day of the year

Happy New Year!!

* NO BOM PLZ!
2022-01-03 09:28:00 -05:00
Rolf Bjarne Kvinge 9d79dada8b
[AppKit] Add NSKey back to the .NET profile. (#13477)
It turns out the enum is used a bit more than I thought.

Ref: https://discord.com/channels/732297728826277939/732297808148824115/913810268939759626
2021-12-01 17:30:04 +01:00
Rolf Bjarne Kvinge d1b5507111
[xtro] Skip numerous validations for deprecated API. (#13383)
There are numerous checks that don't make much sense to report for deprecated
API, so skip those. This also required updating a few .ignore and .todo files.
2021-11-18 16:26:30 +01:00
Manuel de la Pena bd24746226
[Xtro] Fix xtro after a bad commit. (#13271) 2021-11-04 15:20:38 +01:00
Manuel de la Pena 19a20ff522
[AppKit] Fix intro tests on monterey. (#13187) 2021-11-01 20:34:25 -04:00
Rachel Kang 517fbd9a02
[AppKit] Update Xcode 13.0 bindings for betas 1,2,3,4,5 2021-10-05 11:59:49 -04:00
Sebastien Pouliot dac58e4115
[objcruntime] Enable nullable on `Selector` class (#12340)
This requires a small change to the generator since `Selector.FromHandle`
can return `null` but it does not means the invoked API can (and we are
interested in the later).

Fixed up existing API returning potentially `null` `Selector`, IOW adding
the missing `[NullAllowed]` on them and updating xtro.
2021-08-04 08:47:53 -04:00
Rolf Bjarne Kvinge a6c7c12474
[src] Add AppKit to Mac Catalyst. (#12268)
* A lot of availability attribute updates.
* Some conditional "#if !__MACCATALYST__" in manual binding files.
* xtro updates.
* Misc other minor tweaks.
2021-07-29 16:17:51 +02:00
Rolf Bjarne Kvinge 478b58897f
[AppKit/Foundation] Sprinkle some null allowed. (#12201) 2021-07-26 09:19:48 +02:00
Rolf Bjarne Kvinge f521537e0a
[AppKit/UIKit] Share the implementation of some classes between AppKit and UIKit. (#12161)
* [AppKit/UIKit] Merge the definitions of NSTextLayoutOrientationProvider.

It looks like this might be a breaking change for macOS, but the macOS
definition had only a [Model] attribute, which won't make the generator
generate any public API.

* [AppKit/UIKit] Merge the definitions of NSTextContainer.

* [AppKit/UIKit] Merge the definitions of NSExtendedStringDrawing.
2021-07-21 14:52:19 +02:00
Rolf Bjarne Kvinge b082e6b8aa
[AppKit/UIKit] Share the implementation of some classes between AppKit and UIKit. (#12146)
* [src] Share the NSTextStorage[Delegate] implementations between AppKit and UIKit.

* [AppKit/UIKit] Merge the definitions of NSCollectionLayoutAnchor.

* [AppKit/UIKit] Merge the definitions of the NSCollectionLayout* classes.

* [AppKit/UIKit] Merge the definitions of NSDataAsset.

* [AppKit/UIKit] Merge the definitions of NSShadow.

* [AppKit/UIKit] Merge the definitions of NSTextTab.

* Update xtro.
2021-07-21 10:08:17 +02:00
Rolf Bjarne Kvinge 80d2bfa252
[src] Share the NSTextAttachment[Container] implementations between AppKit and UIKit. (#12135)
* [src] Share the NSTextAttachment[Container] implementations between AppKit and UIKit.

* Use shared definition of UIImage/NSImage.
2021-07-20 08:00:35 +02:00
Rolf Bjarne Kvinge dba3bf30b1
[AppKit/UIKit] Share the implementation of some classes between AppKit and UIKit. (#12131)
* [src] Share [I]NSCollectionLayoutVisibleItem implementation between AppKit and UIKit.

* [src] Share several NSLayout* implementations between AppKit and UIKit.
2021-07-16 18:24:50 +02:00
Marius Ungureanu b930f9cce9
Make NSWindow appearanceSource null allowed (#11334)
Native headers show it's null_resettable.

```objc
/// If set, the receiver will inherit the appearance of that object, as well as use KVO to observe its effectiveAppearance for changes. Typically this is used for child windows that are shown from a parent window or specific view. Defaults to NSApp.
@property (weak, null_resettable) NSObject<NSAppearanceCustomization> *appearanceSource API_AVAILABLE(macos(10.14));
```
2021-04-26 18:02:25 -04:00
Sebastien Pouliot d7684319cd
[xtro] Fix nullability checks on parameters (#10279)
and fix most (append for AppKit) additional missing/extra null that this
fix detected in the bindings
2020-12-15 08:24:10 -05:00
Manuel de la Pena 0f7bc75e50 Merge branch 'xcode12.2' into main-xcode12.2 2020-11-17 11:09:15 -05:00
monojenkins 3924a30c4b
[AppKit] Allow NSGraphicsContext.CurrentContext to be null (#9842)
- Fixes https://github.com/xamarin/xamarin-macios/issues/9827

Co-authored-by: Chris Hamons <chris.hamons@xamarin.com>
2020-10-09 15:33:37 -05:00
Chris Hamons 05303cfec3
[AppKit] Allow NSGraphicsContext.CurrentContext to be null (#9838)
- Fixes https://github.com/xamarin/xamarin-macios/issues/9827
2020-10-09 13:44:34 -05:00
Sebastien Pouliot 9f78daee75
[xcode12.2][tests][xtro] Add enum member/values checks. Fix #7527 (#9691) (#9796)
Figure out if
* we're missing enum values (easy to workaround, but annoying for developers)
* we expose enum values that are not defined natively (potential bugs)

reference: https://github.com/xamarin/xamarin-macios/issues/7527

backport of #9691 with additional macOS and xcode12.2 fixes
2020-10-07 10:58:27 -04:00
Manuel de la Pena dcb0c93ab0 [Xcode12] Bring xcode 12 changes into main. 2020-09-23 16:05:22 -04:00
Manuel de la Pena a19b0f2c75
[Submission] Fix all the selectors that apple warns about. (#9268) (#9408)
* [Submission] Fix all the selectors that apple warns about. (#9268)

We have noticed the following message from Apple when performing
submissions with Xamarin.iOS:

> ITMS-90338: Non-public API usage - The app references non-public
> selectors in WcBc.iOS: behaviorTypes, convolutionState,
> discoverAllContactUserInfosWithCompletionHandler:,
> discoverAllContactsCompletionBlock,
> discoverUserInfoWithEmailAddress:completionHandler:,
> discoverUserInfoWithUserRecordID:completionHandler:,
> discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously,
> encodeToCommandBuffer:sourceImage:convolutionState:,
> encodeToCommandBuffer:sourceImage:destinationImage:state:,
> getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:,
> initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:,
> initWithZoneID:options:, initWithZoneID:subscriptionID:options:,
> isPublicDatabase, mouseUpAction, newDrawable, propertyChangedCallback,
> removeAllAppearanceStreams, replaceTextStorage:, retrieveConnectedPeripherals,
> retrievePeripherals:, setDiscoverAllContactsCompletionBlock:,
> setDiscoverUserInfosCompletionBlock:, setDrawableResizesAsynchronously:,
> setEditedMask:, setMouseUpAction:, setMovieControlMode:,
> setProperty:onChannel:responseHandler:, setPropertyChangedCallback:,
> setSocketFamily:, setTemporaryAttributes:forCharacterRange:, setUserRecordIDs:,
> sourceOffset, subscriptionOptions, takeBackgroundColorFrom:, takePasswordFrom:,
> temporalAntialiasingEnabled, userRecordIDs. If method names in your source code
> match the private Apple APIs listed above, altering your method names will help
> prevent this app from being flagged in future submissions. In addition, note
> that one or more of the above APIs may be located in a static library that was
> included with your app. If so, they must be removed. For further information,
> visit the Technical Support Information at http://developer.apple.com/support/technical/

All of them have been removed but without a break in the API excep
"initWithMIDIEntity:dataReadyHandler:" wich does look like an error on
Apples side.

Empty stubs are used as much as possible except on those cases in which
a handler is called or an output variable should be modified (buffer,
out param) to minimize the users surprise at runtime.
2020-08-21 16:30:51 -04:00
Manuel de la Pena 7e7caa00a6
[Submission] Fix all the selectors that apple warns about. (#9268)
We have noticed the following message from Apple when performing
submissions with Xamarin.iOS:

> ITMS-90338: Non-public API usage - The app references non-public
> selectors in WcBc.iOS: behaviorTypes, convolutionState,
> discoverAllContactUserInfosWithCompletionHandler:,
> discoverAllContactsCompletionBlock,
> discoverUserInfoWithEmailAddress:completionHandler:,
> discoverUserInfoWithUserRecordID:completionHandler:,
> discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously,
> encodeToCommandBuffer:sourceImage:convolutionState:,
> encodeToCommandBuffer:sourceImage:destinationImage:state:,
> getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:,
> initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:,
> initWithZoneID:options:, initWithZoneID:subscriptionID:options:,
> isPublicDatabase, mouseUpAction, newDrawable, propertyChangedCallback,
> removeAllAppearanceStreams, replaceTextStorage:, retrieveConnectedPeripherals,
> retrievePeripherals:, setDiscoverAllContactsCompletionBlock:,
> setDiscoverUserInfosCompletionBlock:, setDrawableResizesAsynchronously:,
> setEditedMask:, setMouseUpAction:, setMovieControlMode:,
> setProperty:onChannel:responseHandler:, setPropertyChangedCallback:,
> setSocketFamily:, setTemporaryAttributes:forCharacterRange:, setUserRecordIDs:,
> sourceOffset, subscriptionOptions, takeBackgroundColorFrom:, takePasswordFrom:,
> temporalAntialiasingEnabled, userRecordIDs. If method names in your source code
> match the private Apple APIs listed above, altering your method names will help
> prevent this app from being flagged in future submissions. In addition, note
> that one or more of the above APIs may be located in a static library that was
> included with your app. If so, they must be removed. For further information,
> visit the Technical Support Information at http://developer.apple.com/support/technical/

All of them have been removed but without a break in the API excep
"initWithMIDIEntity:dataReadyHandler:" wich does look like an error on
Apples side.

Empty stubs are used as much as possible except on those cases in which
a handler is called or an output variable should be modified (buffer,
out param) to minimize the users surprise at runtime.
2020-08-14 14:53:01 -04:00
Rolf Bjarne Kvinge 5327564109
[AppKit/UIKit] Merge the definitions of NS[Mutable]ParagraphStyle. (#9261)
* Reduces code duplication.
* Makes the macOS versions thread-safe (the iOS versions have been thread-safe
  for years: 2c6a5303a7).
* A few parameters names were different in the definitions; I chose to keep the ones in Xamarin.iOS, since they looked better.
* Xamarin.Mac had two methods, SetTextBlocks and SetTextLists, in place of an actual property override (for the mutable setter), this was fixed to be an actual property overload, and compat methods were implemented.
* xtro needed an update to cope with multiple static methods for the same selector.
2020-08-04 14:25:24 +02:00
Chris Hamons fbcbdcde77
[AppKit] Xcode 12.0 Beta 1 (#9106)
* [AppKit] Xcode 12.0 Beta 1

* Apply suggestions from code review

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Alex Soto <alex@alexsoto.me>

* More code review changes

* Apply suggestions from code review

Co-authored-by: Alex Soto <alex@alexsoto.me>

* Code review changes

* Apply suggestions from code review

Co-authored-by: Whitney Schmidt <whschm@microsoft.com>

* Remove unnecessary 10.7 mac attribute

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Alex Soto <alex@alexsoto.me>
Co-authored-by: Whitney Schmidt <whschm@microsoft.com>
2020-07-17 15:19:31 -05:00
monojenkins 5f71492418
[xcode12] [AppKit] NSTextView allows passing nil to PasteAsPlainText and PasteAsRichText. (#8923)
* [AppKit] NSTextView allows passing nil to PasteAsPlainText and PasteAsRichText.

This is documented in Apple's documentation, their headers, and even proved
experimentally.

* Update xtro.

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2020-06-23 08:53:47 +02:00
Rolf Bjarne Kvinge 7a97cc9f31
[AppKit] NSTextView allows passing nil to PasteAsPlainText and PasteAsRichText. (#8873)
* [AppKit] NSTextView allows passing nil to PasteAsPlainText and PasteAsRichText.

This is documented in Apple's documentation, their headers, and even proved
experimentally.

* Update xtro.
2020-06-18 10:57:23 +02:00
monojenkins 015fd895c5
[d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341)
Enabling this will ensure that future bindings (and Xcode updates that
change nullability information) are spotted right away.

The binding fixes are **not** complete, i.e. what was done was mostly
to debug the xtro rule and find corner cases. The backlog will be
_ignored_ so the builds won't fail.
2020-04-10 12:37:16 -04:00
Sebastien Pouliot 8d3987b84a
[xtro][bindings] Add xtro support for nullability and fix some bindings (#8335)
Enabling this will ensure that future bindings (and Xcode updates that
change nullability information) are spotted right away.

The binding fixes are **not** complete, i.e. what was done was mostly
to debug the xtro rule and find corner cases. The backlog will be
_ignored_ so the builds won't fail.
2020-04-10 11:00:47 -04:00
Chris Hamons 53964c0af0
[mac] Add NSScrollView.WillStartLiveScrollNotification (#8205)
- https://github.com/xamarin/xamarin-macios/issues/7712
2020-03-26 16:15:50 -05:00
Pramit Mallick f35569a715 [Appkit] Bindings part 4 (#7295)
Complete the AppKit bindings up to Xcode 11.2
2019-10-28 15:38:34 -04:00
Pramit Mallick dc72d592cf
[Appkit] Bindings - part 2 (#7215)
* Added NSButtonTouchBarItem interface

* Added NSTextScalingType

* name changes

* Text Scaling options

* Deprecated KeyEquivalentFont

* Deprecated CopiesOnScroll

* Added missing enums first

* Added some deprecated attributes

* some more deprecations

* Strong typed TextScaling

* apple docs to correct deprecations

* Changed deprecated messages

* strong typing NSTouchBarItemIdentifier identifier

* internal attr

* Making TextScalingDocumentOption simple Fields following UIKit

* Moved NSDirectionalEdgeInsets

* Added NSCollectionLayoutAnchor

* removed extra methods for mac from xkit/types

* removed todos

* added automaticCustomizeTouchBarMenuItemEnabled

* added NSCollectionLayoutDimension

* added NSPickerTouchBarItem

* added NSCollectionLayoutSize

* added NSCollectionLayoutSpacing

* added NSCollectionLayoutEdgeSpacing

* added DesignatedInitializer

* addressed reviews

* naming + alignment

* adding test case for NSPickerTouchBarItem .ctor

* added comment

* removed deprecated selectors to ignore

* updated copyright info in Xkit/Types header
2019-10-18 15:45:34 -04:00
Manuel de la Pena 2cea3568b9
[AppKit] Add missing Accessibility protocols. (#7105) 2019-09-26 09:46:38 -04:00
Rolf Bjarne Kvinge f6e0531197 Merge xcode11 into d16-3. 2019-09-12 08:29:02 +02:00
Alex Soto 2d53b90723
[UIKit] Partial update to Xcode 11 Beta 1, 2 and 3 - Part 2 of ? (#6553)
* [UIKit] Partial update to Xcode 11 Beta 1, 2 and 3 - Part 2 of ?

Missing bindings for

* NSDiffableDataSourceSnapshot
* UICollectionViewDiffableDataSource
* UITableViewDiffableDataSource

due to a registrar issue git generics.

* Update src/UIKit/UIFont.cs

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Update src/uikit.cs

* More feedback

This also disables

* FloatRangeTest.Equals
* FloatRangeTest.ManagedVersusNative

due to https://github.com/xamarin/maccore/issues/1885

* [UIKIt] Start fixing `UITextWritingDirection` situation

But the complete fix is for another time https://github.com/xamarin/xamarin-macios/issues/6573
2019-07-12 13:44:24 -04:00