use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type NSPageControllerObjectIdentifier = NSString;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSPageControllerTransitionStyle(pub NSInteger);
impl NSPageControllerTransitionStyle {
#[doc(alias = "NSPageControllerTransitionStyleStackHistory")]
pub const StackHistory: Self = Self(0);
#[doc(alias = "NSPageControllerTransitionStyleStackBook")]
pub const StackBook: Self = Self(1);
#[doc(alias = "NSPageControllerTransitionStyleHorizontalStrip")]
pub const HorizontalStrip: Self = Self(2);
}
unsafe impl Encode for NSPageControllerTransitionStyle {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for NSPageControllerTransitionStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
pub struct NSPageController;
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl ClassType for NSPageController {
#[inherits(NSResponder, NSObject)]
type Super = NSViewController;
type Mutability = MainThreadOnly;
}
);
#[cfg(all(
feature = "NSAnimation",
feature = "NSResponder",
feature = "NSViewController"
))]
unsafe impl NSAnimatablePropertyContainer for NSPageController {}
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl NSCoding for NSPageController {}
#[cfg(all(
feature = "NSKeyValueBinding",
feature = "NSResponder",
feature = "NSViewController"
))]
unsafe impl NSEditor for NSPageController {}
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl NSObjectProtocol for NSPageController {}
#[cfg(all(
feature = "NSResponder",
feature = "NSStoryboardSegue",
feature = "NSViewController"
))]
unsafe impl NSSeguePerforming for NSPageController {}
#[cfg(all(
feature = "NSResponder",
feature = "NSUserInterfaceItemIdentification",
feature = "NSViewController"
))]
unsafe impl NSUserInterfaceItemIdentification for NSPageController {}
extern_methods!(
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl NSPageController {
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn NSPageControllerDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn NSPageControllerDelegate>>,
);
#[method_id(@__retain_semantics Other selectedViewController)]
pub unsafe fn selectedViewController(&self) -> Option<Retained<NSViewController>>;
#[method(transitionStyle)]
pub unsafe fn transitionStyle(&self) -> NSPageControllerTransitionStyle;
#[method(setTransitionStyle:)]
pub unsafe fn setTransitionStyle(&self, transition_style: NSPageControllerTransitionStyle);
#[method_id(@__retain_semantics Other arrangedObjects)]
pub unsafe fn arrangedObjects(&self) -> Retained<NSArray>;
#[method(setArrangedObjects:)]
pub unsafe fn setArrangedObjects(&self, arranged_objects: &NSArray);
#[method(selectedIndex)]
pub unsafe fn selectedIndex(&self) -> NSInteger;
#[method(setSelectedIndex:)]
pub unsafe fn setSelectedIndex(&self, selected_index: NSInteger);
#[method(navigateForwardToObject:)]
pub unsafe fn navigateForwardToObject(&self, object: &AnyObject);
#[method(completeTransition)]
pub unsafe fn completeTransition(&self);
#[method(navigateBack:)]
pub unsafe fn navigateBack(&self, sender: Option<&AnyObject>);
#[method(navigateForward:)]
pub unsafe fn navigateForward(&self, sender: Option<&AnyObject>);
#[method(takeSelectedIndexFrom:)]
pub unsafe fn takeSelectedIndexFrom(&self, sender: Option<&AnyObject>);
}
);
extern_methods!(
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl NSPageController {
#[cfg(feature = "NSNib")]
#[method_id(@__retain_semantics Init initWithNibName:bundle:)]
pub unsafe fn initWithNibName_bundle(
this: Allocated<Self>,
nib_name_or_nil: Option<&NSNibName>,
nib_bundle_or_nil: Option<&NSBundle>,
) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
}
);
extern_methods!(
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl NSPageController {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
unsafe impl NSPageController {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait NSPageControllerDelegate: NSObjectProtocol + IsMainThreadOnly {
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method_id(@__retain_semantics Other pageController:identifierForObject:)]
unsafe fn pageController_identifierForObject(
&self,
page_controller: &NSPageController,
object: &AnyObject,
) -> Retained<NSPageControllerObjectIdentifier>;
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method_id(@__retain_semantics Other pageController:viewControllerForIdentifier:)]
unsafe fn pageController_viewControllerForIdentifier(
&self,
page_controller: &NSPageController,
identifier: &NSPageControllerObjectIdentifier,
) -> Retained<NSViewController>;
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method(pageController:frameForObject:)]
unsafe fn pageController_frameForObject(
&self,
page_controller: &NSPageController,
object: Option<&AnyObject>,
) -> NSRect;
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method(pageController:prepareViewController:withObject:)]
unsafe fn pageController_prepareViewController_withObject(
&self,
page_controller: &NSPageController,
view_controller: &NSViewController,
object: Option<&AnyObject>,
);
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method(pageController:didTransitionToObject:)]
unsafe fn pageController_didTransitionToObject(
&self,
page_controller: &NSPageController,
object: &AnyObject,
);
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method(pageControllerWillStartLiveTransition:)]
unsafe fn pageControllerWillStartLiveTransition(&self, page_controller: &NSPageController);
#[cfg(all(feature = "NSResponder", feature = "NSViewController"))]
#[optional]
#[method(pageControllerDidEndLiveTransition:)]
unsafe fn pageControllerDidEndLiveTransition(&self, page_controller: &NSPageController);
}
unsafe impl ProtocolType for dyn NSPageControllerDelegate {}
);