mirror of
https://gitee.com/csharpui/CPF.git
synced 2025-04-05 17:37:51 +08:00
800 lines
28 KiB
C#
800 lines
28 KiB
C#
using CPF.Mac.ObjCRuntime;
|
|
using System;
|
|
using System.ComponentModel;
|
|
|
|
namespace CPF.Mac.Foundation
|
|
{
|
|
[Register("NSBundle", true)]
|
|
public class NSBundle : NSObject
|
|
{
|
|
private static readonly IntPtr selMainBundleHandle = Selector.GetHandle("mainBundle");
|
|
|
|
private static readonly IntPtr selAllBundlesHandle = Selector.GetHandle("allBundles");
|
|
|
|
private static readonly IntPtr selAllFrameworksHandle = Selector.GetHandle("allFrameworks");
|
|
|
|
private static readonly IntPtr selIsLoadedHandle = Selector.GetHandle("isLoaded");
|
|
|
|
private static readonly IntPtr selBundlePathHandle = Selector.GetHandle("bundlePath");
|
|
|
|
private static readonly IntPtr selResourcePathHandle = Selector.GetHandle("resourcePath");
|
|
|
|
private static readonly IntPtr selExecutablePathHandle = Selector.GetHandle("executablePath");
|
|
|
|
private static readonly IntPtr selPrivateFrameworksPathHandle = Selector.GetHandle("privateFrameworksPath");
|
|
|
|
private static readonly IntPtr selSharedFrameworksPathHandle = Selector.GetHandle("sharedFrameworksPath");
|
|
|
|
private static readonly IntPtr selSharedSupportPathHandle = Selector.GetHandle("sharedSupportPath");
|
|
|
|
private static readonly IntPtr selBuiltInPlugInsPathHandle = Selector.GetHandle("builtInPlugInsPath");
|
|
|
|
private static readonly IntPtr selBundleIdentifierHandle = Selector.GetHandle("bundleIdentifier");
|
|
|
|
private static readonly IntPtr selPrincipalClassHandle = Selector.GetHandle("principalClass");
|
|
|
|
private static readonly IntPtr selDevelopmentLocalizationHandle = Selector.GetHandle("developmentLocalization");
|
|
|
|
private static readonly IntPtr selInfoDictionaryHandle = Selector.GetHandle("infoDictionary");
|
|
|
|
private static readonly IntPtr selAppStoreReceiptURLHandle = Selector.GetHandle("appStoreReceiptURL");
|
|
|
|
private static readonly IntPtr selBundleURLHandle = Selector.GetHandle("bundleURL");
|
|
|
|
private static readonly IntPtr selResourceURLHandle = Selector.GetHandle("resourceURL");
|
|
|
|
private static readonly IntPtr selExecutableURLHandle = Selector.GetHandle("executableURL");
|
|
|
|
private static readonly IntPtr selPrivateFrameworksURLHandle = Selector.GetHandle("privateFrameworksURL");
|
|
|
|
private static readonly IntPtr selSharedFrameworksURLHandle = Selector.GetHandle("sharedFrameworksURL");
|
|
|
|
private static readonly IntPtr selSharedSupportURLHandle = Selector.GetHandle("sharedSupportURL");
|
|
|
|
private static readonly IntPtr selBuiltInPlugInsURLHandle = Selector.GetHandle("builtInPlugInsURL");
|
|
|
|
private static readonly IntPtr selPreferredLocalizationsHandle = Selector.GetHandle("preferredLocalizations");
|
|
|
|
private static readonly IntPtr selLocalizationsHandle = Selector.GetHandle("localizations");
|
|
|
|
private static readonly IntPtr selBundleWithPath_Handle = Selector.GetHandle("bundleWithPath:");
|
|
|
|
private static readonly IntPtr selInitWithPath_Handle = Selector.GetHandle("initWithPath:");
|
|
|
|
private static readonly IntPtr selBundleForClass_Handle = Selector.GetHandle("bundleForClass:");
|
|
|
|
private static readonly IntPtr selBundleWithIdentifier_Handle = Selector.GetHandle("bundleWithIdentifier:");
|
|
|
|
private static readonly IntPtr selLoadHandle = Selector.GetHandle("load");
|
|
|
|
private static readonly IntPtr selUnloadHandle = Selector.GetHandle("unload");
|
|
|
|
private static readonly IntPtr selPathForAuxiliaryExecutable_Handle = Selector.GetHandle("pathForAuxiliaryExecutable:");
|
|
|
|
private static readonly IntPtr selClassNamed_Handle = Selector.GetHandle("classNamed:");
|
|
|
|
private static readonly IntPtr selPathForResourceOfTypeInDirectory_Handle = Selector.GetHandle("pathForResource:ofType:inDirectory:");
|
|
|
|
private static readonly IntPtr selPathForResourceOfType_Handle = Selector.GetHandle("pathForResource:ofType:");
|
|
|
|
private static readonly IntPtr selPathForResourceOfTypeInDirectoryForLocalization_Handle = Selector.GetHandle("pathForResource:ofType:inDirectory:forLocalization:");
|
|
|
|
private static readonly IntPtr selLocalizedStringForKeyValueTable_Handle = Selector.GetHandle("localizedStringForKey:value:table:");
|
|
|
|
private static readonly IntPtr selObjectForInfoDictionaryKey_Handle = Selector.GetHandle("objectForInfoDictionaryKey:");
|
|
|
|
private static readonly IntPtr selLoadNibNamedOwner_Handle = Selector.GetHandle("loadNibNamed:owner:");
|
|
|
|
private static readonly IntPtr selPathForImageResource_Handle = Selector.GetHandle("pathForImageResource:");
|
|
|
|
private static readonly IntPtr selPathForSoundResource_Handle = Selector.GetHandle("pathForSoundResource:");
|
|
|
|
private static readonly IntPtr selURLForAuxiliaryExecutable_Handle = Selector.GetHandle("URLForAuxiliaryExecutable:");
|
|
|
|
private static readonly IntPtr selInitWithURL_Handle = Selector.GetHandle("initWithURL:");
|
|
|
|
private static readonly IntPtr selBundleWithURL_Handle = Selector.GetHandle("bundleWithURL:");
|
|
|
|
private static readonly IntPtr selPathsForResourcesOfTypeInDirectory_Handle = Selector.GetHandle("pathsForResourcesOfType:inDirectory:");
|
|
|
|
private static readonly IntPtr selPathsForResourcesOfTypeInDirectoryForLocalization_Handle = Selector.GetHandle("pathsForResourcesOfType:inDirectory:forLocalization:");
|
|
|
|
private static readonly IntPtr class_ptr = Class.GetHandle("NSBundle");
|
|
|
|
private static object __mt_MainBundle_var_static;
|
|
|
|
private static object __mt__AllBundles_var_static;
|
|
|
|
private static object __mt_AllFrameworks_var_static;
|
|
|
|
private object __mt_InfoDictionary_var;
|
|
|
|
private object __mt_AppStoreReceiptUrl_var;
|
|
|
|
private object __mt_BundleUrl_var;
|
|
|
|
private object __mt_ResourceUrl_var;
|
|
|
|
private object __mt_ExecutableUrl_var;
|
|
|
|
private object __mt_PrivateFrameworksUrl_var;
|
|
|
|
private object __mt_SharedFrameworksUrl_var;
|
|
|
|
private object __mt_SharedSupportUrl_var;
|
|
|
|
private object __mt_BuiltInPluginsUrl_var;
|
|
|
|
public override IntPtr ClassHandle => class_ptr;
|
|
|
|
public static NSBundle MainBundle
|
|
{
|
|
[Export("mainBundle")]
|
|
get
|
|
{
|
|
return (NSBundle)(__mt_MainBundle_var_static = (NSBundle)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selMainBundleHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSBundle[] _AllBundles
|
|
{
|
|
[Export("allBundles")]
|
|
get
|
|
{
|
|
return (NSBundle[])(__mt__AllBundles_var_static = NSArray.ArrayFromHandle<NSBundle>(Messaging.IntPtr_objc_msgSend(class_ptr, selAllBundlesHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSBundle[] AllFrameworks
|
|
{
|
|
[Export("allFrameworks")]
|
|
get
|
|
{
|
|
return (NSBundle[])(__mt_AllFrameworks_var_static = NSArray.ArrayFromHandle<NSBundle>(Messaging.IntPtr_objc_msgSend(class_ptr, selAllFrameworksHandle)));
|
|
}
|
|
}
|
|
|
|
public virtual bool IsLoaded
|
|
{
|
|
[Export("isLoaded")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selIsLoadedHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsLoadedHandle);
|
|
}
|
|
}
|
|
|
|
public virtual string BundlePath
|
|
{
|
|
[Export("bundlePath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selBundlePathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selBundlePathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string ResourcePath
|
|
{
|
|
[Export("resourcePath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selResourcePathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selResourcePathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string ExecutablePath
|
|
{
|
|
[Export("executablePath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selExecutablePathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selExecutablePathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string PrivateFrameworksPath
|
|
{
|
|
[Export("privateFrameworksPath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selPrivateFrameworksPathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selPrivateFrameworksPathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string SharedFrameworksPath
|
|
{
|
|
[Export("sharedFrameworksPath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selSharedFrameworksPathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selSharedFrameworksPathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string SharedSupportPath
|
|
{
|
|
[Export("sharedSupportPath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selSharedSupportPathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selSharedSupportPathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string BuiltinPluginsPath
|
|
{
|
|
[Export("builtInPlugInsPath")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selBuiltInPlugInsPathHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selBuiltInPlugInsPathHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string BundleIdentifier
|
|
{
|
|
[Export("bundleIdentifier")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selBundleIdentifierHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selBundleIdentifierHandle));
|
|
}
|
|
}
|
|
|
|
public virtual Class PrincipalClass
|
|
{
|
|
[Export("principalClass")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return new Class(Messaging.IntPtr_objc_msgSend(base.Handle, selPrincipalClassHandle));
|
|
}
|
|
return new Class(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selPrincipalClassHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string DevelopmentLocalization
|
|
{
|
|
[Export("developmentLocalization")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selDevelopmentLocalizationHandle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selDevelopmentLocalizationHandle));
|
|
}
|
|
}
|
|
|
|
public virtual NSDictionary InfoDictionary
|
|
{
|
|
[Export("infoDictionary")]
|
|
get
|
|
{
|
|
return (NSDictionary)(__mt_InfoDictionary_var = ((!IsDirectBinding) ? ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selInfoDictionaryHandle))) : ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selInfoDictionaryHandle)))));
|
|
}
|
|
}
|
|
|
|
public virtual NSUrl AppStoreReceiptUrl
|
|
{
|
|
[Export("appStoreReceiptURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_AppStoreReceiptUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selAppStoreReceiptURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selAppStoreReceiptURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl BundleUrl
|
|
{
|
|
[Export("bundleURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_BundleUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selBundleURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selBundleURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl ResourceUrl
|
|
{
|
|
[Export("resourceURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_ResourceUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selResourceURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selResourceURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl ExecutableUrl
|
|
{
|
|
[Export("executableURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_ExecutableUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selExecutableURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selExecutableURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl PrivateFrameworksUrl
|
|
{
|
|
[Export("privateFrameworksURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_PrivateFrameworksUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selPrivateFrameworksURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selPrivateFrameworksURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl SharedFrameworksUrl
|
|
{
|
|
[Export("sharedFrameworksURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_SharedFrameworksUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selSharedFrameworksURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selSharedFrameworksURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl SharedSupportUrl
|
|
{
|
|
[Export("sharedSupportURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_SharedSupportUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selSharedSupportURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selSharedSupportURLHandle)))));
|
|
}
|
|
}
|
|
|
|
[Since(4, 0)]
|
|
public virtual NSUrl BuiltInPluginsUrl
|
|
{
|
|
[Export("builtInPlugInsURL")]
|
|
get
|
|
{
|
|
return (NSUrl)(__mt_BuiltInPluginsUrl_var = ((!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selBuiltInPlugInsURLHandle))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selBuiltInPlugInsURLHandle)))));
|
|
}
|
|
}
|
|
|
|
public virtual string[] PreferredLocalizations
|
|
{
|
|
[Export("preferredLocalizations")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selPreferredLocalizationsHandle));
|
|
}
|
|
return NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selPreferredLocalizationsHandle));
|
|
}
|
|
}
|
|
|
|
public virtual string[] Localizations
|
|
{
|
|
[Export("localizations")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selLocalizationsHandle));
|
|
}
|
|
return NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selLocalizationsHandle));
|
|
}
|
|
}
|
|
|
|
public string LocalizedString(string key, string comment)
|
|
{
|
|
return LocalizedString(key, "", "");
|
|
}
|
|
|
|
public string LocalizedString(string key, string val, string table, string comment)
|
|
{
|
|
return LocalizedString(key, val, table);
|
|
}
|
|
|
|
public string[] PathsForResources(string fileExtension)
|
|
{
|
|
return PathsForResources(fileExtension, null);
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("initWithCoder:")]
|
|
public NSBundle(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 NSBundle(NSObjectFlag t)
|
|
: base(t)
|
|
{
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSBundle(IntPtr handle)
|
|
: base(handle)
|
|
{
|
|
}
|
|
|
|
[Export("bundleWithPath:")]
|
|
public static NSBundle FromPath(string path)
|
|
{
|
|
if (path == null)
|
|
{
|
|
throw new ArgumentNullException("path");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(path);
|
|
NSBundle result = (NSBundle)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selBundleWithPath_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("initWithPath:")]
|
|
public NSBundle(string path)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (path == null)
|
|
{
|
|
throw new ArgumentNullException("path");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(path);
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithPath_Handle, intPtr);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithPath_Handle, intPtr);
|
|
}
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
|
|
[Export("bundleForClass:")]
|
|
public static NSBundle FromClass(Class c)
|
|
{
|
|
if (c == null)
|
|
{
|
|
throw new ArgumentNullException("c");
|
|
}
|
|
return (NSBundle)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selBundleForClass_Handle, c.Handle));
|
|
}
|
|
|
|
[Export("bundleWithIdentifier:")]
|
|
public static NSBundle FromIdentifier(string str)
|
|
{
|
|
if (str == null)
|
|
{
|
|
throw new ArgumentNullException("str");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(str);
|
|
NSBundle result = (NSBundle)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selBundleWithIdentifier_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("load")]
|
|
public virtual bool Load()
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selLoadHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selLoadHandle);
|
|
}
|
|
|
|
[Export("unload")]
|
|
public virtual bool Unload()
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.bool_objc_msgSend(base.Handle, selUnloadHandle);
|
|
}
|
|
return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selUnloadHandle);
|
|
}
|
|
|
|
[Export("pathForAuxiliaryExecutable:")]
|
|
public virtual string PathForAuxiliaryExecutable(string s)
|
|
{
|
|
if (s == null)
|
|
{
|
|
throw new ArgumentNullException("s");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(s);
|
|
string result = (!IsDirectBinding) ? NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selPathForAuxiliaryExecutable_Handle, intPtr)) : NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selPathForAuxiliaryExecutable_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("classNamed:")]
|
|
public virtual Class ClassNamed(string className)
|
|
{
|
|
if (className == null)
|
|
{
|
|
throw new ArgumentNullException("className");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(className);
|
|
Class result = (!IsDirectBinding) ? new Class(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selClassNamed_Handle, intPtr)) : new Class(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selClassNamed_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathForResource:ofType:inDirectory:")]
|
|
public static string PathForResourceAbsolute(string name, string ofType, string bundleDirectory)
|
|
{
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (bundleDirectory == null)
|
|
{
|
|
throw new ArgumentNullException("bundleDirectory");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(name);
|
|
IntPtr intPtr2 = NSString.CreateNative(ofType);
|
|
IntPtr intPtr3 = NSString.CreateNative(bundleDirectory);
|
|
string result = NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr(class_ptr, selPathForResourceOfTypeInDirectory_Handle, intPtr, intPtr2, intPtr3));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
NSString.ReleaseNative(intPtr3);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathForResource:ofType:")]
|
|
public virtual string PathForResource(string name, string ofType)
|
|
{
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(name);
|
|
IntPtr intPtr2 = NSString.CreateNative(ofType);
|
|
string result = (!IsDirectBinding) ? NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selPathForResourceOfType_Handle, intPtr, intPtr2)) : NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selPathForResourceOfType_Handle, intPtr, intPtr2));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathForResource:ofType:inDirectory:forLocalization:")]
|
|
public virtual string PathForResource(string name, string ofType, string subpath, string localizationName)
|
|
{
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (subpath == null)
|
|
{
|
|
throw new ArgumentNullException("subpath");
|
|
}
|
|
if (localizationName == null)
|
|
{
|
|
throw new ArgumentNullException("localizationName");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(name);
|
|
IntPtr intPtr2 = NSString.CreateNative(ofType);
|
|
IntPtr intPtr3 = NSString.CreateNative(subpath);
|
|
IntPtr intPtr4 = NSString.CreateNative(localizationName);
|
|
string result = (!IsDirectBinding) ? NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_IntPtr_IntPtr(base.SuperHandle, selPathForResourceOfTypeInDirectoryForLocalization_Handle, intPtr, intPtr2, intPtr3, intPtr4)) : NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr_IntPtr(base.Handle, selPathForResourceOfTypeInDirectoryForLocalization_Handle, intPtr, intPtr2, intPtr3, intPtr4));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
NSString.ReleaseNative(intPtr3);
|
|
NSString.ReleaseNative(intPtr4);
|
|
return result;
|
|
}
|
|
|
|
[Export("localizedStringForKey:value:table:")]
|
|
public virtual string LocalizedString(string key, string value, string table)
|
|
{
|
|
IntPtr intPtr = NSString.CreateNative(key);
|
|
IntPtr intPtr2 = NSString.CreateNative(value);
|
|
IntPtr intPtr3 = NSString.CreateNative(table);
|
|
string result = (!IsDirectBinding) ? NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_IntPtr(base.SuperHandle, selLocalizedStringForKeyValueTable_Handle, intPtr, intPtr2, intPtr3)) : NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr(base.Handle, selLocalizedStringForKeyValueTable_Handle, intPtr, intPtr2, intPtr3));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
NSString.ReleaseNative(intPtr3);
|
|
return result;
|
|
}
|
|
|
|
[Export("objectForInfoDictionaryKey:")]
|
|
public virtual NSObject ObjectForInfoDictionary(string key)
|
|
{
|
|
if (key == null)
|
|
{
|
|
throw new ArgumentNullException("key");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(key);
|
|
NSObject result = (!IsDirectBinding) ? Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selObjectForInfoDictionaryKey_Handle, intPtr)) : Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selObjectForInfoDictionaryKey_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("loadNibNamed:owner:")]
|
|
public static bool LoadNib(string nibName, NSObject owner)
|
|
{
|
|
if (nibName == null)
|
|
{
|
|
throw new ArgumentNullException("nibName");
|
|
}
|
|
if (owner == null)
|
|
{
|
|
throw new ArgumentNullException("owner");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(nibName);
|
|
bool result = Messaging.bool_objc_msgSend_IntPtr_IntPtr(class_ptr, selLoadNibNamedOwner_Handle, intPtr, owner.Handle);
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathForImageResource:")]
|
|
public virtual string PathForImageResource(string resource)
|
|
{
|
|
if (resource == null)
|
|
{
|
|
throw new ArgumentNullException("resource");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(resource);
|
|
string result = (!IsDirectBinding) ? NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selPathForImageResource_Handle, intPtr)) : NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selPathForImageResource_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathForSoundResource:")]
|
|
public virtual string PathForSoundResource(string resource)
|
|
{
|
|
if (resource == null)
|
|
{
|
|
throw new ArgumentNullException("resource");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(resource);
|
|
string result = (!IsDirectBinding) ? NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selPathForSoundResource_Handle, intPtr)) : NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selPathForSoundResource_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("URLForAuxiliaryExecutable:")]
|
|
public virtual NSUrl UrlForAuxiliaryExecutable(string executable)
|
|
{
|
|
if (executable == null)
|
|
{
|
|
throw new ArgumentNullException("executable");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(executable);
|
|
NSUrl result = (!IsDirectBinding) ? ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selURLForAuxiliaryExecutable_Handle, intPtr))) : ((NSUrl)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selURLForAuxiliaryExecutable_Handle, intPtr)));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("initWithURL:")]
|
|
public NSBundle(NSUrl url)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (url == null)
|
|
{
|
|
throw new ArgumentNullException("url");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithURL_Handle, url.Handle);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithURL_Handle, url.Handle);
|
|
}
|
|
}
|
|
|
|
[Export("bundleWithURL:")]
|
|
public static NSBundle FromUrl(NSUrl url)
|
|
{
|
|
if (url == null)
|
|
{
|
|
throw new ArgumentNullException("url");
|
|
}
|
|
return (NSBundle)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selBundleWithURL_Handle, url.Handle));
|
|
}
|
|
|
|
[Export("pathsForResourcesOfType:inDirectory:")]
|
|
public virtual string[] PathsForResources(string fileExtension, string subDirectory)
|
|
{
|
|
if (fileExtension == null)
|
|
{
|
|
throw new ArgumentNullException("fileExtension");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(fileExtension);
|
|
IntPtr intPtr2 = NSString.CreateNative(subDirectory);
|
|
string[] result = (!IsDirectBinding) ? NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selPathsForResourcesOfTypeInDirectory_Handle, intPtr, intPtr2)) : NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selPathsForResourcesOfTypeInDirectory_Handle, intPtr, intPtr2));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathsForResourcesOfType:inDirectory:forLocalization:")]
|
|
public virtual string[] PathsForResources(string fileExtension, string subDirectory, string localizationName)
|
|
{
|
|
if (fileExtension == null)
|
|
{
|
|
throw new ArgumentNullException("fileExtension");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(fileExtension);
|
|
IntPtr intPtr2 = NSString.CreateNative(subDirectory);
|
|
IntPtr intPtr3 = NSString.CreateNative(localizationName);
|
|
string[] result = (!IsDirectBinding) ? NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr_IntPtr(base.SuperHandle, selPathsForResourcesOfTypeInDirectoryForLocalization_Handle, intPtr, intPtr2, intPtr3)) : NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr_IntPtr(base.Handle, selPathsForResourcesOfTypeInDirectoryForLocalization_Handle, intPtr, intPtr2, intPtr3));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
NSString.ReleaseNative(intPtr3);
|
|
return result;
|
|
}
|
|
|
|
[Export("pathsForResourcesOfType:inDirectory:")]
|
|
public static string[] GetPathsForResources(string fileExtension, string bundlePath)
|
|
{
|
|
if (fileExtension == null)
|
|
{
|
|
throw new ArgumentNullException("fileExtension");
|
|
}
|
|
if (bundlePath == null)
|
|
{
|
|
throw new ArgumentNullException("bundlePath");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(fileExtension);
|
|
IntPtr intPtr2 = NSString.CreateNative(bundlePath);
|
|
string[] result = NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(class_ptr, selPathsForResourcesOfTypeInDirectory_Handle, intPtr, intPtr2));
|
|
NSString.ReleaseNative(intPtr);
|
|
NSString.ReleaseNative(intPtr2);
|
|
return result;
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
base.Dispose(disposing);
|
|
if (base.Handle == IntPtr.Zero)
|
|
{
|
|
__mt_InfoDictionary_var = null;
|
|
__mt_AppStoreReceiptUrl_var = null;
|
|
__mt_BundleUrl_var = null;
|
|
__mt_ResourceUrl_var = null;
|
|
__mt_ExecutableUrl_var = null;
|
|
__mt_PrivateFrameworksUrl_var = null;
|
|
__mt_SharedFrameworksUrl_var = null;
|
|
__mt_SharedSupportUrl_var = null;
|
|
__mt_BuiltInPluginsUrl_var = null;
|
|
}
|
|
}
|
|
}
|
|
}
|