//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_protocol!(
    pub unsafe trait UIPopoverPresentationControllerSourceItem: NSObjectProtocol {
        #[cfg(all(feature = "UIResponder", feature = "UIView"))]
        #[method(frameInView:)]
        unsafe fn frameInView(&self, reference_view: &UIView) -> CGRect;
    }

    unsafe impl ProtocolType for dyn UIPopoverPresentationControllerSourceItem {}
);

extern_methods!(
    /// UIPopoverPresentationControllerSourceItem
    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    unsafe impl UIView {}
);

#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UIPopoverPresentationControllerSourceItem for UIView {}

extern_methods!(
    /// UIPopoverPresentationControllerSourceItem
    #[cfg(feature = "UILayoutGuide")]
    unsafe impl UILayoutGuide {}
);

#[cfg(feature = "UILayoutGuide")]
unsafe impl UIPopoverPresentationControllerSourceItem for UILayoutGuide {}

extern_methods!(
    /// UIPopoverPresentationControllerSourceItem
    #[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
    unsafe impl UIBarButtonItem {}
);

#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
unsafe impl UIPopoverPresentationControllerSourceItem for UIBarButtonItem {}

extern_methods!(
    /// UIPopoverPresentationControllerSourceItem
    #[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
    unsafe impl UITabBarItem {}
);

#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
unsafe impl UIPopoverPresentationControllerSourceItem for UITabBarItem {}
