/* File: FontPanel.h Contains: Carbon Font Panel package Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (C) 2002 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 __FONTPANEL__ #define __FONTPANEL__ #ifndef __ATSTYPES__ #include #endif #ifndef __CARBONEVENTS__ #include #endif #ifndef __MACERRORS__ #include #endif #ifndef __MACTYPES__ #include #endif #ifndef __QUICKDRAW__ #include #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 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Font Panel-Related Events ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* * Discussion: * Event classes */ enum { /* * Events related to font selection or handling. */ kEventClassFont = FOUR_CHAR_CODE('font') }; /* * Summary: * Common command IDs */ enum { /* * The state of the Font Panel should be toggled, displaying it or * hiding it as necessary. If the user closes the Font Panel directly * from the window, the application will receive a * kEventFontPanelClosed event. */ kHICommandShowHideFontPanel = FOUR_CHAR_CODE('shfp') }; /* Font Events */ /* * Summary: * Font events (kEventClassFont) * * Discussion: * When the user closes the Font Panel, a kEventWindowClosed event * will be detected by the Carbon event handler installed by the * system. The system then notifies the application that the Font * Panel has closed by posting a Carbon Event Manager event. This * allows the application to update any menu items or other controls * whose state may have to change because the Font Panel has closed. * kEventWindowClosed has no parameters. When the user selects an * item in the Font Panel, the system will send a * kEventFontSelection event to the event target specified when the * application called SetFontPanelInfo(). kEventFontSelection will * contain parameters reflecting the current Font Panel selection in * all supported formats. Font events are available after Mac OS X * 10.2 in the Carbon framework. */ enum { /* * The Font Panel has been closed. The application should update its * corresponding UI element (e.g., a menu item) accordingly. */ kEventFontPanelClosed = 1, /* * The user has specified font settings in the Font Panel. The * application can obtain these settings from the event, in which * they are stored as parameters. Not all parameters are guaranteed * to be present; the application should check for all those which it * recognizes and apply the ones found as appropriate to the target * text. */ kEventFontSelection = 2 }; /* Parameters for font events: kEventFontPanelClosed None. kEventFontSelection --> kEventParamATSUFontID typeATSUFontID --> kEventParamATSUFontSize typeATSUSize --> kEventParamFMFontFamily typeFMFontFamily --> kEventParamFMFontSize typeFMFontSize --> kEventParamFontColor typeFontColor */ enum { typeATSUFontID = typeUInt32, /* ATSUI font ID.*/ typeATSUSize = typeFixed, /* ATSUI font size.*/ typeFMFontFamily = typeSInt16, /* Font family reference.*/ typeFMFontStyle = typeSInt16, /* Quickdraw font style*/ typeFMFontSize = typeSInt16, /* Integer font size.*/ typeFontColor = typeRGBColor, /* Font color spec (optional).*/ kEventParamATSUFontID = FOUR_CHAR_CODE('auid'), /* typeATSUFontID*/ kEventParamATSUFontSize = FOUR_CHAR_CODE('ausz'), /* typeATSUSize*/ kEventParamFMFontFamily = FOUR_CHAR_CODE('fmfm'), /* typeFMFontFamily*/ kEventParamFMFontStyle = FOUR_CHAR_CODE('fmst'), /* typeFMFontStyle*/ kEventParamFMFontSize = FOUR_CHAR_CODE('fmsz'), /* typeFMFontSize*/ kEventParamFontColor = FOUR_CHAR_CODE('fclr') /* typeFontColor*/ }; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Other Font Panel Constants ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* Error codes (Font Panel codes in range [-8880,-8899]). */ enum { fontPanelShowErr = -8880, /* Can't display the Font Panel.*/ fontPanelSelectionStyleErr = -8881, /* Bad font selection style info.*/ fontPanelFontSelectionQDStyleVersionErr = -8882 /* Unsupported record version.*/ }; /* Type of font information passed in SetFontPanelInfo(). If the client is sending ATSUI style data, it specifies kFontSelectionATSUIType; if it is sending Quickdraw style data, it specifies kFontSelectionQDType. */ enum { kFontSelectionATSUIType = FOUR_CHAR_CODE('astl'), /* Use ATSUIStyle collection.*/ kFontSelectionQDType = FOUR_CHAR_CODE('qstl') /* Use FontSelectionQDStyle record.*/ }; /* Supported versions of the FontSelectionQDStyle record. Clients should always set the field to one of these values. */ enum { kFontSelectionQDStyleVersionZero = 0 }; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Font Panel Types ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* Record specifying the font information to be specified in the Font Panel. This record is used if the client is sending Quickdraw style data (i.e., it specified kFontSelectionQDType in SetFontPanelInfo()). */ struct FontSelectionQDStyle { UInt32 version; /* Version number of struct.*/ FMFontFamilyInstance instance; /* Font instance data.*/ FMFontSize size; /* Size of font in points.*/ Boolean hasColor; /* true if color info supplied.*/ UInt8 reserved; /* Filler byte.*/ RGBColor color; /* Color specification for font.*/ }; typedef struct FontSelectionQDStyle FontSelectionQDStyle; typedef FontSelectionQDStyle * FontSelectionQDStylePtr; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Font Panel Functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* * FPIsFontPanelVisible() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x * Mac OS X: in version 10.2 and later */ EXTERN_API_C( Boolean ) FPIsFontPanelVisible(void); /* * FPShowHideFontPanel() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x * Mac OS X: in version 10.2 and later */ EXTERN_API_C( OSStatus ) FPShowHideFontPanel(void); /* * SetFontInfoForSelection() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x * Mac OS X: in version 10.2 and later */ EXTERN_API_C( OSStatus ) SetFontInfoForSelection( OSType iStyleType, UInt32 iNumStyles, void * iStyles, HIObjectRef iFPEventTarget); #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 /* __FONTPANEL__ */