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.
275 lines
7.9 KiB
275 lines
7.9 KiB
5 years ago
|
/*
|
||
|
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__ */
|
||
|
|