235 lines
8.8 KiB
Rust
235 lines
8.8 KiB
Rust
// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
use std::os::raw::c_void;
|
|
|
|
use crate::array::CFArrayRef;
|
|
#[cfg(target_os = "macos")]
|
|
use crate::base::SInt32;
|
|
use crate::base::{Boolean, CFAllocatorRef, CFTypeID, CFTypeRef, UInt32};
|
|
use crate::dictionary::CFDictionaryRef;
|
|
use crate::error::CFErrorRef;
|
|
use crate::string::CFStringRef;
|
|
use crate::url::CFURLRef;
|
|
use std::os::raw::{c_int, c_uint};
|
|
|
|
#[repr(C)]
|
|
pub struct __CFBundle(c_void);
|
|
|
|
pub type CFBundleRef = *mut __CFBundle;
|
|
pub type CFPlugInRef = *mut __CFBundle;
|
|
pub type CFBundleRefNum = c_int;
|
|
|
|
#[allow(unused)]
|
|
#[inline(always)]
|
|
pub unsafe fn CFCopyLocalizedString(key: CFStringRef, comment: CFStringRef) -> CFStringRef {
|
|
CFBundleCopyLocalizedString(CFBundleGetMainBundle(), key, key, std::ptr::null())
|
|
}
|
|
#[allow(unused)]
|
|
#[inline(always)]
|
|
pub unsafe fn CFCopyLocalizedStringFromTable(
|
|
key: CFStringRef,
|
|
tbl: CFStringRef,
|
|
comment: CFStringRef,
|
|
) -> CFStringRef {
|
|
CFBundleCopyLocalizedString(CFBundleGetMainBundle(), key, key, tbl)
|
|
}
|
|
#[allow(unused)]
|
|
#[inline(always)]
|
|
pub unsafe fn CFCopyLocalizedStringFromTableInBundle(
|
|
key: CFStringRef,
|
|
tbl: CFStringRef,
|
|
bundle: CFBundleRef,
|
|
comment: CFStringRef,
|
|
) -> CFStringRef {
|
|
CFBundleCopyLocalizedString(bundle, key, key, tbl)
|
|
}
|
|
#[allow(unused)]
|
|
#[inline(always)]
|
|
pub unsafe fn CFCopyLocalizedStringWithDefaultValue(
|
|
key: CFStringRef,
|
|
tbl: CFStringRef,
|
|
bundle: CFBundleRef,
|
|
value: CFStringRef,
|
|
comment: CFStringRef,
|
|
) -> CFStringRef {
|
|
CFBundleCopyLocalizedString(bundle, key, value, tbl)
|
|
}
|
|
|
|
pub static kCFBundleExecutableArchitectureI386: c_uint = 0x00000007;
|
|
pub static kCFBundleExecutableArchitecturePPC: c_uint = 0x00000012;
|
|
pub static kCFBundleExecutableArchitectureX86_64: c_uint = 0x01000007;
|
|
pub static kCFBundleExecutableArchitecturePPC64: c_uint = 0x01000012;
|
|
//pub static kCFBundleExecutableArchitectureARM64: c_uint = 0x0100000c; //macos(11.0)+
|
|
|
|
extern "C" {
|
|
/*
|
|
* CFBundle.h
|
|
*/
|
|
|
|
/* Information Property List Keys */
|
|
pub static kCFBundleInfoDictionaryVersionKey: CFStringRef;
|
|
pub static kCFBundleExecutableKey: CFStringRef;
|
|
pub static kCFBundleIdentifierKey: CFStringRef;
|
|
pub static kCFBundleVersionKey: CFStringRef;
|
|
pub static kCFBundleDevelopmentRegionKey: CFStringRef;
|
|
pub static kCFBundleNameKey: CFStringRef;
|
|
pub static kCFBundleLocalizationsKey: CFStringRef;
|
|
|
|
/* Creating and Accessing Bundles */
|
|
pub fn CFBundleCreate(allocator: CFAllocatorRef, bundleURL: CFURLRef) -> CFBundleRef;
|
|
pub fn CFBundleCreateBundlesFromDirectory(
|
|
allocator: CFAllocatorRef,
|
|
directoryURL: CFURLRef,
|
|
bundleType: CFStringRef,
|
|
) -> CFArrayRef;
|
|
pub fn CFBundleGetAllBundles() -> CFArrayRef;
|
|
pub fn CFBundleGetBundleWithIdentifier(bundleID: CFStringRef) -> CFBundleRef;
|
|
pub fn CFBundleGetMainBundle() -> CFBundleRef;
|
|
|
|
/* Loading and Unloading a Bundle */
|
|
pub fn CFBundleIsExecutableLoaded(bundle: CFBundleRef) -> Boolean;
|
|
pub fn CFBundlePreflightExecutable(bundle: CFBundleRef, error: *mut CFErrorRef) -> Boolean;
|
|
pub fn CFBundleLoadExecutable(bundle: CFBundleRef) -> Boolean;
|
|
pub fn CFBundleLoadExecutableAndReturnError(
|
|
bundle: CFBundleRef,
|
|
error: *mut CFErrorRef,
|
|
) -> Boolean;
|
|
pub fn CFBundleUnloadExecutable(bundle: CFBundleRef);
|
|
|
|
/* Finding Locations in a Bundle */
|
|
pub fn CFBundleCopyAuxiliaryExecutableURL(
|
|
bundle: CFBundleRef,
|
|
executableName: CFStringRef,
|
|
) -> CFURLRef;
|
|
pub fn CFBundleCopyBuiltInPlugInsURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleCopyExecutableURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleCopyPrivateFrameworksURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleCopyResourcesDirectoryURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleCopySharedFrameworksURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleCopySharedSupportURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleCopySupportFilesDirectoryURL(bundle: CFBundleRef) -> CFURLRef;
|
|
|
|
/* Locating Bundle Resources */
|
|
#[cfg(target_os = "macos")]
|
|
pub fn CFBundleCloseBundleResourceMap(bundle: CFBundleRef, refNum: CFBundleRefNum); // DEPRECATED macosx(10.0, 10.15)
|
|
pub fn CFBundleCopyResourceURL(
|
|
bundle: CFBundleRef,
|
|
resourceName: CFStringRef,
|
|
resourceType: CFStringRef,
|
|
subDirName: CFStringRef,
|
|
) -> CFURLRef;
|
|
pub fn CFBundleCopyResourceURLInDirectory(
|
|
bundleURL: CFURLRef,
|
|
resourceName: CFStringRef,
|
|
resourceType: CFStringRef,
|
|
subDirName: CFStringRef,
|
|
) -> CFURLRef;
|
|
pub fn CFBundleCopyResourceURLsOfType(
|
|
bundle: CFBundleRef,
|
|
resourceType: CFStringRef,
|
|
subDirName: CFStringRef,
|
|
) -> CFArrayRef;
|
|
pub fn CFBundleCopyResourceURLsOfTypeInDirectory(
|
|
bundleURL: CFURLRef,
|
|
resourceType: CFStringRef,
|
|
subDirName: CFStringRef,
|
|
) -> CFArrayRef;
|
|
pub fn CFBundleCopyResourceURLForLocalization(
|
|
bundle: CFBundleRef,
|
|
resourceName: CFStringRef,
|
|
resourceType: CFStringRef,
|
|
subDirName: CFStringRef,
|
|
localizationName: CFStringRef,
|
|
) -> CFURLRef;
|
|
pub fn CFBundleCopyResourceURLsOfTypeForLocalization(
|
|
bundle: CFBundleRef,
|
|
resourceType: CFStringRef,
|
|
subDirName: CFStringRef,
|
|
localizationName: CFStringRef,
|
|
) -> CFArrayRef;
|
|
#[cfg(target_os = "macos")]
|
|
pub fn CFBundleOpenBundleResourceFiles(
|
|
bundle: CFBundleRef,
|
|
refNum: *mut CFBundleRefNum,
|
|
localizedRefNum: *mut CFBundleRefNum,
|
|
) -> SInt32; // DEPRECATED macosx(10.0, 10.15)
|
|
#[cfg(target_os = "macos")]
|
|
pub fn CFBundleOpenBundleResourceMap(bundle: CFBundleRef) -> CFBundleRefNum; // DEPRECATED macosx(10.0, 10.15)
|
|
|
|
/* Managing Localizations */
|
|
pub fn CFBundleCopyBundleLocalizations(bundle: CFBundleRef) -> CFArrayRef;
|
|
pub fn CFBundleCopyLocalizedString(
|
|
bundle: CFBundleRef,
|
|
key: CFStringRef,
|
|
value: CFStringRef,
|
|
tableName: CFStringRef,
|
|
) -> CFStringRef;
|
|
pub fn CFBundleCopyLocalizationsForPreferences(
|
|
locArray: CFArrayRef,
|
|
prefArray: CFArrayRef,
|
|
) -> CFArrayRef;
|
|
pub fn CFBundleCopyLocalizationsForURL(url: CFURLRef) -> CFArrayRef;
|
|
pub fn CFBundleCopyPreferredLocalizationsFromArray(locArray: CFArrayRef) -> CFArrayRef;
|
|
|
|
/* Managing Executable Code */
|
|
pub fn CFBundleGetDataPointerForName(
|
|
bundle: CFBundleRef,
|
|
symbolName: CFStringRef,
|
|
) -> *mut c_void;
|
|
pub fn CFBundleGetDataPointersForNames(
|
|
bundle: CFBundleRef,
|
|
symbolNames: CFArrayRef,
|
|
stbl: *mut [c_void],
|
|
);
|
|
pub fn CFBundleGetFunctionPointerForName(
|
|
bundle: CFBundleRef,
|
|
function_name: CFStringRef,
|
|
) -> *const c_void;
|
|
pub fn CFBundleGetFunctionPointersForNames(
|
|
bundle: CFBundleRef,
|
|
functionNames: CFArrayRef,
|
|
ftbl: *mut [c_void],
|
|
);
|
|
pub fn CFBundleGetPlugIn(bundle: CFBundleRef) -> CFPlugInRef;
|
|
|
|
/* Getting Bundle Properties */
|
|
pub fn CFBundleCopyBundleURL(bundle: CFBundleRef) -> CFURLRef;
|
|
pub fn CFBundleGetDevelopmentRegion(bundle: CFBundleRef) -> CFStringRef;
|
|
pub fn CFBundleGetIdentifier(bundle: CFBundleRef) -> CFStringRef;
|
|
pub fn CFBundleGetInfoDictionary(bundle: CFBundleRef) -> CFDictionaryRef;
|
|
pub fn CFBundleGetLocalInfoDictionary(bundle: CFBundleRef) -> CFDictionaryRef;
|
|
pub fn CFBundleGetValueForInfoDictionaryKey(bundle: CFBundleRef, key: CFStringRef)
|
|
-> CFTypeRef;
|
|
pub fn CFBundleCopyInfoDictionaryInDirectory(bundleURL: CFURLRef) -> CFDictionaryRef;
|
|
pub fn CFBundleCopyInfoDictionaryForURL(url: CFURLRef) -> CFDictionaryRef;
|
|
pub fn CFBundleGetPackageInfo(
|
|
bundle: CFBundleRef,
|
|
packageType: *mut UInt32,
|
|
packageCreator: *mut UInt32,
|
|
);
|
|
pub fn CFBundleGetPackageInfoInDirectory(
|
|
url: CFURLRef,
|
|
packageType: *mut UInt32,
|
|
packageCreator: *mut UInt32,
|
|
) -> Boolean;
|
|
pub fn CFBundleCopyExecutableArchitectures(bundle: CFBundleRef) -> CFArrayRef;
|
|
pub fn CFBundleCopyExecutableArchitecturesForURL(url: CFURLRef) -> CFArrayRef;
|
|
pub fn CFBundleGetVersionNumber(bundle: CFBundleRef) -> UInt32;
|
|
|
|
/* macos(11.0)+
|
|
pub fn CFBundleIsExecutableLoadable(bundle: CFBundleRef) -> Boolean;
|
|
pub fn CFBundleIsExecutableLoadableForURL(url: CFURLRef) -> Boolean;
|
|
pub fn CFBundleIsArchitectureLoadable(arch: cpu_type_t) -> Boolean;
|
|
*/
|
|
|
|
/* Getting the CFBundle Type ID */
|
|
pub fn CFBundleGetTypeID() -> CFTypeID;
|
|
}
|