objc2-browser-engine-kit 0.3.2

Bindings to the BrowserEngineKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/browserenginekit/beaccessibilitypressedstate?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct BEAccessibilityPressedState(pub NSInteger);
impl BEAccessibilityPressedState {
    #[doc(alias = "BEAccessibilityPressedStateUndefined")]
    pub const Undefined: Self = Self(0);
    #[doc(alias = "BEAccessibilityPressedStateFalse")]
    pub const False: Self = Self(1);
    #[doc(alias = "BEAccessibilityPressedStateTrue")]
    pub const True: Self = Self(2);
    #[doc(alias = "BEAccessibilityPressedStateMixed")]
    pub const Mixed: Self = Self(3);
}

unsafe impl Encode for BEAccessibilityPressedState {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for BEAccessibilityPressedState {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/browserenginekit/beaccessibilitycontainertype?language=objc)
// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct BEAccessibilityContainerType(pub NSUInteger);
bitflags::bitflags! {
    impl BEAccessibilityContainerType: NSUInteger {
        #[doc(alias = "BEAccessibilityContainerTypeNone")]
        const None = 0;
        #[doc(alias = "BEAccessibilityContainerTypeLandmark")]
        const Landmark = 1<<0;
        #[doc(alias = "BEAccessibilityContainerTypeTable")]
        const Table = 1<<1;
        #[doc(alias = "BEAccessibilityContainerTypeList")]
        const List = 1<<2;
        #[doc(alias = "BEAccessibilityContainerTypeFieldset")]
        const Fieldset = 1<<3;
        #[doc(alias = "BEAccessibilityContainerTypeDialog")]
        const Dialog = 1<<4;
        #[doc(alias = "BEAccessibilityContainerTypeTree")]
        const Tree = 1<<5;
        #[doc(alias = "BEAccessibilityContainerTypeFrame")]
        const Frame = 1<<6;
        #[doc(alias = "BEAccessibilityContainerTypeArticle")]
        const Article = 1<<7;
        #[doc(alias = "BEAccessibilityContainerTypeSemanticGroup")]
        const SemanticGroup = 1<<8;
        #[doc(alias = "BEAccessibilityContainerTypeScrollArea")]
        const ScrollArea = 1<<9;
        #[doc(alias = "BEAccessibilityContainerTypeAlert")]
        const Alert = 1<<10;
        #[doc(alias = "BEAccessibilityContainerTypeDescriptionList")]
        const DescriptionList = 1<<11;
    }
}

unsafe impl Encode for BEAccessibilityContainerType {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for BEAccessibilityContainerType {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

mod private_NSObjectBEAccessibility {
    pub trait Sealed {}
}

/// Category "BEAccessibility" on [`NSObject`].
#[doc(alias = "BEAccessibility")]
pub unsafe trait NSObjectBEAccessibility:
    ClassType + Sized + private_NSObjectBEAccessibility::Sealed
{
    extern_methods!(
        /// Represents the value of aria-current.
        /// default: nil
        #[unsafe(method(browserAccessibilityCurrentStatus))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityCurrentStatus(&self) -> Option<Retained<NSString>>;

        /// Setter for [`browserAccessibilityCurrentStatus`][Self::browserAccessibilityCurrentStatus].
        #[unsafe(method(setBrowserAccessibilityCurrentStatus:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilityCurrentStatus(
            &self,
            browser_accessibility_current_status: Option<&NSString>,
        );

        /// Represents the value of aria-sort.
        /// default: nil
        #[unsafe(method(browserAccessibilitySortDirection))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilitySortDirection(&self) -> Option<Retained<NSString>>;

        /// Setter for [`browserAccessibilitySortDirection`][Self::browserAccessibilitySortDirection].
        #[unsafe(method(setBrowserAccessibilitySortDirection:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilitySortDirection(
            &self,
            browser_accessibility_sort_direction: Option<&NSString>,
        );

        /// Represents the value of aria-roledescription.
        /// default: nil
        #[unsafe(method(browserAccessibilityRoleDescription))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityRoleDescription(&self) -> Option<Retained<NSString>>;

        /// Setter for [`browserAccessibilityRoleDescription`][Self::browserAccessibilityRoleDescription].
        #[unsafe(method(setBrowserAccessibilityRoleDescription:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilityRoleDescription(
            &self,
            browser_accessibility_role_description: Option<&NSString>,
        );

        /// Represents the value of aria-required.
        /// default: false
        #[unsafe(method(browserAccessibilityIsRequired))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityIsRequired(&self) -> bool;

