objc2-app-kit 0.2.2

Bindings to the AppKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFontTraitMask(pub NSUInteger);
bitflags::bitflags! {
    impl NSFontTraitMask: NSUInteger {
        const NSItalicFontMask = 0x00000001;
        const NSBoldFontMask = 0x00000002;
        const NSUnboldFontMask = 0x00000004;
        const NSNonStandardCharacterSetFontMask = 0x00000008;
        const NSNarrowFontMask = 0x00000010;
        const NSExpandedFontMask = 0x00000020;
        const NSCondensedFontMask = 0x00000040;
        const NSSmallCapsFontMask = 0x00000080;
        const NSPosterFontMask = 0x00000100;
        const NSCompressedFontMask = 0x00000200;
        const NSFixedPitchFontMask = 0x00000400;
        const NSUnitalicFontMask = 0x01000000;
    }
}

unsafe impl Encode for NSFontTraitMask {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSFontTraitMask {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFontCollectionOptions(pub NSUInteger);
bitflags::bitflags! {
    impl NSFontCollectionOptions: NSUInteger {
        const NSFontCollectionApplicationOnlyMask = 1<<0;
    }
}

unsafe impl Encode for NSFontCollectionOptions {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSFontCollectionOptions {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFontAction(pub NSUInteger);
impl NSFontAction {
    pub const NSNoFontChangeAction: Self = Self(0);
    pub const NSViaPanelFontAction: Self = Self(1);
    pub const NSAddTraitFontAction: Self = Self(2);
    pub const NSSizeUpFontAction: Self = Self(3);
    pub const NSSizeDownFontAction: Self = Self(4);
    pub const NSHeavierFontAction: Self = Self(5);
    pub const NSLighterFontAction: Self = Self(6);
    pub const NSRemoveTraitFontAction: Self = Self(7);
}

unsafe impl Encode for NSFontAction {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSFontAction {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSFontManager;

    unsafe impl ClassType for NSFontManager {
        type Super = NSObject;
        type Mutability = MainThreadOnly;
    }
);

#[cfg(feature = "NSMenu")]
unsafe impl NSMenuItemValidation for NSFontManager {}

unsafe impl NSObjectProtocol for NSFontManager {}

extern_methods!(
    unsafe impl NSFontManager {
        #[method(setFontPanelFactory:)]
        pub unsafe fn setFontPanelFactory(factory_id: Option<&AnyClass>, mtm: MainThreadMarker);

        #[method(setFontManagerFactory:)]
        pub unsafe fn setFontManagerFactory(factory_id: Option<&AnyClass>, mtm: MainThreadMarker);

        #[method_id(@__retain_semantics Other sharedFontManager)]
        pub unsafe fn sharedFontManager(mtm: MainThreadMarker) -> Retained<NSFontManager>;

        #[method(isMultiple)]
        pub unsafe fn isMultiple(&self) -> bool;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other selectedFont)]
        pub unsafe fn selectedFont(&self) -> Option<Retained<NSFont>>;

        #[cfg(feature = "NSFont")]
        #[method(setSelectedFont:isMultiple:)]
        pub unsafe fn setSelectedFont_isMultiple(&self, font_obj: &NSFont, flag: bool);

        #[cfg(feature = "NSMenu")]
        #[method(setFontMenu:)]
        pub unsafe fn setFontMenu(&self, new_menu: &NSMenu);

        #[cfg(feature = "NSMenu")]
        #[method_id(@__retain_semantics Other fontMenu:)]
        pub unsafe fn fontMenu(&self, create: bool) -> Option<Retained<NSMenu>>;

