topical media & game development

talk show tell print

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



  /*
       File:       MacHelp.h
   
       Contains:   Macintosh Help Package Interfaces.
   
       Version:    Technology: CarbonLib 1.0
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1998-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 __MACHELP__
  define __MACHELP__
  
  ifndef __CONTROLS__
  include <Controls.h>
  endif
  
  ifndef __DIALOGS__
  include <Dialogs.h>
  endif
  
  ifndef __EVENTS__
  include <Events.h>
  endif
  
  ifndef __MACWINDOWS__
  include <MacWindows.h>
  endif
  
  ifndef __MENUS__
  include <Menus.h>
  endif
  
  ifndef __MOVIES__
  include <Movies.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
  
  /*----------------------------------------------------------------------------------*/
  /* Help Manager constants, etc.                                                     */
  /*----------------------------------------------------------------------------------*/
  ifndef __BALLOONS__
  enum {
      kMacHelpVersion             = 0x0003,
      hmBalloonHelpVersion        = kMacHelpVersion               /* Backwards compatibility */
  };
  
  endif  /* !defined(__BALLOONS__) */
  
  typedef SInt16 HMContentRequest;
  enum {
      kHMSupplyContent            = 0,
      kHMDisposeContent           = 1
  };
  
  typedef UInt32 HMContentType;
  enum {
      kHMNoContent                = FOUR_CHAR_CODE('none'),
      kHMPascalStrContent         = FOUR_CHAR_CODE('pstr'),
      kHMPictResContent           = FOUR_CHAR_CODE('pict'),
      kHMStringResContent         = FOUR_CHAR_CODE('str#'),
      kHMTEHandleContent          = FOUR_CHAR_CODE('txth'),
      kHMPictHandleContent        = FOUR_CHAR_CODE('pcth'),
      kHMTextResContent           = FOUR_CHAR_CODE('text'),
      kHMStrResContent            = FOUR_CHAR_CODE('str '),
      kHMMovieContent             = FOUR_CHAR_CODE('moov')
  };
  
  typedef SInt16 HMTagDisplaySide;
  enum {
      kHMDefaultSide              = 0,
      kHMTopSide                  = 1,
      kHMLeftSide                 = 2,
      kHMBottomSide               = 3,
      kHMRightSide                = 4,
      kHMTopLeftCorner            = 5,
      kHMTopRightCorner           = 6,
      kHMLeftTopCorner            = 7,
      kHMLeftBottomCorner         = 8,
      kHMBottomLeftCorner         = 9,
      kHMBottomRightCorner        = 10,
      kHMRightTopCorner           = 11,
      kHMRightBottomCorner        = 12
  };
  
  typedef SInt16 HMContentProvidedType;
  enum {
      kHMContentProvided          = 0,
      kHMContentNotProvided       = 1,
      kHMContentNotProvidedDontPropagate = 2
  };
  
  enum {
      kHMMinimumContentIndex      = 0,
      kHMMaximumContentIndex      = 1
  };
  
  enum {
      kHMIllegalContentForMinimumState = -1000                    /* *** Need real numbers here*/
  };
  
  enum {
      kHMHelpPropertyContentTag   = FOUR_CHAR_CODE('help')
  };
  
  ifndef __BALLOONS__
  
  struct HMStringResType {
      short                           hmmResID;
      short                           hmmIndex;
  };
  typedef struct HMStringResType          HMStringResType;
  endif  /* !defined(__BALLOONS__) */
  
  struct HMHelpContent {
      HMContentType                   contentType;
      union {
          Str255                          tagString;              /* Pascal String*/
          SInt16                          tagPictID;              /* 'PICT' resource ID*/
          HMStringResType                 tagStringRes;           /* STR# resource ID and index*/
          TEHandle                        tagTEHandle;            /* TextEdit handle*/
          PicHandle                       tagPictHandle;          /* Picture handle*/
          SInt16                          tagTextRes;             /* TEXT/styl resource ID*/
          SInt16                          tagStrRes;              /* STR resource ID*/
          Movie                           tagMovie;               /* QuickTime movie*/
      }                                 u;
  };
  typedef struct HMHelpContent            HMHelpContent;
  
  struct HMHelpContentRec {
      SInt32                          version;
      Rect                            absHotRect;
      HMTagDisplaySide                tagSide;
      HMHelpContent                   content[2];
  };
  typedef struct HMHelpContentRec         HMHelpContentRec;
  
  typedef HMHelpContentRec *              HMHelpContentPtr;
  /*------------------------------------------------------------------------------------------*/
  /* Callback procs                                       */
  /*------------------------------------------------------------------------------------------ */
  typedef CALLBACK_API( OSStatus , HMControlContentProcPtr )(ControlRef inControl, Point inGlobalMouse, HMContentRequest inRequest, HMContentProvidedType *outContentProvided, HMHelpContentPtr ioHelpContent);
  typedef CALLBACK_API( OSStatus , HMWindowContentProcPtr )(WindowPtr inWindow, Point inGlobalMouse, HMContentRequest inRequest, HMContentProvidedType *outContentProvided, HMHelpContentPtr ioHelpContent);
  typedef CALLBACK_API( OSStatus , HMMenuTitleContentProcPtr )(MenuHandle inMenu, HMContentRequest inRequest, HMContentProvidedType *outContentProvided, HMHelpContentPtr ioHelpContent);
  typedef CALLBACK_API( OSStatus , HMMenuItemContentProcPtr )(const MenuTrackingData *inTrackingData, HMContentRequest inRequest, HMContentProvidedType *outContentProvided, HMHelpContentPtr ioHelpContent);
  typedef STACK_UPP_TYPE(HMControlContentProcPtr)                 HMControlContentUPP;
  typedef STACK_UPP_TYPE(HMWindowContentProcPtr)                  HMWindowContentUPP;
  typedef STACK_UPP_TYPE(HMMenuTitleContentProcPtr)               HMMenuTitleContentUPP;
  typedef STACK_UPP_TYPE(HMMenuItemContentProcPtr)                HMMenuItemContentUPP;
  if OPAQUE_UPP_TYPES
      EXTERN_API(HMControlContentUPP)
      NewHMControlContentUPP         (HMControlContentProcPtr userRoutine);
  
      EXTERN_API(HMWindowContentUPP)
      NewHMWindowContentUPP          (HMWindowContentProcPtr  userRoutine);
  
      EXTERN_API(HMMenuTitleContentUPP)
      NewHMMenuTitleContentUPP       (HMMenuTitleContentProcPtr userRoutine);
  
      EXTERN_API(HMMenuItemContentUPP)
      NewHMMenuItemContentUPP        (HMMenuItemContentProcPtr userRoutine);
  
      EXTERN_API(void)
      DisposeHMControlContentUPP     (HMControlContentUPP     userUPP);
  
      EXTERN_API(void)
      DisposeHMWindowContentUPP      (HMWindowContentUPP      userUPP);
  
      EXTERN_API(void)
      DisposeHMMenuTitleContentUPP    (HMMenuTitleContentUPP  userUPP);
  
      EXTERN_API(void)
      DisposeHMMenuItemContentUPP    (HMMenuItemContentUPP    userUPP);
  
      EXTERN_API(OSStatus)
      InvokeHMControlContentUPP      (ControlRef              inControl,
                                      Point                   inGlobalMouse,
                                      HMContentRequest        inRequest,
                                      HMContentProvidedType * outContentProvided,
                                      HMHelpContentPtr        ioHelpContent,
                                      HMControlContentUPP     userUPP);
  
      EXTERN_API(OSStatus)
      InvokeHMWindowContentUPP       (WindowPtr               inWindow,
                                      Point                   inGlobalMouse,
                                      HMContentRequest        inRequest,
                                      HMContentProvidedType * outContentProvided,
                                      HMHelpContentPtr        ioHelpContent,
                                      HMWindowContentUPP      userUPP);
  
      EXTERN_API(OSStatus)
      InvokeHMMenuTitleContentUPP    (MenuHandle              inMenu,
                                      HMContentRequest        inRequest,
                                      HMContentProvidedType * outContentProvided,
                                      HMHelpContentPtr        ioHelpContent,
                                      HMMenuTitleContentUPP   userUPP);
  
      EXTERN_API(OSStatus)
      InvokeHMMenuItemContentUPP     (const MenuTrackingData * inTrackingData,
                                      HMContentRequest        inRequest,
                                      HMContentProvidedType * outContentProvided,
                                      HMHelpContentPtr        ioHelpContent,
                                      HMMenuItemContentUPP    userUPP);
  
  else
      enum { uppHMControlContentProcInfo = 0x0000FBF0 };              /* pascal 4_bytes Func(4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes) */
      enum { uppHMWindowContentProcInfo = 0x0000FBF0 };               /* pascal 4_bytes Func(4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes) */
      enum { uppHMMenuTitleContentProcInfo = 0x00003EF0 };            /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
      enum { uppHMMenuItemContentProcInfo = 0x00003EF0 };             /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
      #define NewHMControlContentUPP(userRoutine)                     (HMControlContentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHMControlContentProcInfo, GetCurrentArchitecture())
      #define NewHMWindowContentUPP(userRoutine)                      (HMWindowContentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHMWindowContentProcInfo, GetCurrentArchitecture())
      #define NewHMMenuTitleContentUPP(userRoutine)                   (HMMenuTitleContentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHMMenuTitleContentProcInfo, GetCurrentArchitecture())
      #define NewHMMenuItemContentUPP(userRoutine)                    (HMMenuItemContentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHMMenuItemContentProcInfo, GetCurrentArchitecture())
      #define DisposeHMControlContentUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
      #define DisposeHMWindowContentUPP(userUPP)                      DisposeRoutineDescriptor(userUPP)
      #define DisposeHMMenuTitleContentUPP(userUPP)                   DisposeRoutineDescriptor(userUPP)
      #define DisposeHMMenuItemContentUPP(userUPP)                    DisposeRoutineDescriptor(userUPP)
      #define InvokeHMControlContentUPP(inControl, inGlobalMouse, inRequest, outContentProvided, ioHelpContent, userUPP)  (OSStatus)CALL_FIVE_PARAMETER_UPP((userUPP), uppHMControlContentProcInfo, (inControl), (inGlobalMouse), (inRequest), (outContentProvided), (ioHelpContent))
      #define InvokeHMWindowContentUPP(inWindow, inGlobalMouse, inRequest, outContentProvided, ioHelpContent, userUPP)  (OSStatus)CALL_FIVE_PARAMETER_UPP((userUPP), uppHMWindowContentProcInfo, (inWindow), (inGlobalMouse), (inRequest), (outContentProvided), (ioHelpContent))
      #define InvokeHMMenuTitleContentUPP(inMenu, inRequest, outContentProvided, ioHelpContent, userUPP)  (OSStatus)CALL_FOUR_PARAMETER_UPP((userUPP), uppHMMenuTitleContentProcInfo, (inMenu), (inRequest), (outContentProvided), (ioHelpContent))
      #define InvokeHMMenuItemContentUPP(inTrackingData, inRequest, outContentProvided, ioHelpContent, userUPP)  (OSStatus)CALL_FOUR_PARAMETER_UPP((userUPP), uppHMMenuItemContentProcInfo, (inTrackingData), (inRequest), (outContentProvided), (ioHelpContent))
  endif
  /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  define NewHMControlContentProc(userRoutine)                    NewHMControlContentUPP(userRoutine)
  define NewHMWindowContentProc(userRoutine)                     NewHMWindowContentUPP(userRoutine)
  define NewHMMenuTitleContentProc(userRoutine)                  NewHMMenuTitleContentUPP(userRoutine)
  define NewHMMenuItemContentProc(userRoutine)                   NewHMMenuItemContentUPP(userRoutine)
  define CallHMControlContentProc(userRoutine, inControl, inGlobalMouse, inRequest, outContentProvided, ioHelpContent) InvokeHMControlContentUPP(inControl, inGlobalMouse, inRequest, outContentProvided, ioHelpContent, userRoutine)
  define CallHMWindowContentProc(userRoutine, inWindow, inGlobalMouse, inRequest, outContentProvided, ioHelpContent) InvokeHMWindowContentUPP(inWindow, inGlobalMouse, inRequest, outContentProvided, ioHelpContent, userRoutine)
  define CallHMMenuTitleContentProc(userRoutine, inMenu, inRequest, outContentProvided, ioHelpContent) InvokeHMMenuTitleContentUPP(inMenu, inRequest, outContentProvided, ioHelpContent, userRoutine)
  define CallHMMenuItemContentProc(userRoutine, inTrackingData, inRequest, outContentProvided, ioHelpContent) InvokeHMMenuItemContentUPP(inTrackingData, inRequest, outContentProvided, ioHelpContent, userRoutine)
  /*------------------------------------------------------------------------------------------*/
  /* API                                                                                      */
  /*------------------------------------------------------------------------------------------*/
  /* Installing/Retrieving Content */
  EXTERN_API( OSStatus )
  HMSetControlHelpContent         (ControlRef             inControl,
                                   const HMHelpContentRec * inContent);
  
  EXTERN_API( OSStatus )
  HMGetControlHelpContent         (ControlRef             inControl,
                                   HMHelpContentRec *     outContent);
  
  EXTERN_API( OSStatus )
  HMSetWindowHelpContent          (WindowRef              inWindow,
                                   const HMHelpContentRec * inContent);
  
  EXTERN_API( OSStatus )
  HMGetWindowHelpContent          (WindowRef              inWindow,
                                   HMHelpContentRec *     outContent);
  
  EXTERN_API( OSStatus )
  HMSetMenuItemHelpContent        (MenuRef                inMenu,
                                   MenuItemIndex          inItem,
                                   const HMHelpContentRec * inContent);
  
  EXTERN_API( OSStatus )
  HMGetMenuItemHelpContent        (MenuRef                inMenu,
                                   MenuItemIndex          inItem,
                                   HMHelpContentRec *     outContent);
  
  /* Installing/Retrieving Content Callbacks */
  EXTERN_API( OSStatus )
  HMInstallControlContentCallback (ControlRef             inControl,
                                   HMControlContentUPP    inContentUPP);
  
  EXTERN_API( OSStatus )
  HMInstallWindowContentCallback  (WindowRef              inWindow,
                                   HMWindowContentUPP     inContentUPP);
  
  EXTERN_API( OSStatus )
  HMInstallMenuTitleContentCallback (MenuRef              inMenu,
                                   HMMenuTitleContentUPP  inContentUPP);
  
  EXTERN_API( OSStatus )
  HMInstallMenuItemContentCallback (MenuRef               inMenu,
                                   HMMenuItemContentUPP   inContentUPP);
  
  EXTERN_API( OSStatus )
  HMGetControlContentCallback     (ControlRef             inControl,
                                   HMControlContentUPP *  outContentUPP);
  
  EXTERN_API( OSStatus )
  HMGetWindowContentCallback      (WindowRef              inWindow,
                                   HMWindowContentUPP *   outContentUPP);
  
  EXTERN_API( OSStatus )
  HMGetMenuTitleContentCallback   (MenuRef                inMenu,
                                   HMMenuTitleContentUPP * outContentUPP);
  
  EXTERN_API( OSStatus )
  HMGetMenuItemContentCallback    (MenuRef                inMenu,
                                   HMMenuItemContentUPP * outContentUPP);
  
  /* Enabling and Disabling Help Tags */
  EXTERN_API( Boolean )
  HMAreHelpTagsDisplayed          (void);
  
  EXTERN_API( OSStatus )
  HMSetHelpTagsDisplayed          (Boolean                inDisplayTags);
  
  EXTERN_API( OSStatus )
  HMSetTagDelay                   (Duration               inDelay);
  
  EXTERN_API( OSStatus )
  HMGetTagDelay                   (Duration *             outDelay);
  
  /* Compatibility */
  EXTERN_API( OSStatus )
  HMSetMenuHelpFromBalloonRsrc    (MenuRef                inMenu,
                                   SInt16                 inHmnuRsrcID);
  
  EXTERN_API( OSStatus )
  HMSetDialogHelpFromBalloonRsrc  (DialogRef              inDialog,
                                   SInt16                 inHdlgRsrcID,
                                   SInt16                 inItemStart);
  
  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 /* __MACHELP__ */
  
  


(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.