        /// Setter for [`browserAccessibilityIsRequired`][Self::browserAccessibilityIsRequired].
        #[unsafe(method(setBrowserAccessibilityIsRequired:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilityIsRequired(&self, browser_accessibility_is_required: bool);

        /// Represents the value of aria-pressed.
        /// default: BEAccessibilityPressedStateUndefined
        #[unsafe(method(browserAccessibilityPressedState))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityPressedState(&self) -> BEAccessibilityPressedState;

        /// Setter for [`browserAccessibilityPressedState`][Self::browserAccessibilityPressedState].
        #[unsafe(method(setBrowserAccessibilityPressedState:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilityPressedState(
            &self,
            browser_accessibility_pressed_state: BEAccessibilityPressedState,
        );

        /// Represents whether the current element has native DOM focus.
        /// default: false
        #[unsafe(method(browserAccessibilityHasDOMFocus))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityHasDOMFocus(&self) -> bool;

        /// Setter for [`browserAccessibilityHasDOMFocus`][Self::browserAccessibilityHasDOMFocus].
        #[unsafe(method(setBrowserAccessibilityHasDOMFocus:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilityHasDOMFocus(
            &self,
            browser_accessibility_has_dom_focus: bool,
        );

        /// An option set of the types that contain this element. For example, an object within a table cell
        /// will return the Table container type.
        /// default: BEAccessibilityContainerTypeNone
        #[unsafe(method(browserAccessibilityContainerType))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityContainerType(&self) -> BEAccessibilityContainerType;

        /// Setter for [`browserAccessibilityContainerType`][Self::browserAccessibilityContainerType].
        #[unsafe(method(setBrowserAccessibilityContainerType:))]
        #[unsafe(method_family = none)]
        unsafe fn setBrowserAccessibilityContainerType(
            &self,
            browser_accessibility_container_type: BEAccessibilityContainerType,
        );

        /// Returns an range representing the selected text on the page.
        /// default: { NSNotFound, 0 }
        #[unsafe(method(browserAccessibilitySelectedTextRange))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilitySelectedTextRange(&self) -> NSRange;

        /// Set the selected text range.
        ///
        /// Parameter `range`: The range to make selected.
        #[unsafe(method(browserAccessibilitySetSelectedTextRange:))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilitySetSelectedTextRange(&self, range: NSRange);

        /// Returns the value of this element in the given range.
        ///
        /// Parameter `range`: The range of this element's value to return.
        #[unsafe(method(browserAccessibilityValueInRange:))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityValueInRange(&self, range: NSRange) -> Retained<NSString>;

        /// Returns the attributed value of this element in the given range.
        ///
        /// Parameter `range`: The range of this element's value to return.
        #[unsafe(method(browserAccessibilityAttributedValueInRange:))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityAttributedValueInRange(
            &self,
            range: NSRange,
        ) -> Retained<NSAttributedString>;

        /// Insert text at the current cursor position.
        ///
        /// Parameter `text`: The text to insert.
        #[unsafe(method(browserAccessibilityInsertTextAtCursor:))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityInsertTextAtCursor(&self, text: &NSString);

        /// Delete text at the current cursor position.
        ///
        /// Parameter `numberOfCharacters`: Number of characters to delete.
        #[unsafe(method(browserAccessibilityDeleteTextAtCursor:))]
        #[unsafe(method_family = none)]
        unsafe fn browserAccessibilityDeleteTextAtCursor(&self, number_of_characters: NSInteger);

        /// The text cursor position of the soft line end should be returned, starting from the current selection (or beginning if no selection).
        #[unsafe(method(accessibilityLineEndPositionFromCurrentSelection))]
        #[unsafe(method_family = none)]
        unsafe fn accessibilityLineEndPositionFromCurrentSelection(&self) -> NSInteger;

        /// The text cursor position of the soft line start should be returned, starting from the current selection (or beginning if no selection).
        #[unsafe(method(accessibilityLineStartPositionFromCurrentSelection))]
        #[unsafe(method_family = none)]
        unsafe fn accessibilityLineStartPositionFromCurrentSelection(&self) -> NSInteger;

        /// The text cursor range of the soft line should be returned depending on the position.
        ///
        /// Parameter `position`: A text cursor position within a line of text.
        #[unsafe(method(accessibilityLineRangeForPosition:))]
        #[unsafe(method_family = none)]
        unsafe fn accessibilityLineRangeForPosition(&self, position: NSInteger) -> NSRange;
    );
}

impl private_NSObjectBEAccessibility::Sealed for NSObject {}
unsafe impl NSObjectBEAccessibility for NSObject {}