icrate 0.1.2

Bindings to Apple's frameworks
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::AppKit::*;
use crate::CoreData::*;
use crate::Foundation::*;

ns_options!(
    #[underlying(NSUInteger)]
    pub enum NSDragOperation {
        NSDragOperationNone = 0,
        NSDragOperationCopy = 1,
        NSDragOperationLink = 2,
        NSDragOperationGeneric = 4,
        NSDragOperationPrivate = 8,
        NSDragOperationMove = 16,
        NSDragOperationDelete = 32,
        NSDragOperationEvery = NSUIntegerMax as _,
        #[deprecated]
        NSDragOperationAll_Obsolete = 15,
        #[deprecated]
        NSDragOperationAll = NSDragOperationAll_Obsolete,
    }
);

ns_enum!(
    #[underlying(NSInteger)]
    pub enum NSDraggingFormation {
        NSDraggingFormationDefault = 0,
        NSDraggingFormationNone = 1,
        NSDraggingFormationPile = 2,
        NSDraggingFormationList = 3,
        NSDraggingFormationStack = 4,
    }
);

ns_enum!(
    #[underlying(NSInteger)]
    pub enum NSDraggingContext {
        NSDraggingContextOutsideApplication = 0,
        NSDraggingContextWithinApplication = 1,
    }
);

ns_options!(
    #[underlying(NSUInteger)]
    pub enum NSDraggingItemEnumerationOptions {
        NSDraggingItemEnumerationConcurrent = NSEnumerationConcurrent,
        NSDraggingItemEnumerationClearNonenumeratedImages = 1 << 16,
    }
);

ns_enum!(
    #[underlying(NSInteger)]
    pub enum NSSpringLoadingHighlight {
        NSSpringLoadingHighlightNone = 0,
        NSSpringLoadingHighlightStandard = 1,
        NSSpringLoadingHighlightEmphasized = 2,
    }
);

extern_protocol!(
    pub unsafe trait NSDraggingInfo: NSObjectProtocol + IsMainThreadOnly {
        #[cfg(feature = "AppKit_NSWindow")]
        #[method_id(@__retain_semantics Other draggingDestinationWindow)]
        unsafe fn draggingDestinationWindow(&self) -> Option<Id<NSWindow>>;

        #[method(draggingSourceOperationMask)]
        unsafe fn draggingSourceOperationMask(&self) -> NSDragOperation;

        #[method(draggingLocation)]
        unsafe fn draggingLocation(&self) -> NSPoint;

        #[method(draggedImageLocation)]
        unsafe fn draggedImageLocation(&self) -> NSPoint;

        #[cfg(feature = "AppKit_NSImage")]
        #[deprecated = "Use NSDraggingItem objects instead"]
        #[method_id(@__retain_semantics Other draggedImage)]
        unsafe fn draggedImage(&self) -> Option<Id<NSImage>>;

        #[cfg(feature = "AppKit_NSPasteboard")]
        #[method_id(@__retain_semantics Other draggingPasteboard)]
        unsafe fn draggingPasteboard(&self) -> Id<NSPasteboard>;

        #[method_id(@__retain_semantics Other draggingSource)]
        unsafe fn draggingSource(&self) -> Option<Id<AnyObject>>;

        #[method(draggingSequenceNumber)]
        unsafe fn draggingSequenceNumber(&self) -> NSInteger;

        #[method(slideDraggedImageTo:)]
        unsafe fn slideDraggedImageTo(&self, screen_point: NSPoint);

        #[cfg(all(
            feature = "Foundation_NSArray",
            feature = "Foundation_NSString",
            feature = "Foundation_NSURL"
        ))]
        #[deprecated = "Use NSFilePromiseReceiver objects instead"]
        #[method_id(@__retain_semantics Other namesOfPromisedFilesDroppedAtDestination:)]
        unsafe fn namesOfPromisedFilesDroppedAtDestination(
            &self,
            drop_destination: &NSURL,
        ) -> Option<Id<NSArray<NSString>>>;

        #[method(draggingFormation)]
        unsafe fn draggingFormation(&self) -> NSDraggingFormation;

        #[method(setDraggingFormation:)]
        unsafe fn setDraggingFormation(&self, dragging_formation: NSDraggingFormation);

        #[method(animatesToDestination)]
        unsafe fn animatesToDestination(&self) -> bool;

        #[method(setAnimatesToDestination:)]
        unsafe fn setAnimatesToDestination(&self, animates_to_destination: bool);

        #[method(numberOfValidItemsForDrop)]
        unsafe fn numberOfValidItemsForDrop(&self) -> NSInteger;

        #[method(setNumberOfValidItemsForDrop:)]
        unsafe fn setNumberOfValidItemsForDrop(&self, number_of_valid_items_for_drop: NSInteger);

        #[cfg(all(
            feature = "AppKit_NSDraggingItem",
            feature = "AppKit_NSView",
            feature = "Foundation_NSArray",
            feature = "Foundation_NSDictionary"
        ))]
        #[method(enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:)]
        unsafe fn enumerateDraggingItemsWithOptions_forView_classes_searchOptions_usingBlock(
            &self,
            enum_opts: NSDraggingItemEnumerationOptions,
            view: Option<&NSView>,
            class_array: &NSArray<TodoClass>,
            search_options: &NSDictionary<NSPasteboardReadingOptionKey, AnyObject>,
            block: &Block<(NonNull<NSDraggingItem>, NSInteger, NonNull<Bool>), ()>,
        );

        #[method(springLoadingHighlight)]
        unsafe fn springLoadingHighlight(&self) -> NSSpringLoadingHighlight;

        #[method(resetSpringLoading)]
        unsafe fn resetSpringLoading(&self);
    }

    unsafe impl ProtocolType for dyn NSDraggingInfo {}
);

