use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(UITrackingLayoutGuide, UILayoutGuide, NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "UILayoutGuide", feature = "UITrackingLayoutGuide"))]
pub struct UIKeyboardLayoutGuide;
);
#[cfg(all(feature = "UILayoutGuide", feature = "UITrackingLayoutGuide"))]
extern_conformance!(
unsafe impl NSCoding for UIKeyboardLayoutGuide {}
);
#[cfg(all(feature = "UILayoutGuide", feature = "UITrackingLayoutGuide"))]
extern_conformance!(
unsafe impl NSObjectProtocol for UIKeyboardLayoutGuide {}
);
#[cfg(all(feature = "UILayoutGuide", feature = "UITrackingLayoutGuide"))]
impl UIKeyboardLayoutGuide {
extern_methods!(
#[unsafe(method(followsUndockedKeyboard))]
#[unsafe(method_family = none)]
pub fn followsUndockedKeyboard(&self) -> bool;
#[unsafe(method(setFollowsUndockedKeyboard:))]
#[unsafe(method_family = none)]
pub fn setFollowsUndockedKeyboard(&self, follows_undocked_keyboard: bool);
#[unsafe(method(usesBottomSafeArea))]
#[unsafe(method_family = none)]
pub fn usesBottomSafeArea(&self) -> bool;
#[unsafe(method(setUsesBottomSafeArea:))]
#[unsafe(method_family = none)]
pub fn setUsesBottomSafeArea(&self, uses_bottom_safe_area: bool);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(keyboardDismissPadding))]
#[unsafe(method_family = none)]
pub fn keyboardDismissPadding(&self) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setKeyboardDismissPadding:))]
#[unsafe(method_family = none)]
pub fn setKeyboardDismissPadding(&self, keyboard_dismiss_padding: CGFloat);
);
}
#[cfg(all(feature = "UILayoutGuide", feature = "UITrackingLayoutGuide"))]
impl UIKeyboardLayoutGuide {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}