blob: 6a0ff03e6eef57cf15648d4792798f966f06b47d [file] [log] [blame]
/*
* Copyright (C) 2017 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
#include <pal/spi/cg/CoreGraphicsSPI.h>
#if USE(APPLE_INTERNAL_SDK)
#include <ApplicationServices/ApplicationServicesPriv.h>
#else
typedef CF_ENUM(SInt32, CoreCursorType) {
kCoreCursorFirstCursor = 0,
kCoreCursorArrow = kCoreCursorFirstCursor,
kCoreCursorIBeam,
kCoreCursorMakeAlias,
kCoreCursorNotAllowed,
kCoreCursorBusyButClickable,
kCoreCursorCopy,
kCoreCursorScreenShotSelection = 7,
kCoreCursorScreenShotSelectionToClip,
kCoreCursorScreenShotWindow,
kCoreCursorScreenShotWindowToClip,
kCoreCursorClosedHand,
kCoreCursorOpenHand,
kCoreCursorPointingHand,
kCoreCursorCountingUpHand,
kCoreCursorCountingDownHand,
kCoreCursorCountingUpAndDownHand,
kCoreCursorResizeLeft,
kCoreCursorResizeRight,
kCoreCursorResizeLeftRight,
kCoreCursorCross,
kCoreCursorResizeUp,
kCoreCursorResizeDown,
kCoreCursorResizeUpDown,
kCoreCursorContextualMenu,
kCoreCursorPoof,
kCoreCursorIBeamVertical,
kCoreCursorWindowResizeEast,
kCoreCursorWindowResizeEastWest,
kCoreCursorWindowResizeNorthEast,
kCoreCursorWindowResizeNorthEastSouthWest,
kCoreCursorWindowResizeNorth,
kCoreCursorWindowResizeNorthSouth,
kCoreCursorWindowResizeNorthWest,
kCoreCursorWindowResizeNorthWestSouthEast,
kCoreCursorWindowResizeSouthEast,
kCoreCursorWindowResizeSouth,
kCoreCursorWindowResizeSouthWest,
kCoreCursorWindowResizeWest,
kCoreCursorWindowMove,
kCoreCursorHelp,
kCoreCursorCell,
kCoreCursorZoomIn,
kCoreCursorZoomOut,
kCoreCursorLastCursor = kCoreCursorZoomOut
};
enum {
kCoreDragImageSpecVersionOne = 1,
};
struct CoreDragImageSpec {
UInt32 version;
SInt32 pixelsWide;
SInt32 pixelsHigh;
SInt32 bitsPerSample;
SInt32 samplesPerPixel;
SInt32 bitsPerPixel;
SInt32 bytesPerRow;
Boolean isPlanar;
Boolean hasAlpha;
const UInt8* data[5];
};
enum {
kMSHDoNotCreateSendRightOption = 0x4,
};
#endif
typedef UInt32 MSHCreateOptions;
typedef const struct __AXTextMarker* AXTextMarkerRef;
typedef const struct __AXTextMarkerRange* AXTextMarkerRangeRef;
typedef struct CoreDragImageSpec CoreDragImageSpec;
typedef struct OpaqueCoreDrag* CoreDragRef;
WTF_EXTERN_C_BEGIN
AXTextMarkerRangeRef AXTextMarkerRangeCreate(CFAllocatorRef, AXTextMarkerRef startMarker, AXTextMarkerRef endMarker);
AXTextMarkerRef AXTextMarkerCreate(CFAllocatorRef, const UInt8* bytes, CFIndex length);
AXTextMarkerRef AXTextMarkerRangeCopyStartMarker(AXTextMarkerRangeRef);
AXTextMarkerRef AXTextMarkerRangeCopyEndMarker(AXTextMarkerRangeRef);
CFIndex AXTextMarkerGetLength(AXTextMarkerRef);
CFRunLoopSourceRef MSHCreateMIGServerSource(CFAllocatorRef, CFIndex order, mig_subsystem_t sub_system, MSHCreateOptions, mach_port_t, void* user_data);
CFTypeID AXTextMarkerGetTypeID();
CFTypeID AXTextMarkerRangeGetTypeID();
CoreDragRef CoreDragGetCurrentDrag();
OSStatus CoreDragSetImage(CoreDragRef, CGPoint imageOffset, CoreDragImageSpec*, CGSRegionObj imageShape, float overallAlpha);
const UInt8* AXTextMarkerGetBytePtr(AXTextMarkerRef);
bool _AXUIElementRequestServicedBySecondaryAXThread(void);
OSStatus SetApplicationIsDaemon(Boolean);
WTF_EXTERN_C_END