summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/CursorDevices.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/CursorDevices.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/CursorDevices.h')
-rw-r--r--common/quicktime_win32/CursorDevices.h451
1 files changed, 451 insertions, 0 deletions
diff --git a/common/quicktime_win32/CursorDevices.h b/common/quicktime_win32/CursorDevices.h
new file mode 100644
index 0000000..ec10b6a
--- /dev/null
+++ b/common/quicktime_win32/CursorDevices.h
@@ -0,0 +1,451 @@
+/*
+ File: CursorDevices.h
+
+ Contains: Cursor Devices (mouse/trackball/etc) Interfaces.
+
+ Version: Technology: System 7.5
+ Release: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1993-1999 by Apple Computer, Inc., all rights reserved.
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __CURSORDEVICES__
+#define __CURSORDEVICES__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __MIXEDMODE__
+#include <MixedMode.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+/*
+ * * * I M P O R T A N T * * *
+
+ You will need CursorDevicesGlue.o to use CDM from PowerPC
+
+
+ In order to use the Cursor Devices Manager (CDM) on PowerPC systems, you must
+ link with the file CursorDevicesGlue.o and InterfaceLib 1.1.3. This is necessary
+ because the original MixedMode transition code for CDM in InterfaceLib in ROM
+ was wrong. The code in CursorDevicesGlue.o will check to see if the ROM has
+ been fixed and calls through to it if so. If it detects that the ROM has not
+ been fixed, it uses its own implementation of the CDM MixedMode transition
+ routines.
+
+*/
+
+typedef short ButtonOpcode;
+/* ButtonOpcodes */
+enum {
+ kButtonNoOp = 0, /* No action for this button */
+ kButtonSingleClick = 1, /* Normal mouse button */
+ kButtonDoubleClick = 2, /* Click-release-click when pressed */
+ kButtonClickLock = 3 /* Click on press, release on next press */
+};
+
+enum {
+ kButtonCustom = 6 /* Custom behavior, data = CursorDeviceCustomButtonUPP */
+};
+
+/* Device Classes */
+enum {
+ kDeviceClassAbsolute = 0, /* a flat-response device */
+ kDeviceClassMouse = 1, /* mechanical or optical mouse */
+ kDeviceClassTrackball = 2, /* trackball */
+ kDeviceClassTrackPad = 3
+};
+
+enum {
+ kDeviceClass3D = 6 /* a 3D pointing device */
+};
+
+/* Structures used in Cursor Device Manager calls */
+struct CursorData {
+ struct CursorData * nextCursorData; /* next in global list */
+ Ptr displayInfo; /* unused (reserved for future) */
+ Fixed whereX; /* horizontal position */
+ Fixed whereY; /* vertical position */
+ Point where; /* the pixel position */
+ Boolean isAbs; /* has been stuffed with absolute coords */
+ UInt8 buttonCount; /* number of buttons currently pressed */
+ long screenRes; /* pixels per inch on the current display */
+ short privateFields[22]; /* fields use internally by CDM */
+};
+typedef struct CursorData CursorData;
+typedef CursorData * CursorDataPtr;
+struct CursorDevice {
+ struct CursorDevice * nextCursorDevice; /* pointer to next record in linked list */
+ CursorData * whichCursor; /* pointer to data for target cursor */
+ long refCon; /* application-defined */
+ long unused; /* reserved for future */
+ OSType devID; /* device identifier (from ADB reg 1) */
+ Fixed resolution; /* units/inch (orig. from ADB reg 1) */
+ UInt8 devClass; /* device class (from ADB reg 1) */
+ UInt8 cntButtons; /* number of buttons (from ADB reg 1) */
+ UInt8 filler1; /* reserved for future */
+ UInt8 buttons; /* state of all buttons */
+ UInt8 buttonOp[8]; /* action performed per button */
+ unsigned long buttonTicks[8]; /* ticks when button last went up (for debounce) */
+ long buttonData[8]; /* data for the button operation */
+ unsigned long doubleClickTime; /* device-specific double click speed */
+ Fixed acceleration; /* current acceleration */
+ short privateFields[15]; /* fields used internally to CDM */
+};
+typedef struct CursorDevice CursorDevice;
+typedef CursorDevice * CursorDevicePtr;
+/* for use with CursorDeviceButtonOp when opcode = kButtonCustom */
+typedef CALLBACK_API_REGISTER68K( void , CursorDeviceCustomButtonProcPtr, (CursorDevicePtr ourDevice, short button) );
+typedef REGISTER_UPP_TYPE(CursorDeviceCustomButtonProcPtr) CursorDeviceCustomButtonUPP;
+#if CALL_NOT_IN_CARBON
+/*
+ * NewCursorDeviceCustomButtonUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( CursorDeviceCustomButtonUPP )
+NewCursorDeviceCustomButtonUPP(CursorDeviceCustomButtonProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppCursorDeviceCustomButtonProcInfo = 0x000ED802 }; /* register no_return_value Func(4_bytes:A2, 2_bytes:D3) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(CursorDeviceCustomButtonUPP) NewCursorDeviceCustomButtonUPP(CursorDeviceCustomButtonProcPtr userRoutine) { return (CursorDeviceCustomButtonUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCursorDeviceCustomButtonProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewCursorDeviceCustomButtonUPP(userRoutine) (CursorDeviceCustomButtonUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCursorDeviceCustomButtonProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * DisposeCursorDeviceCustomButtonUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+DisposeCursorDeviceCustomButtonUPP(CursorDeviceCustomButtonUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeCursorDeviceCustomButtonUPP(CursorDeviceCustomButtonUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeCursorDeviceCustomButtonUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeCursorDeviceCustomButtonUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( void )
+InvokeCursorDeviceCustomButtonUPP(
+ CursorDevicePtr ourDevice,
+ short button,
+ CursorDeviceCustomButtonUPP userUPP);
+#if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM)
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeCursorDeviceCustomButtonUPP(CursorDevicePtr ourDevice, short button, CursorDeviceCustomButtonUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppCursorDeviceCustomButtonProcInfo, ourDevice, button); }
+ #else
+ #define InvokeCursorDeviceCustomButtonUPP(ourDevice, button, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppCursorDeviceCustomButtonProcInfo, (ourDevice), (button))
+ #endif
+#endif
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
+ /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
+ #define NewCursorDeviceCustomButtonProc(userRoutine) NewCursorDeviceCustomButtonUPP(userRoutine)
+ #define CallCursorDeviceCustomButtonProc(userRoutine, ourDevice, button) InvokeCursorDeviceCustomButtonUPP(ourDevice, button, userRoutine)
+#endif /* CALL_NOT_IN_CARBON */
+
+#if CALL_NOT_IN_CARBON
+/*
+ * CursorDeviceMove()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceMove(
+ CursorDevicePtr ourDevice,
+ long deltaX,
+ long deltaY) TWOWORDINLINE(0x7000, 0xAADB);
+
+
+/*
+ * CursorDeviceMoveTo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceMoveTo(
+ CursorDevicePtr ourDevice,
+ long absX,
+ long absY) TWOWORDINLINE(0x7001, 0xAADB);
+
+
+/*
+ * CursorDeviceFlush()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceFlush(CursorDevicePtr ourDevice) TWOWORDINLINE(0x7002, 0xAADB);
+
+
+/*
+ * CursorDeviceButtons()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceButtons(
+ CursorDevicePtr ourDevice,
+ short buttons) TWOWORDINLINE(0x7003, 0xAADB);
+
+
+/*
+ * CursorDeviceButtonDown()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceButtonDown(CursorDevicePtr ourDevice) TWOWORDINLINE(0x7004, 0xAADB);
+
+
+/*
+ * CursorDeviceButtonUp()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceButtonUp(CursorDevicePtr ourDevice) TWOWORDINLINE(0x7005, 0xAADB);
+
+
+/*
+ * CursorDeviceButtonOp()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceButtonOp(
+ CursorDevicePtr ourDevice,
+ short buttonNumber,
+ ButtonOpcode opcode,
+ long data) TWOWORDINLINE(0x7006, 0xAADB);
+
+
+/*
+ * CursorDeviceSetButtons()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceSetButtons(
+ CursorDevicePtr ourDevice,
+ short numberOfButtons) TWOWORDINLINE(0x7007, 0xAADB);
+
+
+/*
+ * CursorDeviceSetAcceleration()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceSetAcceleration(
+ CursorDevicePtr ourDevice,
+ Fixed acceleration) TWOWORDINLINE(0x7008, 0xAADB);
+
+
+/*
+ * CursorDeviceDoubleTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceDoubleTime(
+ CursorDevicePtr ourDevice,
+ long durationTicks) TWOWORDINLINE(0x7009, 0xAADB);
+
+
+/*
+ * CursorDeviceUnitsPerInch()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceUnitsPerInch(
+ CursorDevicePtr ourDevice,
+ Fixed resolution) TWOWORDINLINE(0x700A, 0xAADB);
+
+
+/*
+ * CursorDeviceNextDevice()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceNextDevice(CursorDevicePtr * ourDevice) TWOWORDINLINE(0x700B, 0xAADB);
+
+
+/*
+ * CursorDeviceNewDevice()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceNewDevice(CursorDevicePtr * ourDevice) TWOWORDINLINE(0x700C, 0xAADB);
+
+
+/*
+ * CursorDeviceDisposeDevice()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CursorDeviceDisposeDevice(CursorDevicePtr ourDevice) TWOWORDINLINE(0x700D, 0xAADB);
+
+
+
+/*
+ * * * W A R N I N G * * *
+
+ The routines CrsrDevMoveTo and CrsrDevNextDevice are no longer needed.
+ They were added as a work around until the glue code CursorDevicesGlue.o
+ was created. Please use the functions CursorDeviceMoveTo and
+ CursorDeviceNextDevice instead.
+
+*/
+#endif /* CALL_NOT_IN_CARBON */
+
+#if OLDROUTINENAMES
+#if CALL_NOT_IN_CARBON
+/*
+ * CrsrDevMoveTo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 8.5 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CrsrDevMoveTo(
+ CursorDevicePtr ourDevice,
+ long absX,
+ long absY) TWOWORDINLINE(0x7001, 0xAADB);
+
+
+/*
+ * CrsrDevNextDevice()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 8.5 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+CrsrDevNextDevice(CursorDevicePtr * ourDevice) TWOWORDINLINE(0x700B, 0xAADB);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#endif /* OLDROUTINENAMES */
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CURSORDEVICES__ */
+