275 lines
7.9 KiB
C
275 lines
7.9 KiB
C
/*
|
|
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__ */
|
|
|