You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
7.9 KiB
274 lines
7.9 KiB
/* |
|
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 <ATSTypes.h> |
|
#endif |
|
|
|
#ifndef __CARBONEVENTS__ |
|
#include <CarbonEvents.h> |
|
#endif |
|
|
|
#ifndef __MACERRORS__ |
|
#include <MacErrors.h> |
|
#endif |
|
|
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __QUICKDRAW__ |
|
#include <Quickdraw.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 |
|
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
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 <version> 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__ */ |
|
|
|
|