mirror of
https://gitee.com/csharpui/CPF.git
synced 2025-07-15 23:13:33 +08:00
241 lines
8.9 KiB
C#
241 lines
8.9 KiB
C#
![]() |
using CPF.Mac.ObjCRuntime;
|
||
|
using System;
|
||
|
using System.ComponentModel;
|
||
|
|
||
|
namespace CPF.Mac.Foundation
|
||
|
{
|
||
|
[Register("NSComparisonPredicate", true)]
|
||
|
public class NSComparisonPredicate : NSPredicate
|
||
|
{
|
||
|
private static readonly IntPtr selPredicateOperatorTypeHandle = Selector.GetHandle("predicateOperatorType");
|
||
|
|
||
|
private static readonly IntPtr selComparisonPredicateModifierHandle = Selector.GetHandle("comparisonPredicateModifier");
|
||
|
|
||
|
private static readonly IntPtr selLeftExpressionHandle = Selector.GetHandle("leftExpression");
|
||
|
|
||
|
private static readonly IntPtr selRightExpressionHandle = Selector.GetHandle("rightExpression");
|
||
|
|
||
|
private static readonly IntPtr selCustomSelectorHandle = Selector.GetHandle("customSelector");
|
||
|
|
||
|
private static readonly IntPtr selOptionsHandle = Selector.GetHandle("options");
|
||
|
|
||
|
private static readonly IntPtr selPredicateWithLeftExpressionRightExpressionModifierTypeOptions_Handle = Selector.GetHandle("predicateWithLeftExpression:rightExpression:modifier:type:options:");
|
||
|
|
||
|
private static readonly IntPtr selPredicateWithLeftExpressionRightExpressionCustomSelector_Handle = Selector.GetHandle("predicateWithLeftExpression:rightExpression:customSelector:");
|
||
|
|
||
|
private static readonly IntPtr selInitWithLeftExpressionRightExpressionModifierTypeOptions_Handle = Selector.GetHandle("initWithLeftExpression:rightExpression:modifier:type:options:");
|
||
|
|
||
|
private static readonly IntPtr selInitWithLeftExpressionRightExpressionCustomSelector_Handle = Selector.GetHandle("initWithLeftExpression:rightExpression:customSelector:");
|
||
|
|
||
|
private static readonly IntPtr class_ptr = Class.GetHandle("NSComparisonPredicate");
|
||
|
|
||
|
private object __mt_LeftExpression_var;
|
||
|
|
||
|
private object __mt_RightExpression_var;
|
||
|
|
||
|
public override IntPtr ClassHandle => class_ptr;
|
||
|
|
||
|
public virtual NSPredicateOperatorType PredicateOperatorType
|
||
|
{
|
||
|
[Export("predicateOperatorType")]
|
||
|
get
|
||
|
{
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
return (NSPredicateOperatorType)Messaging.UInt64_objc_msgSend(base.Handle, selPredicateOperatorTypeHandle);
|
||
|
}
|
||
|
return (NSPredicateOperatorType)Messaging.UInt64_objc_msgSendSuper(base.SuperHandle, selPredicateOperatorTypeHandle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public virtual NSComparisonPredicateModifier ComparisonPredicateModifier
|
||
|
{
|
||
|
[Export("comparisonPredicateModifier")]
|
||
|
get
|
||
|
{
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
return (NSComparisonPredicateModifier)Messaging.UInt64_objc_msgSend(base.Handle, selComparisonPredicateModifierHandle);
|
||
|
}
|
||
|
return (NSComparisonPredicateModifier)Messaging.UInt64_objc_msgSendSuper(base.SuperHandle, selComparisonPredicateModifierHandle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public virtual NSExpression LeftExpression
|
||
|
{
|
||
|
[Export("leftExpression")]
|
||
|
get
|
||
|
{
|
||
|
return (NSExpression)(__mt_LeftExpression_var = ((!IsDirectBinding) ? ((NSExpression)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selLeftExpressionHandle))) : ((NSExpression)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selLeftExpressionHandle)))));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public virtual NSExpression RightExpression
|
||
|
{
|
||
|
[Export("rightExpression")]
|
||
|
get
|
||
|
{
|
||
|
return (NSExpression)(__mt_RightExpression_var = ((!IsDirectBinding) ? ((NSExpression)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selRightExpressionHandle))) : ((NSExpression)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selRightExpressionHandle)))));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public virtual Selector CustomSelector
|
||
|
{
|
||
|
[Export("customSelector")]
|
||
|
get
|
||
|
{
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
return Selector.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selCustomSelectorHandle));
|
||
|
}
|
||
|
return Selector.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selCustomSelectorHandle));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public virtual NSComparisonPredicateOptions Options
|
||
|
{
|
||
|
[Export("options")]
|
||
|
get
|
||
|
{
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
return (NSComparisonPredicateOptions)Messaging.UInt64_objc_msgSend(base.Handle, selOptionsHandle);
|
||
|
}
|
||
|
return (NSComparisonPredicateOptions)Messaging.UInt64_objc_msgSendSuper(base.SuperHandle, selOptionsHandle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||
|
[Export("init")]
|
||
|
public NSComparisonPredicate()
|
||
|
: base(NSObjectFlag.Empty)
|
||
|
{
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSend(base.Handle, Selector.Init);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, Selector.Init);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||
|
[Export("initWithCoder:")]
|
||
|
public NSComparisonPredicate(NSCoder coder)
|
||
|
: base(NSObjectFlag.Empty)
|
||
|
{
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, Selector.InitWithCoder, coder.Handle);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, Selector.InitWithCoder, coder.Handle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||
|
public NSComparisonPredicate(NSObjectFlag t)
|
||
|
: base(t)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||
|
public NSComparisonPredicate(IntPtr handle)
|
||
|
: base(handle)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
[Export("predicateWithLeftExpression:rightExpression:modifier:type:options:")]
|
||
|
public static NSPredicate Create(NSExpression leftExpression, NSExpression rightExpression, NSComparisonPredicateModifier comparisonModifier, NSPredicateOperatorType operatorType, NSComparisonPredicateOptions comparisonOptions)
|
||
|
{
|
||
|
if (leftExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("leftExpression");
|
||
|
}
|
||
|
if (rightExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("rightExpression");
|
||
|
}
|
||
|
return (NSPredicate)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_UInt64_UInt64_UInt64(class_ptr, selPredicateWithLeftExpressionRightExpressionModifierTypeOptions_Handle, leftExpression.Handle, rightExpression.Handle, (ulong)comparisonModifier, (ulong)operatorType, (ulong)comparisonOptions));
|
||
|
}
|
||
|
|
||
|
[Export("predicateWithLeftExpression:rightExpression:customSelector:")]
|
||
|
public static NSPredicate FromSelector(NSExpression leftExpression, NSExpression rightExpression, Selector selector)
|
||
|
{
|
||
|
if (leftExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("leftExpression");
|
||
|
}
|
||
|
if (rightExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("rightExpression");
|
||
|
}
|
||
|
if (selector == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("selector");
|
||
|
}
|
||
|
return (NSPredicate)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr(class_ptr, selPredicateWithLeftExpressionRightExpressionCustomSelector_Handle, leftExpression.Handle, rightExpression.Handle, selector.Handle));
|
||
|
}
|
||
|
|
||
|
[Export("initWithLeftExpression:rightExpression:modifier:type:options:")]
|
||
|
public NSComparisonPredicate(NSExpression leftExpression, NSExpression rightExpression, NSComparisonPredicateModifier comparisonModifier, NSPredicateOperatorType operatorType, NSComparisonPredicateOptions comparisonOptions)
|
||
|
: base(NSObjectFlag.Empty)
|
||
|
{
|
||
|
if (leftExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("leftExpression");
|
||
|
}
|
||
|
if (rightExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("rightExpression");
|
||
|
}
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_UInt64_UInt64_UInt64(base.Handle, selInitWithLeftExpressionRightExpressionModifierTypeOptions_Handle, leftExpression.Handle, rightExpression.Handle, (ulong)comparisonModifier, (ulong)operatorType, (ulong)comparisonOptions);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_UInt64_UInt64_UInt64(base.SuperHandle, selInitWithLeftExpressionRightExpressionModifierTypeOptions_Handle, leftExpression.Handle, rightExpression.Handle, (ulong)comparisonModifier, (ulong)operatorType, (ulong)comparisonOptions);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[Export("initWithLeftExpression:rightExpression:customSelector:")]
|
||
|
public NSComparisonPredicate(NSExpression leftExpression, NSExpression rightExpression, Selector selector)
|
||
|
: base(NSObjectFlag.Empty)
|
||
|
{
|
||
|
if (leftExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("leftExpression");
|
||
|
}
|
||
|
if (rightExpression == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("rightExpression");
|
||
|
}
|
||
|
if (selector == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("selector");
|
||
|
}
|
||
|
if (IsDirectBinding)
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr(base.Handle, selInitWithLeftExpressionRightExpressionCustomSelector_Handle, leftExpression.Handle, rightExpression.Handle, selector.Handle);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_IntPtr(base.SuperHandle, selInitWithLeftExpressionRightExpressionCustomSelector_Handle, leftExpression.Handle, rightExpression.Handle, selector.Handle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected override void Dispose(bool disposing)
|
||
|
{
|
||
|
base.Dispose(disposing);
|
||
|
if (base.Handle == IntPtr.Zero)
|
||
|
{
|
||
|
__mt_LeftExpression_var = null;
|
||
|
__mt_RightExpression_var = null;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|