use objc2::__framework_prelude::*;
use objc2_foundation::*;
#[cfg(feature = "objc2-quartz-core")]
#[cfg(not(target_os = "watchos"))]
use objc2_quartz_core::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITabBarItemPositioning(pub NSInteger);
impl UITabBarItemPositioning {
#[doc(alias = "UITabBarItemPositioningAutomatic")]
pub const Automatic: Self = Self(0);
#[doc(alias = "UITabBarItemPositioningFill")]
pub const Fill: Self = Self(1);
#[doc(alias = "UITabBarItemPositioningCentered")]
pub const Centered: Self = Self(2);
}
unsafe impl Encode for UITabBarItemPositioning {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UITabBarItemPositioning {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
pub struct UITabBar;
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl ClassType for UITabBar {
#[inherits(UIResponder, NSObject)]
type Super = UIView;
type Mutability = MainThreadOnly;
}
);
#[cfg(all(
feature = "UIResponder",
feature = "UIView",
feature = "objc2-quartz-core"
))]
#[cfg(not(target_os = "watchos"))]
unsafe impl CALayerDelegate for UITabBar {}
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl NSCoding for UITabBar {}
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl NSObjectProtocol for UITabBar {}
#[cfg(all(feature = "UIAppearance", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIAppearance for UITabBar {}
#[cfg(all(feature = "UIAppearance", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIAppearanceContainer for UITabBar {}
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UICoordinateSpace for UITabBar {}
#[cfg(all(
feature = "UIDynamicBehavior",
feature = "UIResponder",
feature = "UIView"
))]
unsafe impl UIDynamicItem for UITabBar {}
#[cfg(all(feature = "UIFocus", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIFocusEnvironment for UITabBar {}
#[cfg(all(feature = "UIFocus", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIFocusItem for UITabBar {}
#[cfg(all(feature = "UIFocus", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIFocusItemContainer for UITabBar {}
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UIResponderStandardEditActions for UITabBar {}
#[cfg(all(
feature = "UIResponder",
feature = "UITraitCollection",
feature = "UIView"
))]
unsafe impl UITraitEnvironment for UITabBar {}
extern_methods!(
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UITabBar {
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(&self) -> Option<Retained<ProtocolObject<dyn UITabBarDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(&self, delegate: Option<&ProtocolObject<dyn UITabBarDelegate>>);
#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
#[method_id(@__retain_semantics Other items)]
pub unsafe fn items(&self) -> Option<Retained<NSArray<UITabBarItem>>>;
#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
#[method(setItems:)]
pub unsafe fn setItems(&self, items: Option<&NSArray<UITabBarItem>>);
#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
#[method_id(@__retain_semantics Other selectedItem)]
pub unsafe fn selectedItem(&self) -> Option<Retained<UITabBarItem>>;
#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
#[method(setSelectedItem:)]
pub unsafe fn setSelectedItem(&self, selected_item: Option<&UITabBarItem>);
#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
#[method(setItems:animated:)]
pub unsafe fn setItems_animated(
&self,
items: Option<&NSArray<UITabBarItem>>,
animated: bool,
);
#[cfg(all(feature = "UIBarItem", feature = "UITabBarItem"))]
#[method(beginCustomizingItems:)]
pub unsafe fn beginCustomizingItems(&self, items: &NSArray<UITabBarItem>);
#[method(endCustomizingAnimated:)]
pub unsafe fn endCustomizingAnimated(&self, animated: bool) -> bool;
#[method(isCustomizing)]
pub unsafe fn isCustomizing(&self) -> bool;
#[cfg(feature = "UIColor")]
#[method_id(@__retain_semantics Other tintColor)]
pub unsafe fn tintColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "UIColor")]
#[method(setTintColor:)]
pub unsafe fn setTintColor(&self, tint_color: Option<&UIColor>);
#[cfg(feature = "UIColor")]
#[method_id(@__retain_semantics Other barTintColor)]
pub unsafe fn barTintColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "UIColor")]
#[method(setBarTintColor:)]
pub unsafe fn setBarTintColor(&self, bar_tint_color: Option<&UIColor>);
#[cfg(feature = "UIColor")]
#[method_id(@__retain_semantics Other unselectedItemTintColor)]
pub unsafe fn unselectedItemTintColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "UIColor")]
#[method(setUnselectedItemTintColor:)]
pub unsafe fn setUnselectedItemTintColor(
&self,
unselected_item_tint_color: Option<&UIColor>,
);
#[cfg(feature = "UIColor")]
#[deprecated]
#[method_id(@__retain_semantics Other selectedImageTintColor)]
pub unsafe fn selectedImageTintColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "UIColor")]
#[deprecated]
#[method(setSelectedImageTintColor:)]
pub unsafe fn setSelectedImageTintColor(&self, selected_image_tint_color: Option<&UIColor>);
#[cfg(feature = "UIImage")]
#[method_id(@__retain_semantics Other backgroundImage)]
pub unsafe fn backgroundImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "UIImage")]
#[method(setBackgroundImage:)]
pub unsafe fn setBackgroundImage(&self, background_image: Option<&UIImage>);
#[cfg(feature = "UIImage")]
#[method_id(@__retain_semantics Other selectionIndicatorImage)]
pub unsafe fn selectionIndicatorImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "UIImage")]
#[method(setSelectionIndicatorImage:)]
pub unsafe fn setSelectionIndicatorImage(
&self,
selection_indicator_image: Option<&UIImage>,
);
#[cfg(feature = "UIImage")]
#[method_id(@__retain_semantics Other shadowImage)]
pub unsafe fn shadowImage(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "UIImage")]
#[method(setShadowImage:)]
pub unsafe fn setShadowImage(&self, shadow_image: Option<&UIImage>);
#[method(itemPositioning)]
pub unsafe fn itemPositioning(&self) -> UITabBarItemPositioning;
#[method(setItemPositioning:)]
pub unsafe fn setItemPositioning(&self, item_positioning: UITabBarItemPositioning);
#[method(itemWidth)]
pub unsafe fn itemWidth(&self) -> CGFloat;
#[method(setItemWidth:)]
pub unsafe fn setItemWidth(&self, item_width: CGFloat);
#[method(itemSpacing)]
pub unsafe fn itemSpacing(&self) -> CGFloat;
#[method(setItemSpacing:)]
pub unsafe fn setItemSpacing(&self, item_spacing: CGFloat);
#[cfg(feature = "UIInterface")]
#[method(barStyle)]
pub unsafe fn barStyle(&self) -> UIBarStyle;
#[cfg(feature = "UIInterface")]
#[method(setBarStyle:)]
pub unsafe fn setBarStyle(&self, bar_style: UIBarStyle);
#[method(isTranslucent)]
pub unsafe fn isTranslucent(&self) -> bool;
#[method(setTranslucent:)]
pub unsafe fn setTranslucent(&self, translucent: bool);
#[cfg(all(feature = "UIBarAppearance", feature = "UITabBarAppearance"))]
#[method_id(@__retain_semantics Other standardAppearance)]
pub unsafe fn standardAppearance(&self) -> Retained<UITabBarAppearance>;
#[cfg(all(feature = "UIBarAppearance", feature = "UITabBarAppearance"))]
#[method(setStandardAppearance:)]
pub unsafe fn setStandardAppearance(&self, standard_appearance: &UITabBarAppearance);
#[cfg(all(feature = "UIBarAppearance", feature = "UITabBarAppearance"))]
#[method_id(@__retain_semantics Other scrollEdgeAppearance)]
pub unsafe fn scrollEdgeAppearance(&self) -> Option<Retained<UITabBarAppearance>>;
#[cfg(all(feature = "UIBarAppearance", feature = "UITabBarAppearance"))]
#[method(setScrollEdgeAppearance:)]
pub unsafe fn setScrollEdgeAppearance(
&self,
scroll_edge_appearance: Option<&UITabBarAppearance>,
);
#[method_id(@__retain_semantics Other leadingAccessoryView)]
pub unsafe fn leadingAccessoryView(&self) -> Retained<UIView>;
#[method_id(@__retain_semantics Other trailingAccessoryView)]
pub unsafe fn trailingAccessoryView(&self) -> Retained<UIView>;
}
);
extern_methods!(
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UITabBar {
#[method_id(@__retain_semantics Init initWithFrame:)]
pub unsafe fn initWithFrame(this: Allocated<Self>, frame: CGRect) -> 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 = "UIResponder", feature = "UIView"))]
unsafe impl UITabBar {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait UITabBarDelegate: NSObjectProtocol + IsMainThreadOnly {
#[cfg(all(
feature = "UIBarItem",
feature = "UIResponder",
feature = "UITabBarItem",
feature = "UIView"
))]
#[optional]
#[method(tabBar:didSelectItem:)]
unsafe fn tabBar_didSelectItem(&self, tab_bar: &UITabBar, item: &UITabBarItem);
#[cfg(all(
feature = "UIBarItem",
feature = "UIResponder",
feature = "UITabBarItem",
feature = "UIView"
))]
#[optional]
#[method(tabBar:willBeginCustomizingItems:)]
unsafe fn tabBar_willBeginCustomizingItems(
&self,
tab_bar: &UITabBar,
items: &NSArray<UITabBarItem>,
);
#[cfg(all(
feature = "UIBarItem",
feature = "UIResponder",
feature = "UITabBarItem",
feature = "UIView"
))]
#[optional]
#[method(tabBar:didBeginCustomizingItems:)]
unsafe fn tabBar_didBeginCustomizingItems(
&self,
tab_bar: &UITabBar,
items: &NSArray<UITabBarItem>,
);
#[cfg(all(
feature = "UIBarItem",
feature = "UIResponder",
feature = "UITabBarItem",
feature = "UIView"
))]
#[optional]
#[method(tabBar:willEndCustomizingItems:changed:)]
unsafe fn tabBar_willEndCustomizingItems_changed(
&self,
tab_bar: &UITabBar,
items: &NSArray<UITabBarItem>,
changed: bool,
);
#[cfg(all(
feature = "UIBarItem",
feature = "UIResponder",
feature = "UITabBarItem",
feature = "UIView"
))]
#[optional]
#[method(tabBar:didEndCustomizingItems:changed:)]
unsafe fn tabBar_didEndCustomizingItems_changed(
&self,
tab_bar: &UITabBar,
items: &NSArray<UITabBarItem>,
changed: bool,
);
}
unsafe impl ProtocolType for dyn UITabBarDelegate {}
);
extern_methods!(
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UITabBar {}
);
#[cfg(all(
feature = "UIResponder",
feature = "UISpringLoadedInteractionSupporting",
feature = "UIView"
))]
unsafe impl UISpringLoadedInteractionSupporting for UITabBar {}