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!(
#[cfg(feature = "Foundation_NSAffineTransform")]
unsafe impl NSAffineTransform {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);