source-engine/common/quicktime_win32/Balloons.h

594 lines
19 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
/*
File: Balloons.h
Contains: Balloon Help Package Interfaces.
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 1990-2001 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 __BALLOONS__
#define __BALLOONS__
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __MACERRORS__
#include <MacErrors.h>
#endif
#ifndef __QUICKDRAW__
#include <Quickdraw.h>
#endif
#ifndef __MENUS__
#include <Menus.h>
#endif
#ifndef __TEXTEDIT__
#include <TextEdit.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
/*
Carbon clients should use MacHelp. The definitions below will NOT work for Carbon and
are only defined for those files that need to build pre-Carbon applications.
*/
/* o.constants*/
typedef SInt16 BalloonVariant;
enum {
kTopLeftTipPointsLeftVariant = 0,
kTopLeftTipPointsUpVariant = 1,
kTopRightTipPointsUpVariant = 2,
kTopRightTipPointsRightVariant = 3,
kBottomRightTipPointsRightVariant = 4,
kBottomRightTipPointsDownVariant = 5,
kBottomLeftTipPointsDownVariant = 6,
kBottomLeftTipPointsLeftVariant = 7,
kBalloonVariantCount = 8
};
enum {
hmBalloonHelpVersion = 0x0002 /* The real version of the Help Manager */
};
enum {
kHMHelpMenuID = -16490, /* Resource ID and menu ID of help menu */
kHMAboutHelpItem = 1, /* help menu item number of About Balloon Help... */
kHMShowBalloonsItem = 3 /* help menu item number of Show/Hide Balloons */
};
enum {
kHMHelpID = -5696, /* ID of various Help Mgr package resources (in Pack14 range) */
kBalloonWDEFID = 126 /* Resource ID of the WDEF proc used in standard balloons */
};
enum {
/* Dialog item template type constant */
helpItem = 1 /* key value in DITL template that corresponds to the help item */
};
enum {
/* Options for Help Manager resources in 'hmnu', 'hdlg', 'hrct', 'hovr', & 'hfdr' resources */
hmDefaultOptions = 0, /* default options for help manager resources */
hmUseSubIDBit = 0,
hmAbsoluteCoordsBit = 1,
hmSaveBitsNoWindowBit = 2,
hmSaveBitsWindowBit = 3,
hmMatchInTitleBit = 4,
hmUseSubIDMask = (1 << hmUseSubIDBit), /* treat resID's in resources as subID's of driver base ID (for Desk Accessories) */
hmAbsoluteCoordsMask = (1 << hmAbsoluteCoordsBit), /* ignore window port origin and treat rectangles as absolute coords (local to window) */
hmSaveBitsNoWindowMask = (1 << hmSaveBitsNoWindowBit), /* don't create a window, just blast bits on screen. No update event is generated */
hmSaveBitsWindowMask = (1 << hmSaveBitsWindowBit), /* create a window, but restore bits behind window when window goes away & generate update event */
hmMatchInTitleMask = (1 << hmMatchInTitleBit) /* for hwin resources, match string anywhere in window title string */
};
#if OLDROUTINENAMES
enum {
hmUseSubID = hmUseSubIDMask,
hmAbsoluteCoords = hmAbsoluteCoordsMask,
hmSaveBitsNoWindow = hmSaveBitsNoWindowMask,
hmSaveBitsWindow = hmSaveBitsWindowMask,
hmMatchInTitle = hmMatchInTitleMask
};
#endif /* OLDROUTINENAMES */
enum {
/* Constants for Help Types in 'hmnu', 'hdlg', 'hrct', 'hovr', & 'hfdr' resources */
kHMStringItem = 1, /* pstring used in resource */
kHMPictItem = 2, /* 'PICT' ResID used in resource */
kHMStringResItem = 3, /* 'STR#' ResID & index used in resource */
kHMTEResItem = 6, /* Styled Text Edit ResID used in resource ('TEXT' & 'styl') */
kHMSTRResItem = 7, /* 'STR ' ResID used in resource */
kHMSkipItem = 256, /* don't display a balloon */
kHMCompareItem = 512, /* Compare pstring in menu item w/ PString in resource item ('hmnu' only) */
kHMNamedResourceItem = 1024, /* Use pstring in menu item to get 'STR#', 'PICT', or 'STR ' resource ('hmnu' only) */
kHMTrackCntlItem = 2048 /* Reserved */
};
enum {
/* Constants for hmmHelpType's when filling out HMMessageRecord */
khmmString = 1, /* help message contains a PString */
khmmPict = 2, /* help message contains a resource ID to a 'PICT' resource */
khmmStringRes = 3, /* help message contains a res ID & index to a 'STR#' resource */
khmmTEHandle = 4, /* help message contains a Text Edit handle */
khmmPictHandle = 5, /* help message contains a Picture handle */
khmmTERes = 6, /* help message contains a res ID to 'TEXT' & 'styl' resources */
khmmSTRRes = 7, /* help message contains a res ID to a 'STR ' resource */
kHMEnabledItem = 0 /* item is enabled, but not checked or control value = 0 */
};
enum {
/* ResTypes for Styled TE Handles in Resources */
kHMTETextResType = FOUR_CHAR_CODE('TEXT'), /* Resource Type of text data for styled TE record w/o style info */
kHMTEStyleResType = FOUR_CHAR_CODE('styl') /* Resource Type of style information for styled TE record */
};
enum {
kHMDisabledItem = 1, /* item is disabled, grayed in menus or disabled in dialogs */
kHMCheckedItem = 2, /* item is enabled, and checked or control value = 1 */
kHMOtherItem = 3, /* item is enabled, and control value > 1 */
/* Method parameters to pass to HMShowBalloon */
kHMRegularWindow = 0, /* Create a regular window floating above all windows */
kHMSaveBitsNoWindow = 1, /* Just save the bits and draw (for MDEF calls) */
kHMSaveBitsWindow = 2 /* Regular window, save bits behind, AND generate update event */
};
enum {
/* Resource Types for whichType parameter used when extracting 'hmnu' & 'hdlg' messages */
kHMMenuResType = FOUR_CHAR_CODE('hmnu'), /* ResType of help resource for supporting menus */
kHMDialogResType = FOUR_CHAR_CODE('hdlg'), /* ResType of help resource for supporting dialogs */
kHMWindListResType = FOUR_CHAR_CODE('hwin'), /* ResType of help resource for supporting windows */
kHMRectListResType = FOUR_CHAR_CODE('hrct'), /* ResType of help resource for rectangles in windows */
kHMOverrideResType = FOUR_CHAR_CODE('hovr'), /* ResType of help resource for overriding system balloons */
kHMFinderApplResType = FOUR_CHAR_CODE('hfdr') /* ResType of help resource for custom balloon in Finder */
};
struct HMStringResType {
short hmmResID;
short hmmIndex;
};
typedef struct HMStringResType HMStringResType;
struct HMMessageRecord {
SInt16 hmmHelpType;
union {
Str255 hmmString;
SInt16 hmmPict;
TEHandle hmmTEHandle;
HMStringResType hmmStringRes;
SInt16 hmmPictRes;
PicHandle hmmPictHandle;
SInt16 hmmTERes;
SInt16 hmmSTRRes;
} u;
};
typedef struct HMMessageRecord HMMessageRecord;
typedef HMMessageRecord * HMMessageRecPtr;
typedef CALLBACK_API( OSErr , TipFunctionProcPtr )(Point tip, RgnHandle structure, Rect *r, BalloonVariant *balloonVariant);
typedef STACK_UPP_TYPE(TipFunctionProcPtr) TipFunctionUPP;
#if CALL_NOT_IN_CARBON
/*
* NewTipFunctionUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TipFunctionUPP )
NewTipFunctionUPP(TipFunctionProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppTipFunctionProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
#ifdef __cplusplus
inline DEFINE_API_C(TipFunctionUPP) NewTipFunctionUPP(TipFunctionProcPtr userRoutine) { return (TipFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTipFunctionProcInfo, GetCurrentArchitecture()); }
#else
#define NewTipFunctionUPP(userRoutine) (TipFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTipFunctionProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* DisposeTipFunctionUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( void )
DisposeTipFunctionUPP(TipFunctionUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeTipFunctionUPP(TipFunctionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeTipFunctionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* InvokeTipFunctionUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( OSErr )
InvokeTipFunctionUPP(
Point tip,
RgnHandle structure,
Rect * r,
BalloonVariant * balloonVariant,
TipFunctionUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(OSErr) InvokeTipFunctionUPP(Point tip, RgnHandle structure, Rect * r, BalloonVariant * balloonVariant, TipFunctionUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppTipFunctionProcInfo, tip, structure, r, balloonVariant); }
#else
#define InvokeTipFunctionUPP(tip, structure, r, balloonVariant, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppTipFunctionProcInfo, (tip), (structure), (r), (balloonVariant))
#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 NewTipFunctionProc(userRoutine) NewTipFunctionUPP(userRoutine)
#define CallTipFunctionProc(userRoutine, tip, structure, r, balloonVariant) InvokeTipFunctionUPP(tip, structure, r, balloonVariant, userRoutine)
#endif /* CALL_NOT_IN_CARBON */
/* Public Interfaces */
#if CALL_NOT_IN_CARBON
/*
* HMGetHelpMenuHandle()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetHelpMenuHandle(MenuRef * mh) THREEWORDINLINE(0x303C, 0x0200, 0xA830);
#define HMGetHelpMenuRef HMGetHelpMenuHandle
/*
* HMShowBalloon()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMShowBalloon(
const HMMessageRecord * inHelpMessage,
Point inTip,
Rect * inHotRect, /* can be NULL */
TipFunctionUPP inTipProc,
SInt16 inWindowProcID,
BalloonVariant inBalloonVariant,
SInt16 inMethod) THREEWORDINLINE(0x303C, 0x0B01, 0xA830);
/*
* HMShowMenuBalloon()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMShowMenuBalloon(
SInt16 itemNum,
SInt16 itemMenuID,
SInt32 itemFlags,
SInt32 itemReserved,
Point tip,
Rect * alternateRect, /* can be NULL */
TipFunctionUPP tipProc,
SInt16 theProc,
BalloonVariant balloonVariant) THREEWORDINLINE(0x303C, 0x0E05, 0xA830);
/*
* HMRemoveBalloon()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMRemoveBalloon(void) THREEWORDINLINE(0x303C, 0x0002, 0xA830);
/*
* HMGetIndHelpMsg()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetIndHelpMsg(
ResType inWhichResType,
SInt16 inWhichResID,
SInt16 inMessageIndex,
SInt16 inMessageState,
UInt32 * outOptions,
Point * outTip,
Rect * outHotRect,
SInt16 * outWindowProcID,
BalloonVariant * outBalloonVariant,
HMMessageRecord * outHelpMessage,
SInt16 * outMessageCount) THREEWORDINLINE(0x303C, 0x1306, 0xA830);
/*
* HMIsBalloon()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( Boolean )
HMIsBalloon(void) THREEWORDINLINE(0x303C, 0x0007, 0xA830);
/*
* HMGetBalloons()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( Boolean )
HMGetBalloons(void) THREEWORDINLINE(0x303C, 0x0003, 0xA830);
/*
* HMSetBalloons()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMSetBalloons(Boolean flag) THREEWORDINLINE(0x303C, 0x0104, 0xA830);
/*
* HMSetFont()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMSetFont(SInt16 font) THREEWORDINLINE(0x303C, 0x0108, 0xA830);
/*
* HMSetFontSize()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMSetFontSize(UInt16 fontSize) THREEWORDINLINE(0x303C, 0x0109, 0xA830);
/*
* HMGetFont()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetFont(SInt16 * font) THREEWORDINLINE(0x303C, 0x020A, 0xA830);
/*
* HMGetFontSize()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetFontSize(UInt16 * fontSize) THREEWORDINLINE(0x303C, 0x020B, 0xA830);
/*
* HMSetDialogResID()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMSetDialogResID(SInt16 resID) THREEWORDINLINE(0x303C, 0x010C, 0xA830);
/*
* HMSetMenuResID()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMSetMenuResID(
SInt16 menuID,
SInt16 resID) THREEWORDINLINE(0x303C, 0x020D, 0xA830);
/*
* HMBalloonRect()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMBalloonRect(
const HMMessageRecord * inMessage,
Rect * outRect) THREEWORDINLINE(0x303C, 0x040E, 0xA830);
/*
* HMBalloonPict()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMBalloonPict(
const HMMessageRecord * inMessage,
PicHandle * outPict) THREEWORDINLINE(0x303C, 0x040F, 0xA830);
/*
* HMScanTemplateItems()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMScanTemplateItems(
SInt16 whichID,
SInt16 whichResFile,
ResType whichType) THREEWORDINLINE(0x303C, 0x0410, 0xA830);
/*
* HMExtractHelpMsg()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMExtractHelpMsg(
ResType inType,
SInt16 inResID,
SInt16 inMessageIndex,
SInt16 inMessageState,
HMMessageRecord * outMessage) THREEWORDINLINE(0x303C, 0x0711, 0xA830);
/*
* HMGetDialogResID()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetDialogResID(SInt16 * resID) THREEWORDINLINE(0x303C, 0x0213, 0xA830);
/*
* HMGetMenuResID()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetMenuResID(
SInt16 menuID,
SInt16 * resID) THREEWORDINLINE(0x303C, 0x0314, 0xA830);
/*
* HMGetBalloonWindow()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( OSErr )
HMGetBalloonWindow(WindowRef * window) THREEWORDINLINE(0x303C, 0x0215, 0xA830);
#endif /* CALL_NOT_IN_CARBON */
#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 /* __BALLOONS__ */