topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-Balloons.h / h



  /*
       File:       Balloons.h
   
       Contains:   Balloon Help Package Interfaces.
   
       Version:    Technology: System 7.0
                   Release:    QuickTime 6.0.2
   
       Copyright:  (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 __QUICKDRAW__
  include <Quickdraw.h>
  endif
  
  ifndef __MENUS__
  include <Menus.h>
  endif
  
  ifndef __TEXTEDIT__
  include <TextEdit.h>
  endif
  
  ifndef __MACERRORS__
  include <MacErrors.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
  };
  
  ifndef __MACHELP__
  enum {
      hmBalloonHelpVersion        = 0x0002                        /* The real version of the Help Manager */
  };
  
  endif  /* !defined(__MACHELP__) */
  
  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 */
      hmUseSubID                  = 1,                            /* treat resID's in resources as subID's of driver base ID (for Desk Accessories) */
      hmAbsoluteCoords            = 2                             /* ignore window port origin and treat rectangles as absolute coords (local to window) */
  };
  
  enum {
      hmSaveBitsNoWindow          = 4,                            /* don't create a window, just blast bits on screen. No update event is generated */
      hmSaveBitsWindow            = 8,                            /* create a window, but restore bits behind window when window goes away & generate update event */
      hmMatchInTitle              = 16                            /* for hwin resources, match string anywhere in window title string */
  };
  
  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 */
  };
  
  ifndef __MACHELP__
  
  struct HMStringResType {
      short                           hmmResID;
      short                           hmmIndex;
  };
  typedef struct HMStringResType          HMStringResType;
  endif  /* !defined(__MACHELP__) */
  
  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 OPAQUE_UPP_TYPES
  if CALL_NOT_IN_CARBON
      EXTERN_API(TipFunctionUPP)
      NewTipFunctionUPP              (TipFunctionProcPtr      userRoutine);
  
      EXTERN_API(void)
      DisposeTipFunctionUPP          (TipFunctionUPP          userUPP);
  
      EXTERN_API(OSErr)
      InvokeTipFunctionUPP           (Point                   tip,
                                      RgnHandle               structure,
                                      Rect *                  r,
                                      BalloonVariant *        balloonVariant,
                                      TipFunctionUPP          userUPP);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  else
      enum { uppTipFunctionProcInfo = 0x00003FE0 };                   /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
      #define NewTipFunctionUPP(userRoutine)                          (TipFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTipFunctionProcInfo, GetCurrentArchitecture())
      #define DisposeTipFunctionUPP(userUPP)                          DisposeRoutineDescriptor(userUPP)
      #define InvokeTipFunctionUPP(tip, structure, r, balloonVariant, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppTipFunctionProcInfo, (tip), (structure), (r), (balloonVariant))
  endif
  /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  define NewTipFunctionProc(userRoutine)                         NewTipFunctionUPP(userRoutine)
  define CallTipFunctionProc(userRoutine, tip, structure, r, balloonVariant) InvokeTipFunctionUPP(tip, structure, r, balloonVariant, userRoutine)
  /*  Public Interfaces  */
  if CALL_NOT_IN_CARBON
  EXTERN_API( OSErr )
  HMGetHelpMenuHandle             (MenuHandle *           mh)                                 THREEWORDINLINE(0x303C, 0x0200, 0xA830);
  
  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);
  
  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);
  
  EXTERN_API( OSErr )
  HMRemoveBalloon                 (void)                                                      THREEWORDINLINE(0x303C, 0x0002, 0xA830);
  
  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);
  
  EXTERN_API( Boolean )
  HMIsBalloon                     (void)                                                      THREEWORDINLINE(0x303C, 0x0007, 0xA830);
  
  EXTERN_API( Boolean )
  HMGetBalloons                   (void)                                                      THREEWORDINLINE(0x303C, 0x0003, 0xA830);
  
  EXTERN_API( OSErr )
  HMSetBalloons                   (Boolean                flag)                               THREEWORDINLINE(0x303C, 0x0104, 0xA830);
  
  EXTERN_API( OSErr )
  HMSetFont                       (SInt16                 font)                               THREEWORDINLINE(0x303C, 0x0108, 0xA830);
  
  EXTERN_API( OSErr )
  HMSetFontSize                   (UInt16                 fontSize)                           THREEWORDINLINE(0x303C, 0x0109, 0xA830);
  
  EXTERN_API( OSErr )
  HMGetFont                       (SInt16 *               font)                               THREEWORDINLINE(0x303C, 0x020A, 0xA830);
  
  EXTERN_API( OSErr )
  HMGetFontSize                   (UInt16 *               fontSize)                           THREEWORDINLINE(0x303C, 0x020B, 0xA830);
  
  EXTERN_API( OSErr )
  HMSetDialogResID                (SInt16                 resID)                              THREEWORDINLINE(0x303C, 0x010C, 0xA830);
  
  EXTERN_API( OSErr )
  HMSetMenuResID                  (SInt16                 menuID,
                                   SInt16                 resID)                              THREEWORDINLINE(0x303C, 0x020D, 0xA830);
  
  EXTERN_API( OSErr )
  HMBalloonRect                   (const HMMessageRecord * inMessage,
                                   Rect *                 outRect)                            THREEWORDINLINE(0x303C, 0x040E, 0xA830);
  
  EXTERN_API( OSErr )
  HMBalloonPict                   (const HMMessageRecord * inMessage,
                                   PicHandle *            outPict)                            THREEWORDINLINE(0x303C, 0x040F, 0xA830);
  
  EXTERN_API( OSErr )
  HMScanTemplateItems             (SInt16                 whichID,
                                   SInt16                 whichResFile,
                                   ResType                whichType)                          THREEWORDINLINE(0x303C, 0x0410, 0xA830);
  
  EXTERN_API( OSErr )
  HMExtractHelpMsg                (ResType                inType,
                                   SInt16                 inResID,
                                   SInt16                 inMessageIndex,
                                   SInt16                 inMessageState,
                                   HMMessageRecord *      outMessage)                         THREEWORDINLINE(0x303C, 0x0711, 0xA830);
  
  EXTERN_API( OSErr )
  HMGetDialogResID                (SInt16 *               resID)                              THREEWORDINLINE(0x303C, 0x0213, 0xA830);
  
  EXTERN_API( OSErr )
  HMGetMenuResID                  (SInt16                 menuID,
                                   SInt16 *               resID)                              THREEWORDINLINE(0x303C, 0x0314, 0xA830);
  
  EXTERN_API( OSErr )
  HMGetBalloonWindow              (WindowPtr *            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__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.