use crate::common::*;
use crate::AppKit::*;
use crate::CoreData::*;
use crate::Foundation::*;
pub type NSPageControllerObjectIdentifier = NSString;
ns_enum!(
#[underlying(NSInteger)]
pub enum NSPageControllerTransitionStyle {
NSPageControllerTransitionStyleStackHistory = 0,
NSPageControllerTransitionStyleStackBook = 1,
NSPageControllerTransitionStyleHorizontalStrip = 2,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSPageController;
unsafe impl ClassType for NSPageController {
#[inherits(NSResponder, NSObject)]
type Super = NSViewController;
}
);
extern_methods!(
unsafe impl NSPageController {
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(&self) -> Option<Id<NSPageControllerDelegate, Shared>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(&self, delegate: Option<&NSPageControllerDelegate>);
#[method_id(@__retain_semantics Other selectedViewController)]
pub unsafe fn selectedViewController(&self) -> Option<Id<NSViewController, Shared>>;
#[method(transitionStyle)]
pub unsafe fn transitionStyle(&self) -> NSPageControllerTransitionStyle;
#[method(setTransitionStyle:)]
pub unsafe fn setTransitionStyle(&self, transitionStyle: NSPageControllerTransitionStyle);
#[method_id(@__retain_semantics Other arrangedObjects)]
pub unsafe fn arrangedObjects(&self) -> Id<NSArray, Shared>;
#[method(setArrangedObjects:)]
pub unsafe fn setArrangedObjects(&self, arrangedObjects: &NSArray);
#[method(selectedIndex)]
pub unsafe fn selectedIndex(&self) -> NSInteger;
#[method(setSelectedIndex:)]
pub unsafe fn setSelectedIndex(&self, selectedIndex: NSInteger);
#[method(navigateForwardToObject:)]
pub unsafe fn navigateForwardToObject(&self, object: &Object);
#[method(completeTransition)]
pub unsafe fn completeTransition(&self);
#[method(navigateBack:)]
pub unsafe fn navigateBack(&self, sender: Option<&Object>);
#[method(navigateForward:)]
pub unsafe fn navigateForward(&self, sender: Option<&Object>);
#[method(takeSelectedIndexFrom:)]
pub unsafe fn takeSelectedIndexFrom(&self, sender: Option<&Object>);
}
);
extern_protocol!(
pub struct NSPageControllerDelegate;
unsafe impl ProtocolType for NSPageControllerDelegate {
#[optional]
#[method_id(@__retain_semantics Other pageController:identifierForObject:)]
pub unsafe fn pageController_identifierForObject(
&self,
pageController: &NSPageController,
object: &Object,
) -> Id<NSPageControllerObjectIdentifier, Shared>;
#[optional]
#[method_id(@__retain_semantics Other pageController:viewControllerForIdentifier:)]
pub unsafe fn pageController_viewControllerForIdentifier(
&self,
pageController: &NSPageController,
identifier: &NSPageControllerObjectIdentifier,
) -> Id<NSViewController, Shared>;
#[optional]
#[method(pageController:frameForObject:)]
pub unsafe fn pageController_frameForObject(
&self,
pageController: &NSPageController,
object: Option<&Object>,
) -> NSRect;
#[optional]
#[method(pageController:prepareViewController:withObject:)]
pub unsafe fn pageController_prepareViewController_withObject(
&self,
pageController: &NSPageController,
viewController: &NSViewController,
object: Option<&Object>,
);
#[optional]
#[method(pageController:didTransitionToObject:)]
pub unsafe fn pageController_didTransitionToObject(
&self,
pageController: &NSPageController,
object: &Object,
);
#[optional]
#[method(pageControllerWillStartLiveTransition:)]
pub unsafe fn pageControllerWillStartLiveTransition(
&self,
pageController: &NSPageController,
);
#[optional]
#[method(pageControllerDidEndLiveTransition:)]
pub unsafe fn pageControllerDidEndLiveTransition(&self, pageController: &NSPageController);
}
);
extern_methods!(
unsafe impl NSPageController {
#[method_id(@__retain_semantics Init initWithNibName:bundle:)]
pub unsafe fn initWithNibName_bundle(
this: Option<Allocated<Self>>,
nibNameOrNil: Option<&NSNibName>,
nibBundleOrNil: Option<&NSBundle>,
) -> Id<Self, Shared>;
}
);