use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CLSObject")]
pub struct CLSActivity;
#[cfg(feature = "CLSObject")]
unsafe impl ClassType for CLSActivity {
#[inherits(NSObject)]
type Super = CLSObject;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "CLSObject")]
unsafe impl NSCoding for CLSActivity {}
#[cfg(feature = "CLSObject")]
unsafe impl NSObjectProtocol for CLSActivity {}
#[cfg(feature = "CLSObject")]
unsafe impl NSSecureCoding for CLSActivity {}
extern_methods!(
#[cfg(feature = "CLSObject")]
unsafe impl CLSActivity {
#[method(progress)]
pub unsafe fn progress(&self) -> c_double;
#[method(setProgress:)]
pub unsafe fn setProgress(&self, progress: c_double);
#[method(duration)]
pub unsafe fn duration(&self) -> NSTimeInterval;
#[cfg(feature = "CLSActivityItem")]
#[method_id(@__retain_semantics Other primaryActivityItem)]
pub unsafe fn primaryActivityItem(&self) -> Option<Retained<CLSActivityItem>>;
#[cfg(feature = "CLSActivityItem")]
#[method(setPrimaryActivityItem:)]
pub unsafe fn setPrimaryActivityItem(
&self,
primary_activity_item: Option<&CLSActivityItem>,
);
#[method(addProgressRangeFromStart:toEnd:)]
pub unsafe fn addProgressRangeFromStart_toEnd(&self, start: c_double, end: c_double);
#[cfg(feature = "CLSActivityItem")]
#[method(addAdditionalActivityItem:)]
pub unsafe fn addAdditionalActivityItem(&self, activity_item: &CLSActivityItem);
#[cfg(feature = "CLSActivityItem")]
#[method_id(@__retain_semantics Other additionalActivityItems)]
pub unsafe fn additionalActivityItems(&self) -> Retained<NSArray<CLSActivityItem>>;
}
);
extern_methods!(
#[cfg(feature = "CLSObject")]
unsafe impl CLSActivity {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(feature = "CLSObject")]
unsafe impl CLSActivity {
#[method(isStarted)]
pub unsafe fn isStarted(&self) -> bool;
#[method(start)]
pub unsafe fn start(&self);
#[method(stop)]
pub unsafe fn stop(&self);
#[method(removeAllActivityItems)]
pub unsafe fn removeAllActivityItems(&self);
}
);
extern_methods!(
#[cfg(all(feature = "CLSContext", feature = "CLSObject"))]
unsafe impl CLSContext {
#[method_id(@__retain_semantics Other currentActivity)]
pub unsafe fn currentActivity(&self) -> Option<Retained<CLSActivity>>;
#[method_id(@__retain_semantics Other createNewActivity)]
pub unsafe fn createNewActivity(&self) -> Retained<CLSActivity>;
}
);