source-engine/common/quicktime_win32/FontPanel.h

275 lines
7.9 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
/*
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__ */