extern_protocol!(
    pub unsafe trait NSDraggingDestination: NSObjectProtocol + IsMainThreadOnly {
        #[optional]
        #[method(draggingEntered:)]
        unsafe fn draggingEntered(
            &self,
            sender: &ProtocolObject<dyn NSDraggingInfo>,
        ) -> NSDragOperation;

        #[optional]
        #[method(draggingUpdated:)]
        unsafe fn draggingUpdated(
            &self,
            sender: &ProtocolObject<dyn NSDraggingInfo>,
        ) -> NSDragOperation;

        #[optional]
        #[method(draggingExited:)]
        unsafe fn draggingExited(&self, sender: Option<&ProtocolObject<dyn NSDraggingInfo>>);

        #[optional]
        #[method(prepareForDragOperation:)]
        unsafe fn prepareForDragOperation(
            &self,
            sender: &ProtocolObject<dyn NSDraggingInfo>,
        ) -> bool;

        #[optional]
        #[method(performDragOperation:)]
        unsafe fn performDragOperation(&self, sender: &ProtocolObject<dyn NSDraggingInfo>) -> bool;

        #[optional]
        #[method(concludeDragOperation:)]
        unsafe fn concludeDragOperation(&self, sender: Option<&ProtocolObject<dyn NSDraggingInfo>>);

        #[optional]
        #[method(draggingEnded:)]
        unsafe fn draggingEnded(&self, sender: &ProtocolObject<dyn NSDraggingInfo>);

        #[optional]
        #[method(wantsPeriodicDraggingUpdates)]
        unsafe fn wantsPeriodicDraggingUpdates(&self) -> bool;

        #[optional]
        #[method(updateDraggingItemsForDrag:)]
        unsafe fn updateDraggingItemsForDrag(
            &self,
            sender: Option<&ProtocolObject<dyn NSDraggingInfo>>,
        );
    }

    unsafe impl ProtocolType for dyn NSDraggingDestination {}
);

extern_protocol!(
    pub unsafe trait NSDraggingSource: NSObjectProtocol + IsMainThreadOnly {
        #[cfg(feature = "AppKit_NSDraggingSession")]
        #[method(draggingSession:sourceOperationMaskForDraggingContext:)]
        unsafe fn draggingSession_sourceOperationMaskForDraggingContext(
            &self,
            session: &NSDraggingSession,
            context: NSDraggingContext,
        ) -> NSDragOperation;

        #[cfg(feature = "AppKit_NSDraggingSession")]
        #[optional]
        #[method(draggingSession:willBeginAtPoint:)]
        unsafe fn draggingSession_willBeginAtPoint(
            &self,
            session: &NSDraggingSession,
            screen_point: NSPoint,
        );

        #[cfg(feature = "AppKit_NSDraggingSession")]
        #[optional]
        #[method(draggingSession:movedToPoint:)]
        unsafe fn draggingSession_movedToPoint(
            &self,
            session: &NSDraggingSession,
            screen_point: NSPoint,
        );

        #[cfg(feature = "AppKit_NSDraggingSession")]
        #[optional]
        #[method(draggingSession:endedAtPoint:operation:)]
        unsafe fn draggingSession_endedAtPoint_operation(
            &self,
            session: &NSDraggingSession,
            screen_point: NSPoint,
            operation: NSDragOperation,
        );

        #[cfg(feature = "AppKit_NSDraggingSession")]
        #[optional]
        #[method(ignoreModifierKeysForDraggingSession:)]
        unsafe fn ignoreModifierKeysForDraggingSession(&self, session: &NSDraggingSession) -> bool;
    }

    unsafe impl ProtocolType for dyn NSDraggingSource {}
);

ns_options!(
    #[underlying(NSUInteger)]
    pub enum NSSpringLoadingOptions {
        NSSpringLoadingDisabled = 0,
        NSSpringLoadingEnabled = 1 << 0,
        NSSpringLoadingContinuousActivation = 1 << 1,
        NSSpringLoadingNoHover = 1 << 3,
    }
);

extern_protocol!(
    pub unsafe trait NSSpringLoadingDestination:
        NSObjectProtocol + IsMainThreadOnly
    {
        #[method(springLoadingActivated:draggingInfo:)]
        unsafe fn springLoadingActivated_draggingInfo(
            &self,
            activated: bool,
            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
        );

        #[method(springLoadingHighlightChanged:)]
        unsafe fn springLoadingHighlightChanged(
            &self,
            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
        );

        #[optional]
        #[method(springLoadingEntered:)]
        unsafe fn springLoadingEntered(
            &self,
            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
        ) -> NSSpringLoadingOptions;

        #[optional]
        #[method(springLoadingUpdated:)]
        unsafe fn springLoadingUpdated(
            &self,
            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
        ) -> NSSpringLoadingOptions;

        #[optional]
        #[method(springLoadingExited:)]
        unsafe fn springLoadingExited(&self, dragging_info: &ProtocolObject<dyn NSDraggingInfo>);

        #[optional]
        #[method(draggingEnded:)]
        unsafe fn draggingEnded(&self, dragging_info: &ProtocolObject<dyn NSDraggingInfo>);
    }

    unsafe impl ProtocolType for dyn NSSpringLoadingDestination {}
);