mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,274 @@
|
||||
/*
|
||||
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__ */
|
||||
|
||||
Reference in New Issue
Block a user