summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/FontPanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/FontPanel.h')
-rw-r--r--common/quicktime_win32/FontPanel.h274
1 files changed, 274 insertions, 0 deletions
diff --git a/common/quicktime_win32/FontPanel.h b/common/quicktime_win32/FontPanel.h
new file mode 100644
index 0000000..a7acc08
--- /dev/null
+++ b/common/quicktime_win32/FontPanel.h
@@ -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__ */
+