icrate 0.1.2

Bindings to Apple's frameworks
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::Foundation::*;

extern_struct!(
    #[encoding_name("?")]
    pub struct NSAffineTransformStruct {
        pub m11: CGFloat,
        pub m12: CGFloat,
        pub m21: CGFloat,
        pub m22: CGFloat,
        pub tX: CGFloat,
        pub tY: CGFloat,
    }
);

unsafe impl Send for NSAffineTransformStruct {}

unsafe impl Sync for NSAffineTransformStruct {}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "Foundation_NSAffineTransform")]
    pub struct NSAffineTransform;

    #[cfg(feature = "Foundation_NSAffineTransform")]
    unsafe impl ClassType for NSAffineTransform {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

#[cfg(feature = "Foundation_NSAffineTransform")]
unsafe impl NSCoding for NSAffineTransform {}

#[cfg(feature = "Foundation_NSAffineTransform")]
unsafe impl NSCopying for NSAffineTransform {}

#[cfg(feature = "Foundation_NSAffineTransform")]
unsafe impl NSObjectProtocol for NSAffineTransform {}

#[cfg(feature = "Foundation_NSAffineTransform")]
unsafe impl NSSecureCoding for NSAffineTransform {}

extern_methods!(
    #[cfg(feature = "Foundation_NSAffineTransform")]
    unsafe impl NSAffineTransform {
        #[method_id(@__retain_semantics Other transform)]
        pub unsafe fn transform() -> Id<NSAffineTransform>;

        #[method_id(@__retain_semantics Init initWithTransform:)]
        pub unsafe fn initWithTransform(
            this: Allocated<Self>,
            transform: &NSAffineTransform,
        ) -> Id<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method(translateXBy:yBy:)]
        pub unsafe fn translateXBy_yBy(&self, delta_x: CGFloat, delta_y: CGFloat);

        #[method(rotateByDegrees:)]
        pub unsafe fn rotateByDegrees(&self, angle: CGFloat);

        #[method(rotateByRadians:)]
        pub unsafe fn rotateByRadians(&self, angle: CGFloat);

        #[method(scaleBy:)]
        pub unsafe fn scaleBy(&self, scale: CGFloat);

        #[method(scaleXBy:yBy:)]
        pub unsafe fn scaleXBy_yBy(&self, scale_x: CGFloat, scale_y: CGFloat);

        #[method(invert)]
        pub unsafe fn invert(&self);

        #[method(appendTransform:)]
        pub unsafe fn appendTransform(&self, transform: &NSAffineTransform);

        #[method(prependTransform:)]
        pub unsafe fn prependTransform(&self, transform: &NSAffineTransform);

        #[method(transformPoint:)]
        pub unsafe fn transformPoint(&self, a_point: NSPoint) -> NSPoint;

        #[method(transformSize:)]
        pub unsafe fn transformSize(&self, a_size: NSSize) -> NSSize;

        #[method(transformStruct)]
        pub unsafe fn transformStruct(&self) -> NSAffineTransformStruct;

        #[method(setTransformStruct:)]
        pub unsafe fn setTransformStruct(&self, transform_struct: NSAffineTransformStruct);
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(feature = "Foundation_NSAffineTransform")]
    unsafe impl NSAffineTransform {
        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);