        #[cfg(all(
            feature = "NSFontPanel",
            feature = "NSPanel",
            feature = "NSResponder",
            feature = "NSWindow"
        ))]
        #[method_id(@__retain_semantics Other fontPanel:)]
        pub unsafe fn fontPanel(&self, create: bool) -> Option<Retained<NSFontPanel>>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other fontWithFamily:traits:weight:size:)]
        pub unsafe fn fontWithFamily_traits_weight_size(
            &self,
            family: &NSString,
            traits: NSFontTraitMask,
            weight: NSInteger,
            size: CGFloat,
        ) -> Option<Retained<NSFont>>;

        #[cfg(feature = "NSFont")]
        #[method(traitsOfFont:)]
        pub unsafe fn traitsOfFont(&self, font_obj: &NSFont) -> NSFontTraitMask;

        #[cfg(feature = "NSFont")]
        #[method(weightOfFont:)]
        pub unsafe fn weightOfFont(&self, font_obj: &NSFont) -> NSInteger;

        #[method_id(@__retain_semantics Other availableFonts)]
        pub unsafe fn availableFonts(&self) -> Retained<NSArray<NSString>>;

        #[method_id(@__retain_semantics Other availableFontFamilies)]
        pub unsafe fn availableFontFamilies(&self) -> Retained<NSArray<NSString>>;

        #[method_id(@__retain_semantics Other availableMembersOfFontFamily:)]
        pub unsafe fn availableMembersOfFontFamily(
            &self,
            fam: &NSString,
        ) -> Option<Retained<NSArray<NSArray>>>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertFont:)]
        pub unsafe fn convertFont(&self, font_obj: &NSFont) -> Retained<NSFont>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertFont:toSize:)]
        pub unsafe fn convertFont_toSize(
            &self,
            font_obj: &NSFont,
            size: CGFloat,
        ) -> Retained<NSFont>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertFont:toFace:)]
        pub unsafe fn convertFont_toFace(
            &self,
            font_obj: &NSFont,
            typeface: &NSString,
        ) -> Option<Retained<NSFont>>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertFont:toFamily:)]
        pub unsafe fn convertFont_toFamily(
            &self,
            font_obj: &NSFont,
            family: &NSString,
        ) -> Retained<NSFont>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertFont:toHaveTrait:)]
        pub unsafe fn convertFont_toHaveTrait(
            &self,
            font_obj: &NSFont,
            r#trait: NSFontTraitMask,
        ) -> Retained<NSFont>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertFont:toNotHaveTrait:)]
        pub unsafe fn convertFont_toNotHaveTrait(
            &self,
            font_obj: &NSFont,
            r#trait: NSFontTraitMask,
        ) -> Retained<NSFont>;

        #[cfg(feature = "NSFont")]
        #[method_id(@__retain_semantics Other convertWeight:ofFont:)]
        pub unsafe fn convertWeight_ofFont(
            &self,
            up_flag: bool,
            font_obj: &NSFont,
        ) -> Retained<NSFont>;

        #[method(isEnabled)]
        pub unsafe fn isEnabled(&self) -> bool;

        #[method(setEnabled:)]
        pub unsafe fn setEnabled(&self, enabled: bool);

        #[method(action)]
        pub unsafe fn action(&self) -> Sel;

        #[method(setAction:)]
        pub unsafe fn setAction(&self, action: Sel);

        #[deprecated = "NSFontManager doesn't have any delegate method. This property should not be used."]
        #[method_id(@__retain_semantics Other delegate)]
        pub unsafe fn delegate(&self) -> Option<Retained<AnyObject>>;

        #[deprecated = "NSFontManager doesn't have any delegate method. This property should not be used."]
        #[method(setDelegate:)]
        pub unsafe fn setDelegate(&self, delegate: Option<&AnyObject>);

        #[method(sendAction)]
        pub unsafe fn sendAction(&self) -> bool;

        #[method_id(@__retain_semantics Other localizedNameForFamily:face:)]
        pub unsafe fn localizedNameForFamily_face(
            &self,
            family: &NSString,
            face_key: Option<&NSString>,
        ) -> Retained<NSString>;

        #[method(setSelectedAttributes:isMultiple:)]
        pub unsafe fn setSelectedAttributes_isMultiple(
            &self,
            attributes: &NSDictionary<NSString, AnyObject>,
            flag: bool,
        );

        #[method_id(@__retain_semantics Other convertAttributes:)]
        pub unsafe fn convertAttributes(
            &self,
            attributes: &NSDictionary<NSString, AnyObject>,
        ) -> Retained<NSDictionary<NSString, AnyObject>>;

        #[cfg(feature = "NSFontDescriptor")]
        #[deprecated = "Use -[NSFontDescriptor matchingFontDescriptorsWithMandatoryKeys:] instead"]
        #[method_id(@__retain_semantics Other availableFontNamesMatchingFontDescriptor:)]
        pub unsafe fn availableFontNamesMatchingFontDescriptor(
            &self,
            descriptor: &NSFontDescriptor,
        ) -> Option<Retained<NSArray>>;

        #[deprecated = "Use +[NSFontCollection allFontCollectionNames] instead"]
        #[method_id(@__retain_semantics Other collectionNames)]
        pub unsafe fn collectionNames(&self) -> Retained<NSArray>;

        #[deprecated = "Use -[NSFontCollection matchingDescriptors] instead"]
        #[method_id(@__retain_semantics Other fontDescriptorsInCollection:)]
        pub unsafe fn fontDescriptorsInCollection(
            &self,
            collection_names: &NSString,
        ) -> Option<Retained<NSArray>>;

        #[deprecated = "Use +[NSFontCollection showFontCollection:withName:visibility:name:] instead"]
        #[method(addCollection:options:)]
        pub unsafe fn addCollection_options(
            &self,
            collection_name: &NSString,
            collection_options: NSFontCollectionOptions,
        ) -> bool;

        #[deprecated = "Use +[NSFontCollection hideFontCollectionWithName:visibility:error:] instead"]
        #[method(removeCollection:)]
        pub unsafe fn removeCollection(&self, collection_name: &NSString) -> bool;

        #[deprecated = "Use -[NSMutableFontCollection addQueryForDescriptors:] instead"]
        #[method(addFontDescriptors:toCollection:)]
        pub unsafe fn addFontDescriptors_toCollection(
            &self,
            descriptors: &NSArray,
            collection_name: &NSString,
        );

        #[cfg(feature = "NSFontDescriptor")]
        #[deprecated = "Use -[NSMutableFontCollection removeQueryForDescriptors:] instead"]
        #[method(removeFontDescriptor:fromCollection:)]
        pub unsafe fn removeFontDescriptor_fromCollection(
            &self,
            descriptor: &NSFontDescriptor,
            collection: &NSString,
        );

        #[method(currentFontAction)]
        pub unsafe fn currentFontAction(&self) -> NSFontAction;

        #[method(convertFontTraits:)]
        pub unsafe fn convertFontTraits(&self, traits: NSFontTraitMask) -> NSFontTraitMask;

        #[method_id(@__retain_semantics Other target)]
        pub unsafe fn target(&self) -> Option<Retained<AnyObject>>;

        #[method(setTarget:)]
        pub unsafe fn setTarget(&self, target: Option<&AnyObject>);
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl NSFontManager {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_methods!(
    /// NSFontManagerMenuActionMethods
    unsafe impl NSFontManager {
        #[method(fontNamed:hasTraits:)]
        pub unsafe fn fontNamed_hasTraits(
            &self,
            f_name: &NSString,
            some_traits: NSFontTraitMask,
        ) -> bool;

        #[method_id(@__retain_semantics Other availableFontNamesWithTraits:)]
        pub unsafe fn availableFontNamesWithTraits(
            &self,
            some_traits: NSFontTraitMask,
        ) -> Option<Retained<NSArray<NSString>>>;

        #[method(addFontTrait:)]
        pub unsafe fn addFontTrait(&self, sender: Option<&AnyObject>);

        #[method(removeFontTrait:)]
        pub unsafe fn removeFontTrait(&self, sender: Option<&AnyObject>);

        #[method(modifyFontViaPanel:)]
        pub unsafe fn modifyFontViaPanel(&self, sender: Option<&AnyObject>);

        #[method(modifyFont:)]
        pub unsafe fn modifyFont(&self, sender: Option<&AnyObject>);

        #[method(orderFrontFontPanel:)]
        pub unsafe fn orderFrontFontPanel(&self, sender: Option<&AnyObject>);

        #[method(orderFrontStylesPanel:)]
        pub unsafe fn orderFrontStylesPanel(&self, sender: Option<&AnyObject>);
    }
);