use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIBezierPath;
unsafe impl ClassType for UIBezierPath {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for UIBezierPath {}
unsafe impl NSCopying for UIBezierPath {}
unsafe impl NSObjectProtocol for UIBezierPath {}
unsafe impl NSSecureCoding for UIBezierPath {}
extern_methods!(
unsafe impl UIBezierPath {
#[method_id(@__retain_semantics Other bezierPath)]
pub unsafe fn bezierPath() -> Retained<Self>;
#[method_id(@__retain_semantics Other bezierPathWithRect:)]
pub unsafe fn bezierPathWithRect(rect: CGRect) -> Retained<Self>;
#[method_id(@__retain_semantics Other bezierPathWithOvalInRect:)]
pub unsafe fn bezierPathWithOvalInRect(rect: CGRect) -> Retained<Self>;
#[method_id(@__retain_semantics Other bezierPathWithRoundedRect:cornerRadius:)]
pub unsafe fn bezierPathWithRoundedRect_cornerRadius(
rect: CGRect,
corner_radius: CGFloat,
) -> Retained<Self>;
#[cfg(feature = "UIGeometry")]
#[method_id(@__retain_semantics Other bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:)]
pub unsafe fn bezierPathWithRoundedRect_byRoundingCorners_cornerRadii(
rect: CGRect,
corners: UIRectCorner,
corner_radii: CGSize,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:)]
pub unsafe fn bezierPathWithArcCenter_radius_startAngle_endAngle_clockwise(
center: CGPoint,
radius: CGFloat,
start_angle: CGFloat,
end_angle: CGFloat,
clockwise: bool,
) -> Retained<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[method(moveToPoint:)]
pub unsafe fn moveToPoint(&self, point: CGPoint);
#[method(addLineToPoint:)]
pub unsafe fn addLineToPoint(&self, point: CGPoint);
#[method(addCurveToPoint:controlPoint1:controlPoint2:)]
pub unsafe fn addCurveToPoint_controlPoint1_controlPoint2(
&self,
end_point: CGPoint,
control_point1: CGPoint,
control_point2: CGPoint,
);
#[method(addQuadCurveToPoint:controlPoint:)]
pub unsafe fn addQuadCurveToPoint_controlPoint(
&self,
end_point: CGPoint,
control_point: CGPoint,
);
#[method(addArcWithCenter:radius:startAngle:endAngle:clockwise:)]
pub unsafe fn addArcWithCenter_radius_startAngle_endAngle_clockwise(
&self,
center: CGPoint,
radius: CGFloat,
start_angle: CGFloat,
end_angle: CGFloat,
clockwise: bool,
);
#[method(closePath)]
pub unsafe fn closePath(&self);
#[method(removeAllPoints)]
pub unsafe fn removeAllPoints(&self);
#[method(appendPath:)]
pub unsafe fn appendPath(&self, bezier_path: &UIBezierPath);
#[method_id(@__retain_semantics Other bezierPathByReversingPath)]
pub unsafe fn bezierPathByReversingPath(&self) -> Retained<UIBezierPath>;
#[method(applyTransform:)]
pub unsafe fn applyTransform(&self, transform: CGAffineTransform);
#[method(isEmpty)]
pub unsafe fn isEmpty(&self) -> bool;
#[method(bounds)]
pub unsafe fn bounds(&self) -> CGRect;
#[method(currentPoint)]
pub unsafe fn currentPoint(&self) -> CGPoint;
#[method(containsPoint:)]
pub unsafe fn containsPoint(&self, point: CGPoint) -> bool;
#[method(lineWidth)]
pub unsafe fn lineWidth(&self) -> CGFloat;
#[method(setLineWidth:)]
pub unsafe fn setLineWidth(&self, line_width: CGFloat);
#[method(miterLimit)]
pub unsafe fn miterLimit(&self) -> CGFloat;
#[method(setMiterLimit:)]
pub unsafe fn setMiterLimit(&self, miter_limit: CGFloat);
#[method(flatness)]
pub unsafe fn flatness(&self) -> CGFloat;
#[method(setFlatness:)]
pub unsafe fn setFlatness(&self, flatness: CGFloat);
#[method(usesEvenOddFillRule)]
pub unsafe fn usesEvenOddFillRule(&self) -> bool;
#[method(setUsesEvenOddFillRule:)]
pub unsafe fn setUsesEvenOddFillRule(&self, uses_even_odd_fill_rule: bool);
#[method(setLineDash:count:phase:)]
pub unsafe fn setLineDash_count_phase(
&self,
pattern: *mut CGFloat,
count: NSInteger,
phase: CGFloat,
);
#[method(getLineDash:count:phase:)]
pub unsafe fn getLineDash_count_phase(
&self,
pattern: *mut CGFloat,
count: *mut NSInteger,
phase: *mut CGFloat,
);
#[method(fill)]
pub unsafe fn fill(&self);
#[method(stroke)]
pub unsafe fn stroke(&self);
#[method(addClip)]
pub unsafe fn addClip(&self);
}
);
extern_methods!(
unsafe impl UIBezierPath {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);