[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.
This commit is contained in:
Родитель
21ee5a7f74
Коммит
5327564109
|
@ -0,0 +1,43 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
using Foundation;
|
||||
using ObjCRuntime;
|
||||
|
||||
namespace AppKit {
|
||||
partial class NSMutableParagraphStyle {
|
||||
#if !XAMCORE_4_0
|
||||
[Obsolete ("Use the 'TextBlocks' property instead.", false)]
|
||||
[EditorBrowsable (EditorBrowsableState.Never)]
|
||||
[BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
|
||||
public virtual void SetTextBlocks (NSTextBlock[] array)
|
||||
{
|
||||
if (array == null)
|
||||
throw new ArgumentNullException (nameof (array));
|
||||
var nsa_array = NSArray.FromNSObjects (array);
|
||||
if (IsDirectBinding) {
|
||||
global::ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (this.Handle, selSetTextBlocks_Handle, nsa_array.Handle);
|
||||
} else {
|
||||
global::ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr (this.SuperHandle, selSetTextBlocks_Handle, nsa_array.Handle);
|
||||
}
|
||||
nsa_array.Dispose ();
|
||||
}
|
||||
|
||||
[Obsolete ("Use the 'TextLists' property instead.", false)]
|
||||
[EditorBrowsable (EditorBrowsableState.Never)]
|
||||
[BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
|
||||
public virtual void SetTextLists (NSTextList[] array)
|
||||
{
|
||||
if (array == null)
|
||||
throw new ArgumentNullException (nameof (array));
|
||||
var nsa_array = NSArray.FromNSObjects (array);
|
||||
if (IsDirectBinding) {
|
||||
global::ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (this.Handle, selSetTextLists_Handle, nsa_array.Handle);
|
||||
} else {
|
||||
global::ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr (this.SuperHandle, selSetTextLists_Handle, nsa_array.Handle);
|
||||
}
|
||||
nsa_array.Dispose ();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
167
src/appkit.cs
167
src/appkit.cs
|
@ -10785,173 +10785,6 @@ namespace AppKit {
|
|||
IntPtr Constructor (CGRect contentRect, NSWindowStyle aStyle, NSBackingStore bufferingType, bool deferCreation);
|
||||
}
|
||||
|
||||
[BaseType (typeof (NSObject))]
|
||||
interface NSParagraphStyle : NSSecureCoding, NSMutableCopying {
|
||||
[Static]
|
||||
[Export ("defaultParagraphStyle", ArgumentSemantic.Copy)]
|
||||
NSParagraphStyle DefaultParagraphStyle { get; [NotImplemented] set; }
|
||||
|
||||
[Static]
|
||||
[Export ("defaultWritingDirectionForLanguage:")]
|
||||
NSWritingDirection DefaultWritingDirection (string languageName);
|
||||
|
||||
[Export ("lineSpacing")]
|
||||
nfloat LineSpacing { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("paragraphSpacing")]
|
||||
nfloat ParagraphSpacing { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("alignment")]
|
||||
NSTextAlignment Alignment { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("headIndent")]
|
||||
nfloat HeadIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("tailIndent")]
|
||||
nfloat TailIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("firstLineHeadIndent")]
|
||||
nfloat FirstLineHeadIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("tabStops")]
|
||||
NSTextTab [] TabStops { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("minimumLineHeight")]
|
||||
nfloat MinimumLineHeight { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("maximumLineHeight")]
|
||||
nfloat MaximumLineHeight { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("lineBreakMode")]
|
||||
NSLineBreakMode LineBreakMode { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("baseWritingDirection")]
|
||||
NSWritingDirection BaseWritingDirection { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("lineHeightMultiple")]
|
||||
nfloat LineHeightMultiple { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("paragraphSpacingBefore")]
|
||||
nfloat ParagraphSpacingBefore { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("defaultTabInterval")]
|
||||
nfloat DefaultTabInterval { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("textBlocks")]
|
||||
NSTextTableBlock [] TextBlocks { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("textLists")]
|
||||
NSTextList[] TextLists { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("hyphenationFactor")]
|
||||
float HyphenationFactor { get; [NotImplemented] set; } /* float, not CGFloat */
|
||||
|
||||
[Export ("tighteningFactorForTruncation")]
|
||||
float TighteningFactorForTruncation { get; [NotImplemented] set; } /* float, not CGFloat */
|
||||
|
||||
[Export ("headerLevel")]
|
||||
nint HeaderLevel { get; [NotImplemented] set; }
|
||||
|
||||
// @property (readonly) BOOL allowsDefaultTighteningForTruncation __attribute__((availability(macosx, introduced=10.11)));
|
||||
[Mac (10,11)]
|
||||
[Export ("allowsDefaultTighteningForTruncation")]
|
||||
bool AllowsDefaultTighteningForTruncation { get; }
|
||||
}
|
||||
|
||||
[BaseType (typeof (NSParagraphStyle))]
|
||||
interface NSMutableParagraphStyle {
|
||||
|
||||
[Export ("addTabStop:")]
|
||||
[PostGet ("TabStops")]
|
||||
void AddTabStop (NSTextTab anObject);
|
||||
|
||||
[Export ("removeTabStop:")]
|
||||
[PostGet ("TabStops")]
|
||||
void RemoveTabStop (NSTextTab anObject);
|
||||
|
||||
[Export ("tabStops", ArgumentSemantic.Copy)]
|
||||
[Override]
|
||||
NSTextTab [] TabStops { get; set; }
|
||||
|
||||
[Export ("setParagraphStyle:")]
|
||||
void SetParagraphStyle (NSParagraphStyle obj);
|
||||
|
||||
[Export ("defaultTabInterval")]
|
||||
[Override]
|
||||
nfloat DefaultTabInterval { get; set; }
|
||||
|
||||
[Export ("setTextBlocks:")]
|
||||
void SetTextBlocks (NSTextBlock [] array);
|
||||
|
||||
[Export ("setTextLists:")]
|
||||
void SetTextLists (NSTextList [] array);
|
||||
|
||||
[Export ("tighteningFactorForTruncation")]
|
||||
[Override]
|
||||
float TighteningFactorForTruncation { get; set; } /* float, not CGFloat */
|
||||
|
||||
[Export ("headerLevel")]
|
||||
[Override]
|
||||
nint HeaderLevel { get; set; }
|
||||
|
||||
[Export ("lineSpacing")]
|
||||
[Override]
|
||||
nfloat LineSpacing { get; set; }
|
||||
|
||||
[Export ("alignment")]
|
||||
[Override]
|
||||
NSTextAlignment Alignment { get; set; }
|
||||
|
||||
[Export ("headIndent")]
|
||||
[Override]
|
||||
nfloat HeadIndent { get; set; }
|
||||
|
||||
[Export ("tailIndent")]
|
||||
[Override]
|
||||
nfloat TailIndent { get; set; }
|
||||
|
||||
[Export ("firstLineHeadIndent")]
|
||||
[Override]
|
||||
nfloat FirstLineHeadIndent { get; set; }
|
||||
|
||||
[Export ("minimumLineHeight")]
|
||||
[Override]
|
||||
nfloat MinimumLineHeight { get; set; }
|
||||
|
||||
[Export ("maximumLineHeight")]
|
||||
[Override]
|
||||
nfloat MaximumLineHeight { get; set; }
|
||||
|
||||
[Export ("lineBreakMode")]
|
||||
[Override]
|
||||
NSLineBreakMode LineBreakMode { get; set; }
|
||||
|
||||
[Export ("baseWritingDirection")]
|
||||
[Override]
|
||||
NSWritingDirection BaseWritingDirection { get; set; }
|
||||
|
||||
[Export ("lineHeightMultiple")]
|
||||
[Override]
|
||||
nfloat LineHeightMultiple { get; set; }
|
||||
|
||||
[Export ("paragraphSpacing")]
|
||||
[Override]
|
||||
nfloat ParagraphSpacing { get; set; }
|
||||
|
||||
[Export ("paragraphSpacingBefore")]
|
||||
[Override]
|
||||
nfloat ParagraphSpacingBefore { get; set; }
|
||||
|
||||
[Export ("hyphenationFactor")]
|
||||
[Override]
|
||||
float HyphenationFactor { get; set; } /* float, not CGFloat */
|
||||
|
||||
[Mac (10,11)]
|
||||
[Export ("allowsDefaultTighteningForTruncation")]
|
||||
bool AllowsDefaultTighteningForTruncation { get; set; }
|
||||
|
||||
}
|
||||
|
||||
[Mac (10,10)]
|
||||
[BaseType (typeof (NSGestureRecognizer))]
|
||||
interface NSPanGestureRecognizer : NSCoding {
|
||||
|
|
|
@ -77,6 +77,7 @@ APPKIT_SOURCES = \
|
|||
AppKit/AppKitSynchronizationContext.cs \
|
||||
AppKit/AppKitThreadAccessException.cs \
|
||||
AppKit/BeginSheet.cs \
|
||||
AppKit/Compat.cs \
|
||||
AppKit/DoubleWrapper.cs \
|
||||
AppKit/EventArgs.cs \
|
||||
AppKit/Functions.cs \
|
||||
|
|
146
src/uikit.cs
146
src/uikit.cs
|
@ -518,152 +518,6 @@ namespace UIKit {
|
|||
}
|
||||
#endif // !WATCH
|
||||
|
||||
[ThreadSafe]
|
||||
[BaseType (typeof (NSObject))]
|
||||
interface NSParagraphStyle : NSSecureCoding, NSMutableCopying {
|
||||
[Export ("lineSpacing")]
|
||||
nfloat LineSpacing { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("paragraphSpacing")]
|
||||
nfloat ParagraphSpacing { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("alignment")]
|
||||
UITextAlignment Alignment { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("headIndent")]
|
||||
nfloat HeadIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("tailIndent")]
|
||||
nfloat TailIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("firstLineHeadIndent")]
|
||||
nfloat FirstLineHeadIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("minimumLineHeight")]
|
||||
nfloat MinimumLineHeight { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("maximumLineHeight")]
|
||||
nfloat MaximumLineHeight { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("lineBreakMode")]
|
||||
UILineBreakMode LineBreakMode { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("baseWritingDirection")]
|
||||
NSWritingDirection BaseWritingDirection { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("lineHeightMultiple")]
|
||||
nfloat LineHeightMultiple { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("paragraphSpacingBefore")]
|
||||
nfloat ParagraphSpacingBefore { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("hyphenationFactor")]
|
||||
float HyphenationFactor { get; [NotImplemented] set; } // Returns a float, not nfloat.
|
||||
|
||||
[Static]
|
||||
[Export ("defaultWritingDirectionForLanguage:")]
|
||||
NSWritingDirection GetDefaultWritingDirection (string languageName);
|
||||
|
||||
[Static]
|
||||
[Export ("defaultParagraphStyle")]
|
||||
NSParagraphStyle Default { get; }
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("defaultTabInterval")]
|
||||
nfloat DefaultTabInterval { get; [NotImplemented] set; }
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("tabStops", ArgumentSemantic.Copy)]
|
||||
NSTextTab[] TabStops { get; [NotImplemented] set; }
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("allowsDefaultTighteningForTruncation")]
|
||||
bool AllowsDefaultTighteningForTruncation { get; [NotImplemented] set; }
|
||||
}
|
||||
|
||||
[ThreadSafe]
|
||||
[BaseType (typeof (NSParagraphStyle))]
|
||||
interface NSMutableParagraphStyle {
|
||||
[Export ("lineSpacing")]
|
||||
[Override]
|
||||
nfloat LineSpacing { get; set; }
|
||||
|
||||
[Export ("alignment")]
|
||||
[Override]
|
||||
UITextAlignment Alignment { get; set; }
|
||||
|
||||
[Export ("headIndent")]
|
||||
[Override]
|
||||
nfloat HeadIndent { get; set; }
|
||||
|
||||
[Export ("tailIndent")]
|
||||
[Override]
|
||||
nfloat TailIndent { get; set; }
|
||||
|
||||
[Export ("firstLineHeadIndent")]
|
||||
[Override]
|
||||
nfloat FirstLineHeadIndent { get; set; }
|
||||
|
||||
[Export ("minimumLineHeight")]
|
||||
[Override]
|
||||
nfloat MinimumLineHeight { get; set; }
|
||||
|
||||
[Export ("maximumLineHeight")]
|
||||
[Override]
|
||||
nfloat MaximumLineHeight { get; set; }
|
||||
|
||||
[Export ("lineBreakMode")]
|
||||
[Override]
|
||||
UILineBreakMode LineBreakMode { get; set; }
|
||||
|
||||
[Export ("baseWritingDirection")]
|
||||
[Override]
|
||||
NSWritingDirection BaseWritingDirection { get; set; }
|
||||
|
||||
[Export ("lineHeightMultiple")]
|
||||
[Override]
|
||||
nfloat LineHeightMultiple { get; set; }
|
||||
|
||||
[Export ("paragraphSpacing")]
|
||||
[Override]
|
||||
nfloat ParagraphSpacing { get; set; }
|
||||
|
||||
[Export ("paragraphSpacingBefore")]
|
||||
[Override]
|
||||
nfloat ParagraphSpacingBefore { get; set; }
|
||||
|
||||
[Export ("hyphenationFactor")]
|
||||
[Override]
|
||||
float HyphenationFactor { get; set; } // Returns a float, not nfloat.
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("defaultTabInterval")]
|
||||
[Override]
|
||||
nfloat DefaultTabInterval { get; set; }
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("tabStops", ArgumentSemantic.Copy)]
|
||||
[Override]
|
||||
NSTextTab[] TabStops { get; set; }
|
||||
|
||||
[iOS (9,0)]
|
||||
[Override]
|
||||
[Export ("allowsDefaultTighteningForTruncation")]
|
||||
bool AllowsDefaultTighteningForTruncation { get; set; }
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("addTabStop:")]
|
||||
void AddTabStop (NSTextTab textTab);
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("removeTabStop:")]
|
||||
void RemoveTabStop (NSTextTab textTab);
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("setParagraphStyle:")]
|
||||
void SetParagraphStyle (NSParagraphStyle paragraphStyle);
|
||||
}
|
||||
|
||||
[iOS (7,0)]
|
||||
[BaseType (typeof (NSObject))]
|
||||
interface NSTextTab : NSCoding, NSCopying, NSSecureCoding {
|
||||
|
|
218
src/xkit.cs
218
src/xkit.cs
|
@ -24,6 +24,8 @@ using NSImageScaling=System.Object;
|
|||
using NSRulerMarker=System.Object;
|
||||
using NSRulerView=System.Object;
|
||||
using NSTextBlock=System.Object;
|
||||
using NSTextList=System.Object;
|
||||
using NSTextTableBlock=System.Object;
|
||||
using NSTextStorageEditedFlags=System.Object;
|
||||
using NSTextView=System.Object;
|
||||
using NSTypesetter=System.Object;
|
||||
|
@ -36,6 +38,14 @@ using NSTextStorage=System.Object;
|
|||
#endif // WATCH
|
||||
#endif // !MONOMAC
|
||||
|
||||
#if MONOMAC
|
||||
using TextAlignment=AppKit.NSTextAlignment;
|
||||
using LineBreakMode=AppKit.NSLineBreakMode;
|
||||
#else
|
||||
using TextAlignment=UIKit.UITextAlignment;
|
||||
using LineBreakMode=UIKit.UILineBreakMode;
|
||||
#endif
|
||||
|
||||
#if MONOMAC
|
||||
namespace AppKit {
|
||||
#else
|
||||
|
@ -1273,4 +1283,212 @@ namespace UIKit {
|
|||
[Export ("reloadSectionsWithIdentifiers:")]
|
||||
void ReloadSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
}
|
||||
|
||||
[ThreadSafe]
|
||||
[BaseType (typeof (NSObject))]
|
||||
interface NSParagraphStyle : NSSecureCoding, NSMutableCopying {
|
||||
[Export ("lineSpacing")]
|
||||
nfloat LineSpacing { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("paragraphSpacing")]
|
||||
nfloat ParagraphSpacing { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("alignment")]
|
||||
TextAlignment Alignment { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("headIndent")]
|
||||
nfloat HeadIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("tailIndent")]
|
||||
nfloat TailIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("firstLineHeadIndent")]
|
||||
nfloat FirstLineHeadIndent { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("minimumLineHeight")]
|
||||
nfloat MinimumLineHeight { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("maximumLineHeight")]
|
||||
nfloat MaximumLineHeight { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("lineBreakMode")]
|
||||
LineBreakMode LineBreakMode { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("baseWritingDirection")]
|
||||
NSWritingDirection BaseWritingDirection { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("lineHeightMultiple")]
|
||||
nfloat LineHeightMultiple { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("paragraphSpacingBefore")]
|
||||
nfloat ParagraphSpacingBefore { get; [NotImplemented] set; }
|
||||
|
||||
[Export ("hyphenationFactor")]
|
||||
float HyphenationFactor { get; [NotImplemented] set; } // Returns a float, not nfloat.
|
||||
|
||||
[Static]
|
||||
[Export ("defaultWritingDirectionForLanguage:")]
|
||||
NSWritingDirection GetDefaultWritingDirection ([NullAllowed] string languageName);
|
||||
|
||||
#if MONOMAC && !XAMCORE_4_0
|
||||
[Obsolete ("Use the 'GetDefaultWritingDirection' method instead.")]
|
||||
[Static]
|
||||
[Export ("defaultWritingDirectionForLanguage:")]
|
||||
NSWritingDirection DefaultWritingDirection ([NullAllowed] string languageName);
|
||||
#endif
|
||||
|
||||
[Static]
|
||||
[Export ("defaultParagraphStyle", ArgumentSemantic.Copy)]
|
||||
NSParagraphStyle Default { get; }
|
||||
|
||||
#if MONOMAC && !XAMCORE_4_0
|
||||
[Obsolete ("Use the 'Default' property instead.")]
|
||||
[Static]
|
||||
[Export ("defaultParagraphStyle", ArgumentSemantic.Copy)]
|
||||
NSParagraphStyle DefaultParagraphStyle { get; [NotImplemented] set; }
|
||||
#endif
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("defaultTabInterval")]
|
||||
nfloat DefaultTabInterval { get; [NotImplemented] set; }
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("tabStops", ArgumentSemantic.Copy)]
|
||||
[NullAllowed]
|
||||
NSTextTab[] TabStops { get; [NotImplemented] set; }
|
||||
|
||||
[iOS (9,0)]
|
||||
[Mac (10,11)]
|
||||
[Export ("allowsDefaultTighteningForTruncation")]
|
||||
bool AllowsDefaultTighteningForTruncation { get; [NotImplemented] set; }
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Export ("textBlocks")]
|
||||
#if XAMCORE_4_0
|
||||
NSTextBlock [] TextBlocks { get; [NotImplemented] set; }
|
||||
#else
|
||||
NSTextTableBlock [] TextBlocks { get; [NotImplemented] set; }
|
||||
#endif
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Export ("textLists")]
|
||||
NSTextList[] TextLists { get; [NotImplemented] set; }
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Export ("tighteningFactorForTruncation")]
|
||||
float TighteningFactorForTruncation { get; [NotImplemented] set; } /* float, not CGFloat */
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Export ("headerLevel")]
|
||||
nint HeaderLevel { get; [NotImplemented] set; }
|
||||
}
|
||||
|
||||
[ThreadSafe]
|
||||
[BaseType (typeof (NSParagraphStyle))]
|
||||
interface NSMutableParagraphStyle {
|
||||
[Export ("lineSpacing")]
|
||||
[Override]
|
||||
nfloat LineSpacing { get; set; }
|
||||
|
||||
[Export ("alignment")]
|
||||
[Override]
|
||||
TextAlignment Alignment { get; set; }
|
||||
|
||||
[Export ("headIndent")]
|
||||
[Override]
|
||||
nfloat HeadIndent { get; set; }
|
||||
|
||||
[Export ("tailIndent")]
|
||||
[Override]
|
||||
nfloat TailIndent { get; set; }
|
||||
|
||||
[Export ("firstLineHeadIndent")]
|
||||
[Override]
|
||||
nfloat FirstLineHeadIndent { get; set; }
|
||||
|
||||
[Export ("minimumLineHeight")]
|
||||
[Override]
|
||||
nfloat MinimumLineHeight { get; set; }
|
||||
|
||||
[Export ("maximumLineHeight")]
|
||||
[Override]
|
||||
nfloat MaximumLineHeight { get; set; }
|
||||
|
||||
[Export ("lineBreakMode")]
|
||||
[Override]
|
||||
LineBreakMode LineBreakMode { get; set; }
|
||||
|
||||
[Export ("baseWritingDirection")]
|
||||
[Override]
|
||||
NSWritingDirection BaseWritingDirection { get; set; }
|
||||
|
||||
[Export ("lineHeightMultiple")]
|
||||
[Override]
|
||||
nfloat LineHeightMultiple { get; set; }
|
||||
|
||||
[Export ("paragraphSpacing")]
|
||||
[Override]
|
||||
nfloat ParagraphSpacing { get; set; }
|
||||
|
||||
[Export ("paragraphSpacingBefore")]
|
||||
[Override]
|
||||
nfloat ParagraphSpacingBefore { get; set; }
|
||||
|
||||
[Export ("hyphenationFactor")]
|
||||
[Override]
|
||||
float HyphenationFactor { get; set; } // Returns a float, not nfloat.
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("defaultTabInterval")]
|
||||
[Override]
|
||||
nfloat DefaultTabInterval { get; set; }
|
||||
|
||||
[iOS (7,0)]
|
||||
[Export ("tabStops", ArgumentSemantic.Copy)]
|
||||
[Override]
|
||||
[NullAllowed]
|
||||
NSTextTab[] TabStops { get; set; }
|
||||
|
||||
[iOS (9,0)]
|
||||
[Mac (10,11)]
|
||||
[Override]
|
||||
[Export ("allowsDefaultTighteningForTruncation")]
|
||||
bool AllowsDefaultTighteningForTruncation { get; set; }
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("addTabStop:")]
|
||||
void AddTabStop (NSTextTab textTab);
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("removeTabStop:")]
|
||||
void RemoveTabStop (NSTextTab textTab);
|
||||
|
||||
[iOS (9,0)]
|
||||
[Export ("setParagraphStyle:")]
|
||||
void SetParagraphStyle (NSParagraphStyle paragraphStyle);
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Override]
|
||||
[Export ("textBlocks")]
|
||||
#if XAMCORE_4_0
|
||||
NSTextBlock [] TextBlocks { get; set; }
|
||||
#else
|
||||
NSTextTableBlock [] TextBlocks { get; set; }
|
||||
#endif
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Override]
|
||||
[Export ("textLists")]
|
||||
NSTextList [] TextLists { get; set; }
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Export ("tighteningFactorForTruncation")]
|
||||
[Override]
|
||||
float TighteningFactorForTruncation { get; set; } /* float, not CGFloat */
|
||||
|
||||
[NoiOS, NoTV, NoWatch]
|
||||
[Export ("headerLevel")]
|
||||
[Override]
|
||||
nint HeaderLevel { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace Extrospection {
|
|||
public class SelectorCheck : BaseVisitor {
|
||||
|
||||
HashSet<string> qualified_selectors = new HashSet<string> ();
|
||||
Dictionary<string, Helpers.ArgumentSemantic> qualified_properties = new Dictionary<string, Helpers.ArgumentSemantic> ();
|
||||
Dictionary<string, List<Tuple<MethodDefinition, Helpers.ArgumentSemantic>>> qualified_properties = new Dictionary<string, List<Tuple<MethodDefinition, Helpers.ArgumentSemantic>>> ();
|
||||
|
||||
// most selectors will be found in [Export] attribtues
|
||||
public override void VisitManagedMethod (MethodDefinition method)
|
||||
|
@ -38,7 +38,9 @@ namespace Extrospection {
|
|||
var argumentSemantic = Helpers.ArgumentSemantic.Assign; // Default
|
||||
if (ca.ConstructorArguments.Count > 1) {
|
||||
argumentSemantic = (Helpers.ArgumentSemantic)ca.ConstructorArguments [1].Value;
|
||||
qualified_properties.Add (methodDefinition, argumentSemantic);
|
||||
if (!qualified_properties.TryGetValue (methodDefinition, out var list))
|
||||
qualified_properties [methodDefinition] = list = new List<Tuple<MethodDefinition, Helpers.ArgumentSemantic>> ();
|
||||
list.Add (new Tuple<MethodDefinition, Helpers.ArgumentSemantic> (method, argumentSemantic));
|
||||
}
|
||||
|
||||
qualified_selectors.Add (methodDefinition);
|
||||
|
@ -66,12 +68,18 @@ namespace Extrospection {
|
|||
var nativeArgumentSemantic = decl.Attributes.ToArgumentSemantic ();
|
||||
var nativeMethodDefinition = decl.QualifiedName;
|
||||
|
||||
bool found = qualified_properties.TryGetValue (nativeMethodDefinition, out var managedArgumentSemantic);
|
||||
if (found && managedArgumentSemantic != nativeArgumentSemantic) {
|
||||
// FIXME: only Copy mistakes are reported now
|
||||
if (managedArgumentSemantic == Helpers.ArgumentSemantic.Copy || nativeArgumentSemantic == Helpers.ArgumentSemantic.Copy) {
|
||||
// FIXME: rule disactivated for now
|
||||
//Log.On (framework).Add ($"!incorrect-argument-semantic! Native '{nativeMethodDefinition}' is declared as ({nativeArgumentSemantic.ToUsableString ().ToLowerInvariant ()}) but mapped to 'ArgumentSemantic.{managedArgumentSemantic.ToUsableString ()}'");
|
||||
if (qualified_properties.TryGetValue (nativeMethodDefinition, out var managedArgumentSemanticList)) {
|
||||
foreach (var entry in managedArgumentSemanticList) {
|
||||
var method = entry.Item1;
|
||||
var managedArgumentSemantic = entry.Item2;
|
||||
|
||||
if (managedArgumentSemantic != nativeArgumentSemantic) {
|
||||
// FIXME: only Copy mistakes are reported now
|
||||
if (managedArgumentSemantic == Helpers.ArgumentSemantic.Copy || nativeArgumentSemantic == Helpers.ArgumentSemantic.Copy) {
|
||||
// FIXME: rule disactivated for now
|
||||
// Log.On (framework).Add ($"!incorrect-argument-semantic! Native '{nativeMethodDefinition}' is declared as ({nativeArgumentSemantic.ToUsableString ().ToLowerInvariant ()}) but mapped to 'ArgumentSemantic.{managedArgumentSemantic.ToUsableString ()}' in '{method}'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -203,7 +203,6 @@
|
|||
!missing-null-allowed! 'Foundation.NSUrl UIKit.UIDocumentPickerExtensionViewController::get_OriginalUrl()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSUrlRequest UIKit.UIWebView::get_Request()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSUuid UIKit.UIDevice::get_IdentifierForVendor()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSWritingDirection UIKit.NSParagraphStyle::GetDefaultWritingDirection(System.String)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'ObjCRuntime.Class UIKit.UIStateRestoring::get_ObjectRestorationClass()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'System.Boolean UIKit.UIApplicationDelegate::FinishedLaunching(UIKit.UIApplication,Foundation.NSDictionary)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Boolean UIKit.UIApplicationDelegate::OpenUrl(UIKit.UIApplication,Foundation.NSUrl,System.String,Foundation.NSObject)' is missing an [NullAllowed] on parameter #2
|
||||
|
@ -263,7 +262,6 @@
|
|||
!missing-null-allowed! 'System.Void Foundation.NSObject::set_AccessibilityAttributedUserInputLabels(Foundation.NSAttributedString[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void Foundation.NSObject::set_AccessibilityUserInputLabels(System.String[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.NSLayoutManagerDelegate::DidCompleteLayout(UIKit.NSLayoutManager,UIKit.NSTextContainer,System.Boolean)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Void UIKit.NSMutableParagraphStyle::set_TabStops(UIKit.NSTextTab[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.UIAccessibilityCustomAction::.ctor(System.String,Foundation.NSObject,ObjCRuntime.Selector)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Void UIKit.UIAlertController::AddTextField(System.Action`1<UIKit.UITextField>)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.UIApplication::set_ScheduledLocalNotifications(UIKit.UILocalNotification[])' is missing an [NullAllowed] on parameter #0
|
||||
|
|
|
@ -825,8 +825,6 @@
|
|||
!missing-selector! NSMutableAttributedString::fixAttributesInRange: not bound
|
||||
!missing-selector! NSMutableFontCollection::exclusionDescriptors not bound
|
||||
!missing-selector! NSMutableFontCollection::queryDescriptors not bound
|
||||
!missing-selector! NSMutableParagraphStyle::textBlocks not bound
|
||||
!missing-selector! NSMutableParagraphStyle::textLists not bound
|
||||
!missing-selector! NSNib::instantiateNibWithOwner:topLevelObjects: not bound
|
||||
!missing-selector! NSObject::accessibilityActionDescription: not bound
|
||||
!missing-selector! NSObject::accessibilityArrayAttributeCount: not bound
|
||||
|
@ -1496,7 +1494,6 @@
|
|||
!missing-null-allowed! 'AppKit.NSWindow[] AppKit.NSWindow::get_ChildWindows()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'AppKit.NSWindow[] AppKit.NSWindowDelegate::CustomWindowsToEnterFullScreen(AppKit.NSWindow)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'AppKit.NSWindow[] AppKit.NSWindowDelegate::CustomWindowsToExitFullScreen(AppKit.NSWindow)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'AppKit.NSWritingDirection AppKit.NSParagraphStyle::DefaultWritingDirection(System.String)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'CoreGraphics.CGColorSpace AppKit.NSColorSpace::get_ColorSpace()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'CoreGraphics.CGImage AppKit.NSBitmapImageRep::get_CGImage()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'CoreGraphics.CGImage AppKit.NSImage::AsCGImage(CoreGraphics.CGRect&,AppKit.NSGraphicsContext,Foundation.NSDictionary)' is missing an [NullAllowed] on return type
|
||||
|
@ -1959,7 +1956,6 @@
|
|||
!missing-null-allowed! 'System.Void AppKit.NSMenuItemCell::set_MenuItem(AppKit.NSMenuItem)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void AppKit.NSMutableFontCollection::SetExclusionDescriptors(AppKit.NSFontDescriptor[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void AppKit.NSMutableFontCollection::SetQueryDescriptors(AppKit.NSFontDescriptor[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void AppKit.NSMutableParagraphStyle::set_TabStops(AppKit.NSTextTab[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void AppKit.NSNib::.ctor(Foundation.NSData,Foundation.NSBundle)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Void AppKit.NSObjectController::.ctor(Foundation.NSObject)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void AppKit.NSObjectController::Add(Foundation.NSObject)' is missing an [NullAllowed] on parameter #0
|
||||
|
|
|
@ -190,7 +190,6 @@
|
|||
!missing-null-allowed! 'Foundation.NSString UIKit.UITableViewHeaderFooterView::get_ReuseIdentifier()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSUndoManager UIKit.UIResponder::get_UndoManager()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSUuid UIKit.UIDevice::get_IdentifierForVendor()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSWritingDirection UIKit.NSParagraphStyle::GetDefaultWritingDirection(System.String)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'ObjCRuntime.Class UIKit.UIStateRestoring::get_ObjectRestorationClass()' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'System.Boolean UIKit.UIApplicationDelegate::FinishedLaunching(UIKit.UIApplication,Foundation.NSDictionary)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Boolean UIKit.UIApplicationDelegate::WillFinishLaunching(UIKit.UIApplication,Foundation.NSDictionary)' is missing an [NullAllowed] on parameter #1
|
||||
|
@ -225,7 +224,6 @@
|
|||
!missing-null-allowed! 'System.Void Foundation.NSObject::set_AccessibilityAttributedUserInputLabels(Foundation.NSAttributedString[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void Foundation.NSObject::set_AccessibilityUserInputLabels(System.String[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.NSLayoutManagerDelegate::DidCompleteLayout(UIKit.NSLayoutManager,UIKit.NSTextContainer,System.Boolean)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Void UIKit.NSMutableParagraphStyle::set_TabStops(UIKit.NSTextTab[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.UIAccessibilityCustomAction::.ctor(System.String,Foundation.NSObject,ObjCRuntime.Selector)' is missing an [NullAllowed] on parameter #1
|
||||
!missing-null-allowed! 'System.Void UIKit.UIAlertController::AddTextField(System.Action`1<UIKit.UITextField>)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.UIApplicationDelegate::HandleWatchKitExtensionRequest(UIKit.UIApplication,Foundation.NSDictionary,System.Action`1<Foundation.NSDictionary>)' is missing an [NullAllowed] on parameter #1
|
||||
|
|
|
@ -49,8 +49,6 @@
|
|||
!missing-null-allowed! 'Foundation.NSData Foundation.NSAttributedString::GetDataFromRange(Foundation.NSRange,Foundation.NSDictionary,Foundation.NSError&)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSFileWrapper Foundation.NSAttributedString::GetFileWrapperFromRange(Foundation.NSRange,Foundation.NSDictionary,Foundation.NSError&)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSObject UIKit.UIFontDescriptor::GetObject(Foundation.NSString)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'Foundation.NSWritingDirection UIKit.NSParagraphStyle::GetDefaultWritingDirection(System.String)' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'System.Void UIKit.NSMutableParagraphStyle::set_TabStops(UIKit.NSTextTab[])' is missing an [NullAllowed] on parameter #0
|
||||
!missing-null-allowed! 'UIKit.UIFontDescriptor UIKit.UIFontDescriptor::CreateWithTraits(UIKit.UIFontDescriptorSymbolicTraits)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'UIKit.UIImage UIKit.UIImage::CreateAnimatedImage(System.String,System.Double)' is missing an [NullAllowed] on return type
|
||||
!missing-null-allowed! 'UIKit.UIImage UIKit.UIImage::CreateAnimatedImage(System.String,UIKit.UIEdgeInsets,System.Double)' is missing an [NullAllowed] on return type
|
||||
|
|
Загрузка…
Ссылка в новой задаче