use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
use objc2_app_kit::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
pub struct MCBrowserViewController;
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl ClassType for MCBrowserViewController {
#[inherits(NSResponder, NSObject)]
type Super = NSViewController;
type Mutability = MainThreadOnly;
}
);
#[cfg(all(feature = "MCNearbyServiceBrowser", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
unsafe impl MCNearbyServiceBrowserDelegate for MCBrowserViewController {}
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl NSCoding for MCBrowserViewController {}
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl NSEditor for MCBrowserViewController {}
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl NSObjectProtocol for MCBrowserViewController {}
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl NSSeguePerforming for MCBrowserViewController {}
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl NSUserInterfaceItemIdentification for MCBrowserViewController {}
extern_methods!(
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl MCBrowserViewController {
#[cfg(feature = "MCSession")]
#[method_id(@__retain_semantics Init initWithServiceType:session:)]
pub unsafe fn initWithServiceType_session(
this: Allocated<Self>,
service_type: &NSString,
session: &MCSession,
) -> Retained<Self>;
#[cfg(all(feature = "MCNearbyServiceBrowser", feature = "MCSession"))]
#[method_id(@__retain_semantics Init initWithBrowser:session:)]
pub unsafe fn initWithBrowser_session(
this: Allocated<Self>,
browser: &MCNearbyServiceBrowser,
session: &MCSession,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn MCBrowserViewControllerDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn MCBrowserViewControllerDelegate>>,
);
#[cfg(feature = "MCNearbyServiceBrowser")]
#[method_id(@__retain_semantics Other browser)]
pub unsafe fn browser(&self) -> Retained<MCNearbyServiceBrowser>;
#[cfg(feature = "MCSession")]
#[method_id(@__retain_semantics Other session)]
pub unsafe fn session(&self) -> Retained<MCSession>;
#[method(minimumNumberOfPeers)]
pub unsafe fn minimumNumberOfPeers(&self) -> NSUInteger;
#[method(setMinimumNumberOfPeers:)]
pub unsafe fn setMinimumNumberOfPeers(&self, minimum_number_of_peers: NSUInteger);
#[method(maximumNumberOfPeers)]
pub unsafe fn maximumNumberOfPeers(&self) -> NSUInteger;
#[method(setMaximumNumberOfPeers:)]
pub unsafe fn setMaximumNumberOfPeers(&self, maximum_number_of_peers: NSUInteger);
}
);
extern_methods!(
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl MCBrowserViewController {
#[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(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl MCBrowserViewController {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
unsafe impl MCBrowserViewController {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait MCBrowserViewControllerDelegate: NSObjectProtocol {
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
#[method(browserViewControllerDidFinish:)]
unsafe fn browserViewControllerDidFinish(
&self,
browser_view_controller: &MCBrowserViewController,
);
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
#[method(browserViewControllerWasCancelled:)]
unsafe fn browserViewControllerWasCancelled(
&self,
browser_view_controller: &MCBrowserViewController,
);
#[cfg(all(feature = "MCPeerID", feature = "objc2-app-kit"))]
#[cfg(target_os = "macos")]
#[optional]
#[method(browserViewController:shouldPresentNearbyPeer:withDiscoveryInfo:)]
unsafe fn browserViewController_shouldPresentNearbyPeer_withDiscoveryInfo(
&self,
browser_view_controller: &MCBrowserViewController,
peer_id: &MCPeerID,
info: Option<&NSDictionary<NSString, NSString>>,
) -> bool;
}
unsafe impl ProtocolType for dyn MCBrowserViewControllerDelegate {}
);