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.
3472 lines
125 KiB
3472 lines
125 KiB
/* |
|
File: MacTextEditor.h |
|
|
|
Contains: Interfaces for MLTE - TextEdit replacement |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1996-2001 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 __MACTEXTEDITOR__ |
|
#define __MACTEXTEDITOR__ |
|
|
|
#ifndef __CONDITIONALMACROS__ |
|
#include <ConditionalMacros.h> |
|
#endif |
|
|
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __FILES__ |
|
#include <Files.h> |
|
#endif |
|
|
|
#ifndef __MACERRORS__ |
|
#include <MacErrors.h> |
|
#endif |
|
|
|
#ifndef __CFSTRING__ |
|
#include <CFString.h> |
|
#endif |
|
|
|
#ifndef __CFDICTIONARY__ |
|
#include <CFDictionary.h> |
|
#endif |
|
|
|
#ifndef __ATSUNICODE__ |
|
#include <ATSUnicode.h> |
|
#endif |
|
|
|
#ifndef __DRAG__ |
|
#include <Drag.h> |
|
#endif |
|
|
|
#ifndef __MACWINDOWS__ |
|
#include <MacWindows.h> |
|
#endif |
|
|
|
#ifndef __EVENTS__ |
|
#include <Events.h> |
|
#endif |
|
|
|
#ifndef __CARBONEVENTS__ |
|
#include <CarbonEvents.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 |
|
|
|
|
|
|
|
typedef struct OpaqueTXNObject* TXNObject; |
|
typedef struct OpaqueTXNFontMenuObject* TXNFontMenuObject; |
|
typedef UInt32 TXNFrameID; |
|
typedef UInt32 TXNVersionValue; |
|
enum { |
|
kTXNWillDefaultToATSUIBit = 0, |
|
kTXNWillDefaultToCarbonEventBit = 1 |
|
}; |
|
|
|
|
|
typedef OptionBits TXNFeatureBits; |
|
enum { |
|
kTXNWillDefaultToATSUIMask = 1L << kTXNWillDefaultToATSUIBit, |
|
kTXNWillDefaultToCarbonEventMask = 1L << kTXNWillDefaultToCarbonEventBit |
|
}; |
|
|
|
enum { |
|
kTXNWantMoviesBit = 0, |
|
kTXNWantSoundBit = 1, |
|
kTXNWantGraphicsBit = 2, |
|
kTXNAlwaysUseQuickDrawTextBit = 3, |
|
kTXNUseTemporaryMemoryBit = 4 |
|
}; |
|
|
|
|
|
typedef OptionBits TXNInitOptions; |
|
enum { |
|
kTXNWantMoviesMask = 1L << kTXNWantMoviesBit, |
|
kTXNWantSoundMask = 1L << kTXNWantSoundBit, |
|
kTXNWantGraphicsMask = 1L << kTXNWantGraphicsBit, |
|
kTXNAlwaysUseQuickDrawTextMask = 1L << kTXNAlwaysUseQuickDrawTextBit, |
|
kTXNUseTemporaryMemoryMask = 1L << kTXNUseTemporaryMemoryBit |
|
}; |
|
|
|
enum { |
|
kTXNDrawGrowIconBit = 0, |
|
kTXNShowWindowBit = 1, |
|
kTXNWantHScrollBarBit = 2, |
|
kTXNWantVScrollBarBit = 3, |
|
kTXNNoTSMEverBit = 4, |
|
kTXNReadOnlyBit = 5, |
|
kTXNNoKeyboardSyncBit = 6, |
|
kTXNNoSelectionBit = 7, |
|
kTXNSaveStylesAsSTYLResourceBit = 8, |
|
kOutputTextInUnicodeEncodingBit = 9, |
|
kTXNDoNotInstallDragProcsBit = 10, |
|
kTXNAlwaysWrapAtViewEdgeBit = 11, |
|
kTXNDontDrawCaretWhenInactiveBit = 12, |
|
kTXNDontDrawSelectionWhenInactiveBit = 13, |
|
kTXNSingleLineOnlyBit = 14, |
|
kTXNDisableDragAndDropBit = 15, |
|
kTXNUseQDforImagingBit = 16, |
|
kTXNMonostyledTextBit = 17 |
|
}; |
|
|
|
|
|
|
|
/* |
|
* TXNFrameOptions |
|
* |
|
* Summary: |
|
* Defines the initial behavior of an MLTE object created with |
|
* TXNNewObject. |
|
* |
|
* Discussion: |
|
* These masks can be combined and passed to TXNNewObject to define |
|
* the initial behavior of a new object. |
|
*/ |
|
typedef OptionBits TXNFrameOptions; |
|
enum { |
|
|
|
/* |
|
* Indicates that the frame will have a size box. |
|
*/ |
|
kTXNDrawGrowIconMask = 1L << kTXNDrawGrowIconBit, |
|
|
|
/* |
|
* Indicates that the window associated with the text object will be |
|
* displayed when the object is created. The application no longer |
|
* needs to call the ShowWindow function from the Window Manager; |
|
* MLTE will do this for you. |
|
*/ |
|
kTXNShowWindowMask = 1L << kTXNShowWindowBit, |
|
|
|
/* |
|
* Indicates that the frame will have a horizontal scrollbar. |
|
*/ |
|
kTXNWantHScrollBarMask = 1L << kTXNWantHScrollBarBit, |
|
|
|
/* |
|
* Indicates that the frame will have a vertical scrollbar. |
|
*/ |
|
kTXNWantVScrollBarMask = 1L << kTXNWantVScrollBarBit, |
|
|
|
/* |
|
* Indicates that the Text Services Manager will not be used. You |
|
* cannot use this mask when your application accepts Unicode input. |
|
*/ |
|
kTXNNoTSMEverMask = 1L << kTXNNoTSMEverBit, |
|
|
|
/* |
|
* Indicates that the text object will be read-only. |
|
*/ |
|
kTXNReadOnlyMask = 1L << kTXNReadOnlyBit, |
|
|
|
/* |
|
* Indicates that keyboard synchronization will not occur. |
|
*/ |
|
kTXNNoKeyboardSyncMask = 1L << kTXNNoKeyboardSyncBit, |
|
|
|
/* |
|
* Indicates that the user shouldn't be able to set the insertion |
|
* point or make a selection. |
|
*/ |
|
kTXNNoSelectionMask = 1L << kTXNNoSelectionBit, |
|
|
|
/* |
|
* Indicates that the text style will be saved as a |
|
* kTXNMultipleStylesPerTextDocumentResType resource. You can set |
|
* this to assure compatibility with SimpleText. If you use |
|
* kTXNMultipleStylesPerTextDocumentResType resources to save style |
|
* info, your documents can have as many styles as you'd like. |
|
* However tabs are not saved. If you don't use this mask, plain |
|
* text files are saved as kTXNSingleStylePerTextDocumentResType |
|
* resources, and only the first style in the document is saved. |
|
* (Your application is expected to apply all style changes to the |
|
* entire document.) If you save files with a |
|
* kTXNSingleStylePerTextDocumentResType resource, their output is |
|
* similar to those output by CodeWarrior, BBEdit, and MPW. |
|
*/ |
|
kTXNSaveStylesAsSTYLResourceMask = 1L << kTXNSaveStylesAsSTYLResourceBit, |
|
|
|
/* |
|
* Indicates that plain text will be saved as Unicode. |
|
*/ |
|
kOutputTextInUnicodeEncodingMask = 1L << kOutputTextInUnicodeEncodingBit, |
|
|
|
/* |
|
* Indicates that MLTE will not install its own drag handler for the |
|
* text object. This can be used if the client wants to install |
|
* their own handler. |
|
*/ |
|
kTXNDoNotInstallDragProcsMask = 1L << kTXNDoNotInstallDragProcsBit, |
|
|
|
/* |
|
* Indicates that lines will wrap at the edge of the view rectangle. |
|
*/ |
|
kTXNAlwaysWrapAtViewEdgeMask = 1L << kTXNAlwaysWrapAtViewEdgeBit, |
|
|
|
/* |
|
* Indicates that the caret shouldn't be drawn when the text object |
|
* doesn't have focus. |
|
*/ |
|
kTXNDontDrawCaretWhenInactiveMask = 1L << kTXNDontDrawCaretWhenInactiveBit, |
|
|
|
/* |
|
* Indicates that the selection (if one) shouldn't be drawn when the |
|
* text object doesn't have focus. |
|
*/ |
|
kTXNDontDrawSelectionWhenInactiveMask = 1L << kTXNDontDrawSelectionWhenInactiveBit, |
|
|
|
/* |
|
* Indicates that the text object will not scroll vertically, |
|
* horizontal scrolling will stop when the end of the text is visible |
|
* (plus any right margin), and there will be no limit to the width |
|
* of the text. |
|
*/ |
|
kTXNSingleLineOnlyMask = 1L << kTXNSingleLineOnlyBit, |
|
|
|
/* |
|
* Indicates that drag and drop will not be allowed in the text |
|
* object. |
|
*/ |
|
kTXNDisableDragAndDropMask = 1L << kTXNDisableDragAndDropBit, |
|
|
|
/* |
|
* Indicates that QuickDraw will be used for imaging instead of the |
|
* default CoreGraphics (Quartz). [X-only] |
|
*/ |
|
kTXNUseQDforImagingMask = 1L << kTXNUseQDforImagingBit, |
|
|
|
/* |
|
* Indicates that the text object will keep in single style no matter |
|
* what kind of changes made to the object. |
|
*/ |
|
kTXNMonostyledTextMask = 1L << kTXNMonostyledTextBit |
|
}; |
|
|
|
enum { |
|
kTXNSetFlushnessBit = 0, |
|
kTXNSetJustificationBit = 1, |
|
kTXNUseFontFallBackBit = 2, |
|
kTXNRotateTextBit = 3, |
|
kTXNUseVerticalTextBit = 4, |
|
kTXNDontUpdateBoxRectBit = 5, |
|
kTXNDontDrawTextBit = 6, |
|
kTXNUseCGContextRefBit = 7, |
|
kTXNImageWithQDBit = 8, |
|
kTXNDontWrapTextBit = 9 |
|
}; |
|
|
|
|
|
/* |
|
* TXNTextBoxOptions |
|
* |
|
* Summary: |
|
* Defines how text will be drawn by one of the TXNxxxDrawTextBox |
|
* API. |
|
* |
|
* Discussion: |
|
* These masks can be combined and added to a TXNTextBoxOptionsData |
|
* structure to be passed to a TXNxxxDrawTextBox API. |
|
*/ |
|
typedef OptionBits TXNTextBoxOptions; |
|
enum { |
|
|
|
/* |
|
* Indicates that the text will be flush according to the line |
|
* direction. |
|
*/ |
|
kTXNSetFlushnessMask = 1L << kTXNSetFlushnessBit, |
|
|
|
/* |
|
* Indicates that the text will be justified in the direction that |
|
* the text is displayed. Horizontal text will be justified |
|
* horizontally, but not vertically. Vertical text will be justified |
|
* vertically, but not horizontally. |
|
*/ |
|
kTXNSetJustificationMask = 1L << kTXNSetJustificationBit, |
|
|
|
/* |
|
* Indicates that ATSUI transient font matching (that searches for a |
|
* font that has a matching character) will be used. |
|
*/ |
|
kTXNUseFontFallBackMask = 1L << kTXNUseFontFallBackBit, |
|
|
|
/* |
|
* Indicates that the text will be rotated. The amount of rotation |
|
* is given in the rotation field of the TXNTextBoxOptionsData |
|
* structure and is in units of degrees (negative values indicate |
|
* clockwise rotation). |
|
*/ |
|
kTXNRotateTextMask = 1L << kTXNRotateTextBit, |
|
|
|
/* |
|
* Indicates that the text will be displayed vertically from top to |
|
* bottom. |
|
*/ |
|
kTXNUseVerticalTextMask = 1L << kTXNUseVerticalTextBit, |
|
|
|
/* |
|
* Indicates that the specified rectangle will not be updated. If |
|
* you use this mask when you call a TXNDrawxxxTextBox function, the |
|
* funtion does not update the right coordinate (bottom coordinate if |
|
* kTXNUseVerticalTextMask is used) of the specified rectangle to |
|
* accommodate the longest line for text. |
|
*/ |
|
kTXNDontUpdateBoxRectMask = 1L << kTXNDontUpdateBoxRectBit, |
|
|
|
/* |
|
* Indicates that the size of the text will be returned but the text |
|
* box will not be drawn. |
|
*/ |
|
kTXNDontDrawTextMask = 1L << kTXNDontDrawTextBit, |
|
|
|
/* |
|
* Indicates that the client has provided a CGContext to be used for |
|
* CG imaging inside the text box. [X-only] |
|
*/ |
|
kTXNUseCGContextRefMask = 1L << kTXNUseCGContextRefBit, |
|
|
|
/* |
|
* Indicates that imaging will be done using QuickDraw instead of the |
|
* default CoreGraphics. [X-only] |
|
*/ |
|
kTXNImageWithQDMask = 1L << kTXNImageWithQDBit, |
|
|
|
/* |
|
* Indicates that text should not be wrapped. [X-only] |
|
*/ |
|
kTXNDontWrapTextMask = 1L << kTXNDontWrapTextBit |
|
}; |
|
|
|
struct TXNTextBoxOptionsData { |
|
TXNTextBoxOptions optionTags; |
|
Fract flushness; |
|
Fract justification; |
|
Fixed rotation; |
|
void * options; /* for future use*/ |
|
}; |
|
typedef struct TXNTextBoxOptionsData TXNTextBoxOptionsData; |
|
enum { |
|
kTXNFontContinuousBit = 0, |
|
kTXNSizeContinuousBit = 1, |
|
kTXNStyleContinuousBit = 2, |
|
kTXNColorContinuousBit = 3 |
|
}; |
|
|
|
typedef OptionBits TXNContinuousFlags; |
|
enum { |
|
kTXNFontContinuousMask = 1L << kTXNFontContinuousBit, |
|
kTXNSizeContinuousMask = 1L << kTXNSizeContinuousBit, |
|
kTXNStyleContinuousMask = 1L << kTXNStyleContinuousBit, |
|
kTXNColorContinuousMask = 1L << kTXNColorContinuousBit |
|
}; |
|
|
|
enum { |
|
kTXNIgnoreCaseBit = 0, |
|
kTXNEntireWordBit = 1, |
|
kTXNUseEncodingWordRulesBit = 31 |
|
}; |
|
|
|
typedef OptionBits TXNMatchOptions; |
|
enum { |
|
kTXNIgnoreCaseMask = 1L << kTXNIgnoreCaseBit, |
|
kTXNEntireWordMask = 1L << kTXNEntireWordBit, |
|
kTXNUseEncodingWordRulesMask = (unsigned long)(1L << kTXNUseEncodingWordRulesBit) |
|
}; |
|
|
|
|
|
typedef OSType TXNFileType; |
|
enum { |
|
kTXNTextensionFile = FOUR_CHAR_CODE('txtn'), |
|
kTXNTextFile = FOUR_CHAR_CODE('TEXT'), |
|
kTXNPictureFile = FOUR_CHAR_CODE('PICT'), |
|
kTXNMovieFile = FOUR_CHAR_CODE('MooV'), |
|
kTXNSoundFile = FOUR_CHAR_CODE('sfil'), |
|
kTXNAIFFFile = FOUR_CHAR_CODE('AIFF'), |
|
kTXNUnicodeTextFile = FOUR_CHAR_CODE('utxt') |
|
}; |
|
|
|
/* Only kTXNTextEditStyleFrameType is supported at this time */ |
|
typedef UInt32 TXNFrameType; |
|
enum { |
|
kTXNTextEditStyleFrameType = 1, |
|
kTXNPageFrameType = 2, /* not supported*/ |
|
kTXNMultipleFrameType = 3 /* not supported*/ |
|
}; |
|
|
|
|
|
typedef OSType TXNDataType; |
|
enum { |
|
kTXNTextData = FOUR_CHAR_CODE('TEXT'), |
|
kTXNPictureData = FOUR_CHAR_CODE('PICT'), |
|
kTXNMovieData = FOUR_CHAR_CODE('moov'), |
|
kTXNSoundData = FOUR_CHAR_CODE('snd '), |
|
kTXNUnicodeTextData = FOUR_CHAR_CODE('utxt') |
|
}; |
|
|
|
|
|
typedef FourCharCode TXNControlTag; |
|
enum { |
|
kTXNLineDirectionTag = FOUR_CHAR_CODE('lndr'), |
|
kTXNJustificationTag = FOUR_CHAR_CODE('just'), |
|
kTXNIOPrivilegesTag = FOUR_CHAR_CODE('iopv'), |
|
kTXNSelectionStateTag = FOUR_CHAR_CODE('slst'), |
|
kTXNInlineStateTag = FOUR_CHAR_CODE('inst'), |
|
kTXNWordWrapStateTag = FOUR_CHAR_CODE('wwrs'), |
|
kTXNKeyboardSyncStateTag = FOUR_CHAR_CODE('kbsy'), |
|
kTXNAutoIndentStateTag = FOUR_CHAR_CODE('auin'), |
|
kTXNTabSettingsTag = FOUR_CHAR_CODE('tabs'), |
|
kTXNRefConTag = FOUR_CHAR_CODE('rfcn'), |
|
kTXNMarginsTag = FOUR_CHAR_CODE('marg'), |
|
kTXNFlattenMoviesTag = FOUR_CHAR_CODE('flat'), |
|
kTXNDoFontSubstitution = FOUR_CHAR_CODE('fSub'), /*note : this could degrade performance greatly in the case of large documents.*/ |
|
kTXNNoUserIOTag = FOUR_CHAR_CODE('nuio'), |
|
kTXNUseCarbonEvents = FOUR_CHAR_CODE('cbcb'), |
|
kTXNDrawCaretWhenInactiveTag = FOUR_CHAR_CODE('dcrt'), |
|
kTXNDrawSelectionWhenInactiveTag = FOUR_CHAR_CODE('dsln'), |
|
kTXNDisableDragAndDropTag = FOUR_CHAR_CODE('drag'), |
|
kTXNSingleLevelUndoTag = FOUR_CHAR_CODE('undo'), |
|
kTXNVisibilityTag = FOUR_CHAR_CODE('visb') /*set the visibility state of the object*/ |
|
}; |
|
|
|
typedef UInt32 TXNActionKey; |
|
enum { |
|
kTXNTypingAction = 0, |
|
kTXNCutAction = 1, |
|
kTXNPasteAction = 2, |
|
kTXNClearAction = 3, |
|
kTXNChangeFontAction = 4, |
|
kTXNChangeFontColorAction = 5, |
|
kTXNChangeFontSizeAction = 6, |
|
kTXNChangeStyleAction = 7, |
|
kTXNAlignLeftAction = 8, |
|
kTXNAlignCenterAction = 9, |
|
kTXNAlignRightAction = 10, |
|
kTXNDropAction = 11, |
|
kTXNMoveAction = 12, |
|
kTXNFontFeatureAction = 13, |
|
kTXNFontVariationAction = 14, |
|
kTXNUndoLastAction = 1024 /*use if none of the above apply*/ |
|
}; |
|
|
|
enum { |
|
kTXNClearThisControl = (long)0xFFFFFFFF, |
|
kTXNClearTheseFontFeatures = (long)0x80000000 |
|
}; |
|
|
|
/* |
|
convenience constants for TXNGet/SetTXNControls |
|
kTXNIOPrivilegesTag |
|
*/ |
|
enum { |
|
kTXNReadWrite = false, |
|
kTXNReadOnly = true |
|
}; |
|
|
|
/* kTXNSelectionStateTag*/ |
|
enum { |
|
kTXNSelectionOn = true, |
|
kTXNSelectionOff = false |
|
}; |
|
|
|
/* kTXNInlineStateTag*/ |
|
enum { |
|
kTXNUseInline = false, |
|
kTXNUseBottomline = true |
|
}; |
|
|
|
|
|
/* kTXNWordWrapStateTag*/ |
|
enum { |
|
kTXNAutoWrap = false, |
|
kTXNNoAutoWrap = true |
|
}; |
|
|
|
/* kTXNKeyboardSyncStateTag*/ |
|
enum { |
|
kTXNSyncKeyboard = false, |
|
kTXNNoSyncKeyboard = true |
|
}; |
|
|
|
/* kTXNAutoIndentStateTag*/ |
|
enum { |
|
kTXNAutoIndentOff = false, |
|
kTXNAutoIndentOn = true |
|
}; |
|
|
|
/* kTXNDrawCaretWhenInactiveTag*/ |
|
enum { |
|
kTXNDontDrawCaretWhenInactive = false, |
|
kTXNDrawCaretWhenInactive = true |
|
}; |
|
|
|
/* kTXNDrawSelectionWhenInactiveTag*/ |
|
enum { |
|
kTXNDontDrawSelectionWhenInactive = false, |
|
kTXNDrawSelectionWhenInactive = true |
|
}; |
|
|
|
/* kTXNDisableDragAndDropTag*/ |
|
enum { |
|
kTXNEnableDragAndDrop = false, |
|
kTXNDisableDragAndDrop = true |
|
}; |
|
|
|
typedef SInt8 TXNTabType; |
|
enum { |
|
kTXNRightTab = -1, |
|
kTXNLeftTab = 0, |
|
kTXNCenterTab = 1 |
|
}; |
|
|
|
struct TXNTab { |
|
SInt16 value; |
|
TXNTabType tabType; |
|
UInt8 filler; |
|
}; |
|
typedef struct TXNTab TXNTab; |
|
enum { |
|
kTXNLeftToRight = 0, |
|
kTXNRightToLeft = 1 |
|
}; |
|
|
|
enum { |
|
kTXNFlushDefault = 0, /*flush according to the line direction */ |
|
kTXNFlushLeft = 1, |
|
kTXNFlushRight = 2, |
|
kTXNCenter = 4, |
|
kTXNFullJust = 8, |
|
kTXNForceFullJust = 16 /*flush left for all scripts */ |
|
}; |
|
|
|
/* |
|
In version 1.2 of MLTE and later you can change the top, left and right margins. |
|
The bottom margin is a placeholder for possible future enhancements. |
|
*/ |
|
struct TXNMargins { |
|
SInt16 topMargin; |
|
SInt16 leftMargin; |
|
SInt16 bottomMargin; |
|
SInt16 rightMargin; |
|
}; |
|
typedef struct TXNMargins TXNMargins; |
|
union TXNControlData { |
|
UInt32 uValue; |
|
SInt32 sValue; |
|
TXNTab tabValue; |
|
TXNMargins * marginsPtr; |
|
}; |
|
typedef union TXNControlData TXNControlData; |
|
typedef Boolean TXNScrollBarState; |
|
enum { |
|
kScrollBarsAlwaysActive = true, |
|
kScrollBarsSyncWithFocus = false |
|
}; |
|
|
|
/* |
|
kTXNNoFontVariations is returned in the dataValue field when the caller as asked |
|
to see if the variation is continuous and there was no variation in the continuous range |
|
*/ |
|
enum { |
|
kTXNDontCareTypeSize = (long)0xFFFFFFFF, |
|
kTXNDontCareTypeStyle = 0xFF, |
|
kTXNIncrementTypeSize = 0x00000001, |
|
kTXNDecrementTypeSize = (long)0x80000000, |
|
kTXNUseScriptDefaultValue = -1, |
|
kTXNNoFontVariations = 0x7FFF |
|
}; |
|
|
|
typedef UInt32 TXNOffset; |
|
enum { |
|
kTXNUseCurrentSelection = (unsigned long)0xFFFFFFFF, |
|
kTXNStartOffset = 0, |
|
kTXNEndOffset = 0x7FFFFFFF |
|
}; |
|
|
|
|
|
enum { |
|
kTXNSingleStylePerTextDocumentResType = FOUR_CHAR_CODE('MPSR'), |
|
kTXNMultipleStylesPerTextDocumentResType = FOUR_CHAR_CODE('styl') |
|
}; |
|
|
|
|
|
typedef void * TXNObjectRefcon; |
|
/*constants for TXNShowSelection*/ |
|
enum { |
|
kTXNShowStart = false, |
|
kTXNShowEnd = true |
|
}; |
|
|
|
typedef OSStatus TXNErrors; |
|
/*default constants for TXTNInit. */ |
|
#define kTXNDefaultFontName ((StringPtr)NULL) |
|
enum { |
|
kTXNDefaultFontSize = 0x000C0000 |
|
}; |
|
|
|
enum { |
|
kTXNDefaultFontStyle = normal |
|
}; |
|
|
|
|
|
typedef UInt32 TXNHyperLinkState; |
|
enum { |
|
kTXNLinkNotPressed = 0, |
|
kTXNLinkWasPressed = 1, |
|
kTXNLinkTracking = 3 |
|
}; |
|
|
|
typedef FourCharCode TXNTypeRunAttributes; |
|
enum { |
|
kTXNQDFontNameAttribute = FOUR_CHAR_CODE('fntn'), |
|
kTXNQDFontFamilyIDAttribute = FOUR_CHAR_CODE('font'), |
|
kTXNQDFontSizeAttribute = FOUR_CHAR_CODE('size'), |
|
kTXNQDFontStyleAttribute = FOUR_CHAR_CODE('face'), |
|
kTXNQDFontColorAttribute = FOUR_CHAR_CODE('klor'), |
|
kTXNTextEncodingAttribute = FOUR_CHAR_CODE('encd'), |
|
kTXNATSUIFontFeaturesAttribute = FOUR_CHAR_CODE('atfe'), |
|
kTXNATSUIFontVariationsAttribute = FOUR_CHAR_CODE('atva'), |
|
kTXNURLAttribute = FOUR_CHAR_CODE('urla') |
|
}; |
|
|
|
/* |
|
kTXNQDFontSizeAttributeSize is obsolete and incorrect |
|
font sizes are always returned as a Fixed value, just as |
|
they are passed to MLTE. Use kTXNFontSizeAttributeSize. |
|
*/ |
|
typedef ByteCount TXNTypeRunAttributeSizes; |
|
enum { |
|
kTXNQDFontNameAttributeSize = sizeof(Str255), |
|
kTXNQDFontFamilyIDAttributeSize = sizeof(SInt16), |
|
kTXNQDFontSizeAttributeSize = sizeof(SInt16), |
|
kTXNQDFontStyleAttributeSize = sizeof(Style), |
|
kTXNQDFontColorAttributeSize = sizeof(RGBColor), |
|
kTXNTextEncodingAttributeSize = sizeof(TextEncoding), |
|
kTXNFontSizeAttributeSize = sizeof(Fixed) |
|
}; |
|
|
|
typedef UInt32 TXNPermanentTextEncodingType; |
|
enum { |
|
kTXNSystemDefaultEncoding = 0, |
|
kTXNMacOSEncoding = 1, |
|
kTXNUnicodeEncoding = 2 |
|
}; |
|
|
|
|
|
|
|
typedef FourCharCode TXTNTag; |
|
struct TXNATSUIFeatures { |
|
ItemCount featureCount; |
|
ATSUFontFeatureType * featureTypes; |
|
ATSUFontFeatureSelector * featureSelectors; |
|
}; |
|
typedef struct TXNATSUIFeatures TXNATSUIFeatures; |
|
struct TXNATSUIVariations { |
|
ItemCount variationCount; |
|
ATSUFontVariationAxis * variationAxis; |
|
ATSUFontVariationValue * variationValues; |
|
}; |
|
typedef struct TXNATSUIVariations TXNATSUIVariations; |
|
union TXNAttributeData { |
|
void * dataPtr; |
|
UInt32 dataValue; |
|
TXNATSUIFeatures * atsuFeatures; |
|
TXNATSUIVariations * atsuVariations; |
|
CFURLRef urlReference; |
|
}; |
|
typedef union TXNAttributeData TXNAttributeData; |
|
struct TXNTypeAttributes { |
|
TXTNTag tag; |
|
ByteCount size; |
|
TXNAttributeData data; |
|
}; |
|
typedef struct TXNTypeAttributes TXNTypeAttributes; |
|
struct TXNMacOSPreferredFontDescription { |
|
UInt32 fontID; |
|
Fixed pointSize; |
|
TextEncoding encoding; |
|
Style fontStyle; |
|
}; |
|
typedef struct TXNMacOSPreferredFontDescription TXNMacOSPreferredFontDescription; |
|
struct TXNMatchTextRecord { |
|
const void * iTextPtr; |
|
SInt32 iTextToMatchLength; |
|
TextEncoding iTextEncoding; |
|
}; |
|
typedef struct TXNMatchTextRecord TXNMatchTextRecord; |
|
/*constants & typedefs for setting the background*/ |
|
typedef UInt32 TXNBackgroundType; |
|
enum { |
|
kTXNBackgroundTypeRGB = 1 |
|
}; |
|
|
|
/* |
|
The TXNBackgroundData is left as a union so that it can be expanded |
|
in the future to support other background types |
|
*/ |
|
union TXNBackgroundData { |
|
RGBColor color; |
|
}; |
|
typedef union TXNBackgroundData TXNBackgroundData; |
|
struct TXNBackground { |
|
TXNBackgroundType bgType; |
|
TXNBackgroundData bg; |
|
}; |
|
typedef struct TXNBackground TXNBackground; |
|
struct TXNLongRect { |
|
SInt32 top; |
|
SInt32 left; |
|
SInt32 bottom; |
|
SInt32 right; |
|
}; |
|
typedef struct TXNLongRect TXNLongRect; |
|
/* |
|
options for TXNGet/ClearActionChangeCount to decide what type(s) of action |
|
count to use |
|
*/ |
|
enum { |
|
kTXNTextInputCountBit = 0, |
|
kTXNRunCountBit = 1 |
|
}; |
|
|
|
typedef OptionBits TXNCountOptions; |
|
enum { |
|
kTXNTextInputCountMask = 1L << kTXNTextInputCountBit, |
|
kTXNRunCountMask = 1L << kTXNRunCountBit, |
|
kTXNAllCountMask = kTXNTextInputCountMask | kTXNRunCountMask |
|
}; |
|
|
|
|
|
typedef UInt32 TXNScrollUnit; |
|
enum { |
|
kTXNScrollUnitsInPixels = 0, |
|
kTXNScrollUnitsInLines = 1, |
|
kTXNScrollUnitsInViewRects = 2 |
|
}; |
|
|
|
typedef UInt32 TXNScrollBarOrientation; |
|
enum { |
|
kTXNHorizontal = 0, |
|
kTXNVertical = 1 |
|
}; |
|
|
|
typedef CALLBACK_API( OSStatus , TXNFindProcPtr )(const TXNMatchTextRecord *matchData, TXNDataType iDataType, TXNMatchOptions iMatchOptions, const void *iSearchTextPtr, TextEncoding encoding, TXNOffset absStartOffset, ByteCount searchTextLength, TXNOffset *oStartMatch, TXNOffset *oEndMatch, Boolean *ofound, UInt32 refCon); |
|
typedef CALLBACK_API( CFStringRef , TXNActionKeyMapperProcPtr )(TXNActionKey actionKey, UInt32 commandID); |
|
|
|
typedef CALLBACK_API( void , TXNScrollInfoProcPtr )(SInt32 iValue, SInt32 iMaximumValue, TXNScrollBarOrientation iScrollBarOrientation, SInt32 iRefCon); |
|
typedef STACK_UPP_TYPE(TXNFindProcPtr) TXNFindUPP; |
|
typedef STACK_UPP_TYPE(TXNActionKeyMapperProcPtr) TXNActionKeyMapperUPP; |
|
typedef STACK_UPP_TYPE(TXNScrollInfoProcPtr) TXNScrollInfoUPP; |
|
/* |
|
* NewTXNFindUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( TXNFindUPP ) |
|
NewTXNFindUPP(TXNFindProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppTXNFindProcInfo = 0x0FFFFFF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(TXNFindUPP) NewTXNFindUPP(TXNFindProcPtr userRoutine) { return (TXNFindUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTXNFindProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewTXNFindUPP(userRoutine) (TXNFindUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTXNFindProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewTXNActionKeyMapperUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( TXNActionKeyMapperUPP ) |
|
NewTXNActionKeyMapperUPP(TXNActionKeyMapperProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppTXNActionKeyMapperProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(TXNActionKeyMapperUPP) NewTXNActionKeyMapperUPP(TXNActionKeyMapperProcPtr userRoutine) { return (TXNActionKeyMapperUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTXNActionKeyMapperProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewTXNActionKeyMapperUPP(userRoutine) (TXNActionKeyMapperUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTXNActionKeyMapperProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewTXNScrollInfoUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( TXNScrollInfoUPP ) |
|
NewTXNScrollInfoUPP(TXNScrollInfoProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppTXNScrollInfoProcInfo = 0x00003FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(TXNScrollInfoUPP) NewTXNScrollInfoUPP(TXNScrollInfoProcPtr userRoutine) { return (TXNScrollInfoUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTXNScrollInfoProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewTXNScrollInfoUPP(userRoutine) (TXNScrollInfoUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTXNScrollInfoProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeTXNFindUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeTXNFindUPP(TXNFindUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeTXNFindUPP(TXNFindUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeTXNFindUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeTXNActionKeyMapperUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeTXNActionKeyMapperUPP(TXNActionKeyMapperUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeTXNActionKeyMapperUPP(TXNActionKeyMapperUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeTXNActionKeyMapperUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeTXNScrollInfoUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeTXNScrollInfoUPP(TXNScrollInfoUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeTXNScrollInfoUPP(TXNScrollInfoUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeTXNScrollInfoUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeTXNFindUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
InvokeTXNFindUPP( |
|
const TXNMatchTextRecord * matchData, |
|
TXNDataType iDataType, |
|
TXNMatchOptions iMatchOptions, |
|
const void * iSearchTextPtr, |
|
TextEncoding encoding, |
|
TXNOffset absStartOffset, |
|
ByteCount searchTextLength, |
|
TXNOffset * oStartMatch, |
|
TXNOffset * oEndMatch, |
|
Boolean * ofound, |
|
UInt32 refCon, |
|
TXNFindUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(OSStatus) InvokeTXNFindUPP(const TXNMatchTextRecord * matchData, TXNDataType iDataType, TXNMatchOptions iMatchOptions, const void * iSearchTextPtr, TextEncoding encoding, TXNOffset absStartOffset, ByteCount searchTextLength, TXNOffset * oStartMatch, TXNOffset * oEndMatch, Boolean * ofound, UInt32 refCon, TXNFindUPP userUPP) { return (OSStatus)CALL_ELEVEN_PARAMETER_UPP(userUPP, uppTXNFindProcInfo, matchData, iDataType, iMatchOptions, iSearchTextPtr, encoding, absStartOffset, searchTextLength, oStartMatch, oEndMatch, ofound, refCon); } |
|
#else |
|
#define InvokeTXNFindUPP(matchData, iDataType, iMatchOptions, iSearchTextPtr, encoding, absStartOffset, searchTextLength, oStartMatch, oEndMatch, ofound, refCon, userUPP) (OSStatus)CALL_ELEVEN_PARAMETER_UPP((userUPP), uppTXNFindProcInfo, (matchData), (iDataType), (iMatchOptions), (iSearchTextPtr), (encoding), (absStartOffset), (searchTextLength), (oStartMatch), (oEndMatch), (ofound), (refCon)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeTXNActionKeyMapperUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( CFStringRef ) |
|
InvokeTXNActionKeyMapperUPP( |
|
TXNActionKey actionKey, |
|
UInt32 commandID, |
|
TXNActionKeyMapperUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(CFStringRef) InvokeTXNActionKeyMapperUPP(TXNActionKey actionKey, UInt32 commandID, TXNActionKeyMapperUPP userUPP) { return (CFStringRef)CALL_TWO_PARAMETER_UPP(userUPP, uppTXNActionKeyMapperProcInfo, actionKey, commandID); } |
|
#else |
|
#define InvokeTXNActionKeyMapperUPP(actionKey, commandID, userUPP) (CFStringRef)CALL_TWO_PARAMETER_UPP((userUPP), uppTXNActionKeyMapperProcInfo, (actionKey), (commandID)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeTXNScrollInfoUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeTXNScrollInfoUPP( |
|
SInt32 iValue, |
|
SInt32 iMaximumValue, |
|
TXNScrollBarOrientation iScrollBarOrientation, |
|
SInt32 iRefCon, |
|
TXNScrollInfoUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeTXNScrollInfoUPP(SInt32 iValue, SInt32 iMaximumValue, TXNScrollBarOrientation iScrollBarOrientation, SInt32 iRefCon, TXNScrollInfoUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppTXNScrollInfoProcInfo, iValue, iMaximumValue, iScrollBarOrientation, iRefCon); } |
|
#else |
|
#define InvokeTXNScrollInfoUPP(iValue, iMaximumValue, iScrollBarOrientation, iRefCon, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppTXNScrollInfoProcInfo, (iValue), (iMaximumValue), (iScrollBarOrientation), (iRefCon)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewTXNFindProc(userRoutine) NewTXNFindUPP(userRoutine) |
|
#define NewTXNActionKeyMapperProc(userRoutine) NewTXNActionKeyMapperUPP(userRoutine) |
|
#define NewTXNScrollInfoProc(userRoutine) NewTXNScrollInfoUPP(userRoutine) |
|
#define CallTXNFindProc(userRoutine, matchData, iDataType, iMatchOptions, iSearchTextPtr, encoding, absStartOffset, searchTextLength, oStartMatch, oEndMatch, ofound, refCon) InvokeTXNFindUPP(matchData, iDataType, iMatchOptions, iSearchTextPtr, encoding, absStartOffset, searchTextLength, oStartMatch, oEndMatch, ofound, refCon, userRoutine) |
|
#define CallTXNActionKeyMapperProc(userRoutine, actionKey, commandID) InvokeTXNActionKeyMapperUPP(actionKey, commandID, userRoutine) |
|
#define CallTXNScrollInfoProc(userRoutine, iValue, iMaximumValue, iScrollBarOrientation, iRefCon) InvokeTXNScrollInfoUPP(iValue, iMaximumValue, iScrollBarOrientation, iRefCon, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
|
|
|
|
|
|
/* |
|
These are currently the only settings for the flags field of TXNCarbonEventInfo |
|
If you want the AppleEventHandlers removed use kTXNNoAppleEventHandlersMask. |
|
If you want to subsequently restart AppleEvent Handlers after removing |
|
your Texthandlers. Use kTXNRestartAppleEventHandlersMask. |
|
*/ |
|
|
|
enum { |
|
kTXNNoAppleEventHandlersBit = 0, |
|
kTXNRestartAppleEventHandlersBit = 1 |
|
}; |
|
|
|
enum { |
|
kTXNNoAppleEventHandlersMask = 1 << kTXNNoAppleEventHandlersBit, |
|
kTXNRestartAppleEventHandlersMask = 1 << kTXNRestartAppleEventHandlersBit |
|
}; |
|
|
|
/*dictionary keys currently supported in the TXNCarbonEventInfo dictionary*/ |
|
#define kTXNTextHandlerKey CFSTR("TextInput") |
|
#define kTXNWindowEventHandlerKey CFSTR("WindowEvent") |
|
#define kTXNWindowResizeEventHandlerKey CFSTR("WindowResize") |
|
#define kTXNCommandTargetKey CFSTR("CommandTarget") |
|
#define kTXNCommandUpdateKey CFSTR("CommandUpdate") |
|
#define kTXNFontMenuRefKey CFSTR("FontMenuRef") |
|
#define kTXNFontMenuObjectKey CFSTR("FontMenuObject") |
|
#define kTXNActionKeyMapperKey CFSTR("ActionKeyMapper") |
|
#define kTXNWheelMouseEventHandlerKey CFSTR("WheelMouseEvent") |
|
|
|
/* use this to pass an EventTargetRef to MLTE via the TXNSetTXNControl... call*/ |
|
struct TXNCarbonEventInfo { |
|
Boolean useCarbonEvents; |
|
UInt8 filler; |
|
UInt16 flags; |
|
CFDictionaryRef fDictionary; |
|
}; |
|
typedef struct TXNCarbonEventInfo TXNCarbonEventInfo; |
|
|
|
/* |
|
***************************************************************************************************** |
|
Allocates a new frame (i.e. new is called to allocate a TXNObject) and returns a pointer to the object |
|
in the newDoc parameter. |
|
Input: |
|
|
|
iFileSpec: If not NULL the file is read to obtain the document contents after the object is |
|
successfully allocated. If NULL you start with an empty document. |
|
|
|
iWindow: Required. The window in which the document is going to be displayed. |
|
|
|
iFrame: If text-area does not fill the entire window. This specifies the area to fill. Can be NULL. |
|
In which case, the window's portRect is used as the frame. |
|
|
|
iFrameOptions: Specify the options to be supported by this frame. The available options are support |
|
for cutting and pasting movies and sound, handle scrollbars and handle grow box in the |
|
frame. |
|
iFrameType: Specify the type of frame to be used. In MLTE version 1.1 and earlier, only |
|
kTXNTextEditStyleFrameType is supported. |
|
|
|
iFileType: Specify the primary file type. If you use kTextensionTextFile files will be saved |
|
in a private format (see xxx). If you want saved files to be plain text files you should |
|
specify 'TEXT' here. If you specify 'TEXT' here you can use the frameOptions parameter to |
|
specify whether the TEXT files should be saved with 'MPSR' resources or 'styl' resources. |
|
These are resources which contain style information for a file, and they both have there |
|
own limitations. If you use 'styl' resources to save style info your documents can have as |
|
many styles as you like however tabs will not be saved. If you use 'MPSR' resources only the |
|
first style in the document will be saved (you as client are expected to apply all style |
|
changes to the entire document). If you truly want rich documents which can potentially |
|
contain graphics and sound you should specify kTextensionTextFileOutput. If you want a plain |
|
text editor like SimpleText specify that style information by saved via 'styl' resources. |
|
If you want files similar to those output by CW IDE, BBEdit, and MPW specify that style |
|
information be saved in a 'MPSR' resource. |
|
|
|
Output: |
|
|
|
OSStatus: function result. If anything goes wrong the error is returned. Success must be complete. |
|
That is if everything works, but there is a failure reading a specified file the object |
|
is freed. |
|
oTXNObject: Pointer to the opaque datastructure allocated by the function. Most of the subsequent |
|
functions require that such a pointer be passed in. |
|
|
|
oTXNFrameID: Unique ID for the frame. <Note in version 1.0 this value is always set to 0> |
|
iRefCon: Caller can set this to any value. It is retained by the |
|
TXNNewObject which can later be asked to return it. |
|
************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNNewObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNNewObject( |
|
const FSSpec * iFileSpec, /* can be NULL */ |
|
WindowRef iWindow, |
|
const Rect * iFrame, /* can be NULL */ |
|
TXNFrameOptions iFrameOptions, |
|
TXNFrameType iFrameType, |
|
TXNFileType iFileType, |
|
TXNPermanentTextEncodingType iPermanentEncoding, |
|
TXNObject * oTXNObject, |
|
TXNFrameID * oTXNFrameID, |
|
TXNObjectRefcon iRefCon); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************************* |
|
Delete a previously allocated TXNObject and all associated data structures. If the frameType is |
|
multiple frames all frames are released. |
|
|
|
Input: |
|
iTXNObject: opaque structure to free. |
|
************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNDeleteObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNDeleteObject(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************************* |
|
Changes the frame's size to match the new width and height. |
|
Input: |
|
|
|
iTXNObject: opaque Textension structure. |
|
|
|
iWidth: New width in pixels. |
|
|
|
iHeight: New height in pixels. |
|
|
|
iTXNFrameID: FrameID that specifies the frame to move. |
|
************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNResizeFrame() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNResizeFrame( |
|
TXNObject iTXNObject, |
|
UInt32 iWidth, |
|
UInt32 iHeight, |
|
TXNFrameID iTXNFrameID); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************************* |
|
Changes the frame's bounds to match the Rect. |
|
Input: |
|
iTXNObject : opaque Textension structure. |
|
|
|
(iTop, iLeft, iBottom, iRight): Rect of the view |
|
|
|
|
|
iTXNFrameID: FrameID that specifies the frame to move. |
|
************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNSetFrameBounds() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNSetFrameBounds( |
|
TXNObject iTXNObject, |
|
SInt32 iTop, |
|
SInt32 iLeft, |
|
SInt32 iBottom, |
|
SInt32 iRight, |
|
TXNFrameID iTXNFrameID); |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************************** |
|
Initialize the Textension library. Should be called as soon as possible after the Macintosh toolbox |
|
is initialized. |
|
Input: |
|
iDefaultFonts: A table of font information including fontFamily ID, point size, |
|
style, and script code. The table can be NULL or can have |
|
an entry for any script for which you would like to to |
|
designate a default font. Only a valid script number is |
|
required. You can designate that Textension should use |
|
the default for a give script by setting the field to kTXNUseScriptDefaultValue (-1). |
|
|
|
For example, if you wanted to specify New York as the default |
|
font to use for Roman scripts, but were happy with the |
|
default style and size you would call the function like this: |
|
|
|
TXNMacOSPreferredFontDescription defaults; |
|
GetFNum( "\pNew York", &defaults.fontFamilyID ); |
|
defaults.pointSize = kTXNDefaultFontSize; |
|
defaults.fontStyle = kTXNDefaultFontStyle; |
|
defaults.script = smRoman; |
|
status = TXNInitTextension( &defaults, 1, 0 ); |
|
iCountDefaultFonts: Count of entries in the iDefaultFonts parameter. |
|
|
|
|
|
|
|
iUsageFlags: Specify whether sound and movies should be supported. |
|
Output: |
|
OSStatus: Function result. NoErr if everything initialized correctly. Variety of |
|
possible MacOS errors if something goes wrong. |
|
*********************************************************************************************| |
|
*/ |
|
/* |
|
* TXNInitTextension() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNInitTextension( |
|
const TXNMacOSPreferredFontDescription iDefaultFonts[], /* can be NULL */ |
|
ItemCount iCountDefaultFonts, |
|
TXNInitOptions iUsageFlags); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************* |
|
Close the Textension library. It is necessary to call this function so that Textension |
|
can correctly close down any TSM connections and do other clean up. |
|
************************************************************************************** |
|
*/ |
|
/* |
|
* TXNTerminateTextension() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNTerminateTextension(void); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************** |
|
Process a keydown event. Note that if CJK script is installed and current font is |
|
CJK inline input will take place. This is always the case unless the application has |
|
requested the bottomline window or has turned off TSM (see initialization options above). |
|
|
|
Input: |
|
iTXNObject: opaque struct to apply keydown to. |
|
|
|
iEvent: the keydown event. |
|
*************************************************************************************** |
|
*/ |
|
/* |
|
* TXNKeyDown() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNKeyDown( |
|
TXNObject iTXNObject, |
|
const EventRecord * iEvent); |
|
|
|
|
|
/* |
|
*************************************************************************************** |
|
Handle switching the cursor. If over text area set to i-beam. Over graphics, sound, |
|
movie, scrollbar or outside of window set to arrow. |
|
|
|
Input: |
|
iTXNObject: Opaque struct obtained from TXNNewObject. |
|
ioCursorRgn: Region to be passed to WaitNextEvent. Resized accordingly by |
|
TXNAdjustCursor. |
|
*************************************************************************************** |
|
*/ |
|
/* |
|
* TXNAdjustCursor() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNAdjustCursor( |
|
TXNObject iTXNObject, |
|
RgnHandle ioCursorRgn); |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************** |
|
Process click in content region. Takes care of scrolling, selecting text, playing |
|
sound and movies, drag & drop, and double-clicks. |
|
Input: |
|
iTXNObject: Opaque struct obtained from TXNNewObject. |
|
iEvent: the mousedown event |
|
***************************************************************************************** |
|
*/ |
|
/* |
|
* TXNClick() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNClick( |
|
TXNObject iTXNObject, |
|
const EventRecord * iEvent); |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************** |
|
|
|
Call this when WaitNextEvent returns false or there is no active TSNObject . |
|
The TXNObject parameter can be NULL which allows a client to call this function at any |
|
time. This is necessary to insure input methods enough time to be reasonably responsive. |
|
NOTE : You do not need to call this when working on Carbon, TSM events are passed directly |
|
to the text object. |
|
Input: |
|
iTXNObject: The currently active TXNObject or NULL. |
|
ioEvent: The event record. Usually a NULL event. If the |
|
event is not an NULL event on entry, and an input |
|
method consumes the event the event should return |
|
as a NULL event. |
|
Output: |
|
Boolean: True if TSM handled this event. False if TSM did not handle this event. |
|
********************************************************************************************** |
|
*/ |
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* TXNTSMCheck() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
TXNTSMCheck( |
|
TXNObject iTXNObject, /* can be NULL */ |
|
EventRecord * ioEvent); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************** |
|
Selects everything in a frame. |
|
Input: |
|
iTXNObject: opaque TXNObject |
|
*********************************************************************************************** |
|
*/ |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
* TXNSelectAll() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNSelectAll(TXNObject iTXNObject); |
|
|
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************** |
|
Focues the TXNObject. Scrollbars and insertion point are made active if iBecomingFocused |
|
is true, and inactive if false. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject |
|
|
|
iBecomingFocused: true if becoming active. false otherwise. |
|
************************************************************************************************ |
|
*/ |
|
/* |
|
* TXNFocus() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNFocus( |
|
TXNObject iTXNObject, |
|
Boolean iBecomingFocused); |
|
|
|
|
|
/* |
|
************************************************************************************************ |
|
Handle update event (i.e. draw everything in a frame.) This function calls the Toolbox |
|
BeginUpdate - EndUpdate functions for the window that was passed to TXNNewObject. This |
|
makes it inappropriate for windows that contain something else besides the TXNObject. |
|
Input: |
|
iTXNObject: opaque TXNObject |
|
************************************************************************************************ |
|
*/ |
|
/* |
|
* TXNUpdate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNUpdate(TXNObject iTXNObject); |
|
|
|
|
|
/* |
|
************************************************************************************************* |
|
Redraw the TXNObject including any scrollbars associated with the text frame. Call this function |
|
in response to an update event for a window that contains multiple TXNObjects or some other graphic |
|
element. The caller is responsible for calling BeginUpdate/EndUpdate in response to the update |
|
event. |
|
Input: |
|
iTXNObject: opaque TXNObject to draw |
|
iDrawPort: Can be NULL. If NULL the port is drawn to the port currently attached to the |
|
iTXNObject. If not NULL drawing goes to the iDrawPort. If drawing is done |
|
to the iDrawPort selection is not updated. This works this way so that it |
|
is possible to Draw a TXNObject to a static port (i.e. print the thing without |
|
reflowing the text to match the paper size which is what TXNPrint does) |
|
and not have a line drawn where the selection would be. If you pass an |
|
iDrawPort to an active TXNObject (i.e. editable) the selection will not be updated. In |
|
this case the selection will behave oddly until text is typed which will serve |
|
to realign the selection. Bottom-line don't pass a port in unless you want |
|
static text (printed or non-editable) |
|
************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNDraw() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNDraw( |
|
TXNObject iTXNObject, |
|
GWorldPtr iDrawPort); /* can be NULL */ |
|
|
|
|
|
/* |
|
************************************************************************************************* |
|
Force a frame to be updated. Very much like toolbox call InvalRect. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject |
|
************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNForceUpdate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNForceUpdate(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************************** |
|
Depending on state of window get the appropriate sleep time to be passed to WaitNextEvent. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
|
|
Output: |
|
|
|
UInt32: function result appropriate sleep time. |
|
*************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNGetSleepTicks() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( UInt32 ) |
|
TXNGetSleepTicks(TXNObject iTXNObject); |
|
|
|
|
|
/* |
|
*************************************************************************************************** |
|
Do necessary Idle time processing. Typically flash the cursor. If a TextService is active |
|
pass a NULL event to the Text Service so it gets time. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
**************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNIdle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNIdle(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
Handle mouse-down in grow region. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
iEvent: The mousedown event |
|
********************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNGrowWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNGrowWindow( |
|
TXNObject iTXNObject, |
|
const EventRecord * iEvent); |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************************** |
|
Handle mousedown in zoom. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
iPart: Value returned by FindWindow |
|
********************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNZoomWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNZoomWindow( |
|
TXNObject iTXNObject, |
|
SInt16 iPart); |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************************* |
|
Use this to determine if the Undo item in Edit menu should be highlighted or not. Tells you if last |
|
command was undoable. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
Output: |
|
Boolean function result. If True the last command is undoable and the undo item in the menu |
|
should be active. If false last command cannot be undone and undo should be grayed |
|
in the menu. |
|
oTXNActionKey The key code that the caller can use to pick a string to describe the undoable |
|
action in the undo item. Pass in NULL if the string isn't needed. |
|
********************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNCanUndo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
TXNCanUndo( |
|
TXNObject iTXNObject, |
|
TXNActionKey * oTXNActionKey); /* can be NULL */ |
|
|
|
|
|
/* |
|
******************************************************************************************************** |
|
Undo the last command. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
********************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNUndo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNUndo(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
Use this to determine if the current item on the undo stack is redoable. If it returns true. |
|
than the redo item in the edit menu should be active. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
oTXNActionKey The key code that the caller can use to pick a string to describe the redoable |
|
action in the redo item. Pass in NULL if the string isn't needed. |
|
*/ |
|
|
|
/***********************************************************************************************************/ |
|
/* |
|
* TXNCanRedo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
TXNCanRedo( |
|
TXNObject iTXNObject, |
|
TXNActionKey * oTXNActionKey); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************************** |
|
Redo the last command. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
********************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNRedo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNRedo(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
Cut the current selection to the clipboard. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
Output: |
|
OSStatus: function result. Variety of memory or scrap MacOS errors. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNCut() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNCut(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
TXNCopy |
|
Copy current selection |
|
|
|
Input: |
|
iTXNObject: current document |
|
|
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNCopy() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNCopy(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
TXNPaste |
|
Paste the clipboard |
|
|
|
Input: |
|
iTXNObject: current document |
|
|
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNPaste() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNPaste(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************** |
|
TXNClear |
|
clear the current selection |
|
|
|
Input: |
|
iTXNObject: current document |
|
|
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNClear() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNClear(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
TXNGetSelection |
|
Get the absolute offsets of the current selection. |
|
Embedded graphics, sound, etc. each count as one character. |
|
|
|
Input: |
|
iTXNObject: current document |
|
|
|
Output: |
|
oStartOffset: absolute beginning of the current selection. |
|
oEndOffset: end of current selection. |
|
********************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNGetSelection() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNGetSelection( |
|
TXNObject iTXNObject, |
|
TXNOffset * oStartOffset, |
|
TXNOffset * oEndOffset); |
|
|
|
|
|
|
|
/* |
|
***************************************************************************************************** |
|
Scroll the current selection into view. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
iShowEnd: If true the end of the selection is scrolled into view. If false the |
|
beginning of selection is scrolled into view. |
|
**************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNShowSelection() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNShowSelection( |
|
TXNObject iTXNObject, |
|
Boolean iShowEnd); |
|
|
|
|
|
|
|
/* |
|
***************************************************************************************************** |
|
Call to find out if the current selection is empty. Use this to determine if Paste, Cut, Copy, |
|
Clear should be highlighted in Edit menu. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
Output: |
|
Boolean: function result. True if current selection is empty (i.e. start offset == end offset). |
|
False if selection is not empty. |
|
******************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNIsSelectionEmpty() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
TXNIsSelectionEmpty(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************************** |
|
Set the current selection. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
iStartOffset: new beginning |
|
iEndOffset: new end |
|
******************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNSetSelection() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetSelection( |
|
TXNObject iTXNObject, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset); |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************************* |
|
TXNGetContinuousTypeAttributes |
|
Test the current selection to see if type size, style, color and/or font are continuous. |
|
That is is the current selection made up of one font, one font size, one Style, and/or one color. |
|
On return examine the flags to see if the attributes specified were continuous. If an attribute |
|
is continuous then the dataValue field in the TXNTypeAttributes can be examined to get the continous |
|
value. Remember that for color you pass a ptr to an RGBColor in attr[0].data.dataPtr. |
|
Input: |
|
iTXNObject: current document |
|
oContinuousFlags: Bits which can be examined to see if type size, style, color, and/or font are continuous |
|
|
|
e.g |
|
if ( TXNGetContinuousTypeAttributes( txnObject, &flags, 1, &attr ) == noErr ) |
|
{ |
|
if ( flags & kTXNFontContinuousMask ) |
|
....check a font name |
|
ioCount: Count of TXNTypeAttributes records in the ioTypeAttributes array. |
|
ioTypeAttributes: Array of TXNTypeAttributes that indicate the type attributes the |
|
caller is interested in. For example, if you wanted to know if |
|
the current selection was continuous in terms of being all |
|
one same font size you could do something like this. |
|
|
|
TXNTypeAttributes attr[1] = { TXNFontSizeAttribute, sizeof(Fixed),{ 0 } } |
|
|
|
on return from the function if size is continuous (i.e. if the bit 3 of flags is set) |
|
then the third field (attr[0].data.dataValue) will contain the size of the font as a Fixed value. |
|
|
|
|
|
*********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNGetContinuousTypeAttributes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetContinuousTypeAttributes( |
|
TXNObject iTxnObject, |
|
TXNContinuousFlags * oContinuousFlags, |
|
ItemCount iCount, |
|
TXNTypeAttributes ioTypeAttributes[]); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
************************************************************************************************* |
|
TXNSetTypeAttributes |
|
Set the current ranges font information. Values are passed |
|
in the attributes array. Values <= sizeof(UInt32) are passed |
|
by value. > sizeof(UInt32) are passed as a pointer. That is |
|
the TXNTypeAttributes' 3rd field is a union that servers as |
|
either a 32-bit integer where values can be written or a 32-bit pointer |
|
a value. |
|
Input: |
|
iTXNObject: current document |
|
iAttrCount: Count of type attributes in the TXNTypeAttributes array. |
|
iAttributes: Attributes that caller would like to set. |
|
iStartOffset: Start of the range where text attributes should be changed. |
|
iEndOffset: End of the range. |
|
|
|
Output: |
|
OSStatus: various MacOS errs. Notably memory manager and paramErrs. |
|
************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNSetTypeAttributes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetTypeAttributes( |
|
TXNObject iTXNObject, |
|
ItemCount iAttrCount, |
|
const TXNTypeAttributes iAttributes[], |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset); |
|
|
|
|
|
|
|
/* |
|
* TXNSetTXNObjectControls() |
|
* |
|
* Summary: |
|
* Sets formatting and privileges attributes (such as justification, |
|
* line direction, tab values, and read-only status) that apply to |
|
* the entire text object. |
|
* |
|
* Discussion: |
|
* On systems that use Apple Type Services for Unicode Imaging |
|
* (ATSUI), the ATSUI line control attribute tags can be passed to |
|
* this function in the iControlTag parameter. This is the case for |
|
* all the ATSUI tags except kATSULineRotationTag. ATSUI tags are |
|
* applied to the entire text object. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* The text object that identifies the document for which you want |
|
* to set formatting and privileges attributes. |
|
* |
|
* iClearAll: |
|
* A Boolean value. If you set this to true, all formatting and |
|
* privileges attributes are reset to their default value. That |
|
* is, true clears existing tags and resets each to its default |
|
* value. |
|
* |
|
* iControlCount: |
|
* The number of items in the iControlTags array. |
|
* |
|
* iControlTags: |
|
* An array of values that specifies kind of data that is passed |
|
* in the iControlData parameter. See "Formatting and Privileges |
|
* Settings" for a description of possible values. On systems that |
|
* use Apple Type Services for Unicode Imaging (ATSUI), you can |
|
* also pass ATSUI attribute tag constants. See the ATSUI |
|
* documentation for a description of the ATSUI constants. Can be |
|
* NULL if iClearAll is true. |
|
* |
|
* iControlData: |
|
* An array of TXNControlData unions that contain the information |
|
* your application wants to set. The value you supply to the |
|
* iControlTags parameter specifies how the union of type |
|
* TXNControlData is treated. You must make sure that the value |
|
* you assign to the iControlData parameter is the appropriate |
|
* type implied by the value you passed in the iControlTags |
|
* parameter. Can be NULL if iClearAll is true. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetTXNObjectControls( |
|
TXNObject iTXNObject, |
|
Boolean iClearAll, |
|
ItemCount iControlCount, |
|
const TXNControlTag iControlTags[], /* can be NULL */ |
|
const TXNControlData iControlData[]); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* TXNGetTXNObjectControls() |
|
* |
|
* Summary: |
|
* Gets the current formatting and privileges attributes (such as |
|
* justification, line direction, tab values, and read-only status) |
|
* for a text object. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* The text object that identifies the document to be activated. |
|
* |
|
* iControlCount: |
|
* The number of items in the iControlTags array. |
|
* |
|
* iControlTags: |
|
* An array of values that specify the kind of formatting |
|
* information you want returned in the oControlData array. See |
|
* "Formatting and Privileges Settings" for a description of |
|
* possible values. |
|
* |
|
* oControlData: |
|
* An array of TXNControlData unions. On return, the array |
|
* contains the information that was requested through the |
|
* iControlTags array. Your application must allocate the |
|
* oControlData array. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetTXNObjectControls( |
|
TXNObject iTXNObject, /* can be NULL */ |
|
ItemCount iControlCount, |
|
const TXNControlTag iControlTags[], |
|
TXNControlData oControlData[]); |
|
|
|
|
|
|
|
/* |
|
****************************************************************************************************** |
|
TXNCountRunsInRange |
|
Given a range specified by the starting and ending offset return a count of the runs in that |
|
range. Run in this case means changes in TextSyles or a graphic or sound. |
|
Result: |
|
OSStatus: paramerr mostly |
|
Input: |
|
iTXNObject The TXNObject you are interested in. |
|
iStartOffset start of range |
|
iEndOffset end of range |
|
|
|
Output: |
|
oRunCount count of runs in the range |
|
******************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNCountRunsInRange() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNCountRunsInRange( |
|
TXNObject iTXNObject, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset, |
|
ItemCount * oRunCount); |
|
|
|
|
|
|
|
/* |
|
* TXNGetIndexedRunInfoFromRange() |
|
* |
|
* Summary: |
|
* Gets information about a run in a range of data. |
|
* |
|
* Discussion: |
|
* You should first call the TXNCountRunsInRange function to get the |
|
* count. The TXNTypeAttributes structure must specify the text |
|
* attribute in which the application is interested. In other words, |
|
* the tag field must be set. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* The text object for the current text area. |
|
* |
|
* iIndex: |
|
* The value that corresponds to the run for which you want to get |
|
* information. You call the TXNCountRunsInRange function to get |
|
* the number of runs in a range. The iIndex parameter is |
|
* zero-based, so its possible values are from 0 to the number of |
|
* runs in a range minus 1. |
|
* |
|
* iStartOffset: |
|
* The offset at which you want to start to obtain run information. |
|
* |
|
* iEndOffset: |
|
* The offset at which you want run information to end. |
|
* |
|
* oRunStartOffset: |
|
* On return, a pointer to a value that identifies the start of |
|
* run relative to the beginning of the text, not the beginning of |
|
* the range you specified in the iStartOffset parameter. |
|
* |
|
* oRunEndOffset: |
|
* On return, a pointer to a value that identifies the end of the |
|
* run relative to the beginning of the text, not the beginning of |
|
* the range you specified in the iStartOffset parameter. |
|
* |
|
* oRunDataType: |
|
* On return, a pointer to a value that identifies the type of |
|
* data in the run. See "Supported Data Types" for a description |
|
* of possible values. |
|
* |
|
* iTypeAttributeCount: |
|
* The number of font attributes. |
|
* |
|
* ioTypeAttributes: |
|
* A pointer to a structure of type TXNTypeAttributes. On input, |
|
* you specify the attribute (such as color) in the tag field and |
|
* the attribute size in the size field. You can pass NULL for the |
|
* data field. On return, the data field contains the attribute |
|
* data. The data field is a union that serves either as a 32-bit |
|
* integer or a 32-bit pointer, depending on the size field. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetIndexedRunInfoFromRange( |
|
TXNObject iTXNObject, |
|
ItemCount iIndex, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset, |
|
TXNOffset * oRunStartOffset, /* can be NULL */ |
|
TXNOffset * oRunEndOffset, /* can be NULL */ |
|
TXNDataType * oRunDataType, /* can be NULL */ |
|
ItemCount iTypeAttributeCount, |
|
TXNTypeAttributes * ioTypeAttributes); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************** |
|
TXNDataSize |
|
Return the size in bytes of the characters in a given TXNObject. |
|
Result: |
|
ByteCount: The bytes required to hold the characters |
|
Input: |
|
iTXNObject: The TXNObject |
|
|
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNDataSize() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( ByteCount ) |
|
TXNDataSize(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Copy the data in the range specified by startOffset and endOffset. This function should be used |
|
in conjunction with TXNNextDataRun. The client would call TXNCountRunsInRange to the number of data |
|
runs in a given range. The client can then walk the runs with the function TXNGetIndexedRunInfoFromRange. |
|
TXNGetIndexedRunInfoFromRange lets you examine each runs type and text attributes. |
|
For each data run of interest (i.e. one whose data the caller wanted to look at) |
|
the client would call TXNGetData. The handle passed to TXNGetData should not be allocated. |
|
TXNGetData takes care of allocating the dataHandle as necessary. However, the caller is responsible |
|
for disposing the handle. |
|
No effort is made to insure that data copies align on a word boundary. Data is simply copied as |
|
specified in the offsets. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iStartOffset: absolute offset from which data copy should begin. |
|
iEndOffset: absolute offset at which data copy should end. |
|
|
|
Output: |
|
OSStatus Memory errors or TXN_IllegalToCrossDataBoundaries if offsets specify a range that |
|
crosses a data type boundary. |
|
oDataHandle: If noErr a new handle containing the requested data. The caller is responsible |
|
for disposing the handle. Note that the handle is a copy so it can be safely |
|
disposed at any time. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNGetData() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetData( |
|
TXNObject iTXNObject, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset, |
|
Handle * oDataHandle); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Copy the data in the range specified by startOffset and endOffset. |
|
The handle passed to TXNGetDataEncoded should not be allocated. |
|
TXNGetData takes care of allocating the dataHandle as necessary. However, the caller is responsible |
|
for disposing the handle. |
|
No effort is made to insure that data copies align on a word boundary. Data is simply copied as |
|
specified in the offsets. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iStartOffset: absolute offset from which data copy should begin. |
|
iEndOffset: absolute offset at which data copy should end. |
|
iEncoding : should be kTXNTextData or kTXNUnicodeTextData |
|
Output: |
|
OSStatus Memory errors or TXN_IllegalToCrossDataBoundaries if offsets specify a range that |
|
crosses a data type boundary. |
|
oDataHandle: If noErr a new handle containing the requested data. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNGetDataEncoded() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetDataEncoded( |
|
TXNObject iTXNObject, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset, |
|
Handle * oDataHandle, |
|
TXNDataType iEncoding); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
Replace the specified range with the contents of the specified file. The data fork of the file |
|
must be opened by the caller. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
fileSpec: HFS file reference obtained when file is opened. |
|
fileType: files type. |
|
iFileLength: The length of data in the file that should be considered data. This |
|
parameter is available to enable callers to embed text inside their |
|
own private data structures. Note that if the data is in the Textension(txtn) |
|
format this parameter is ignored since length, etc. information is |
|
part of the format. Further note that if you you just want Textension |
|
to read a file and you are not interested in embedding you can just pass |
|
kTXNEndOffset(0x7FFFFFFF), and Textension will use the file manager to |
|
determine the files length. |
|
iStartOffset: start position at which to insert the file into the document. |
|
iEndOffset: end position of range being replaced by the file. |
|
Output: |
|
OSStatus: File manager error or noErr. |
|
*********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNSetDataFromFile() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetDataFromFile( |
|
TXNObject iTXNObject, |
|
SInt16 iFileRefNum, |
|
OSType iFileType, |
|
ByteCount iFileLength, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset); |
|
|
|
|
|
|
|
/* |
|
* TXNSetData() |
|
* |
|
* Summary: |
|
* Replaces a range of data (text, graphics, and so forth). |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* The text object that identifies the document in which you want |
|
* to replace data. |
|
* |
|
* iDataType: |
|
* The type of the replacement data. See "Supported Data Types" |
|
* for a description of possible values. |
|
* |
|
* iDataPtr: |
|
* A pointer to the data that will replace the data that is in the |
|
* range specified by the iStartOffset and iEndOffset parameters. |
|
* Can be NULL if the start and end offsets are different. |
|
* |
|
* iDataSize: |
|
* The size of the data to which iDataPtr points. |
|
* |
|
* iStartOffset: |
|
* The beginning of the range of data to replace. You can use the |
|
* TXNGetSelection function to get the absolute offsets of the |
|
* current selection. |
|
* |
|
* iEndOffset: |
|
* The end of the range to replace. You can use the |
|
* TXNGetSelection function to get the absolute offsets of the |
|
* current selection. If you want to insert text, the ending and |
|
* starting offsets should be the same value. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetData( |
|
TXNObject iTXNObject, |
|
TXNDataType iDataType, |
|
const void * iDataPtr, /* can be NULL */ |
|
ByteCount iDataSize, |
|
TXNOffset iStartOffset, |
|
TXNOffset iEndOffset); |
|
|
|
|
|
/* |
|
************************************************************************************************************ |
|
Retrieve number of times document has been changed. That is for every committed command |
|
(keydown, cut, copy) the value returned is count of those. This is useful for deciding if the Save |
|
item in the File menu should be active. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
|
|
Output: |
|
ItemCount: count of changes. This is total changes since document was created or last saved. |
|
Not count since this routine was last called or anything like that. |
|
*********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNGetChangeCount() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( ItemCount ) |
|
TXNGetChangeCount(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
Save the contents of the document as the given type. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iType: The type of file to create. |
|
iResType: When saving file as plain TEXT the type of resource to |
|
save style information. Use kTXNMultipleStylesPerTextDocumentResType |
|
if your document contains multiple styles and you want a SimpleText |
|
like document. Use kTXNSingleStylePerTextDocumentResType if the |
|
document has a single style and you would like a BBEdit, MPW, CW type |
|
of document. |
|
iPermanentEncoding: The encoding in which the document should be saved (Unicode, Text or System |
|
default). |
|
iFileSpecification: The file specification to which the document should be saved. The |
|
file must have been opened by the caller. The file specification is remembered by the TXNObject |
|
and is used for any subsequent calls to TXNRevert. |
|
iDataReference: The data fork ref num. This is used to write data to the data fork of the |
|
file. The data is written beginning at the current mark. |
|
iResourceReference: The resource fork ref num. If the caller has specified that style information be |
|
saved as a resource (MPW or SimpleText) than this should be a valid reference to |
|
an open resource fork. If the txtn format is being used than this input value |
|
is ignored. |
|
Output: |
|
OSStatus The result of writing the file. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNSave() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSave( |
|
TXNObject iTXNObject, |
|
TXNFileType iType, |
|
OSType iResType, |
|
TXNPermanentTextEncodingType iPermanentEncoding, |
|
const FSSpec * iFileSpecification, |
|
SInt16 iDataReference, |
|
SInt16 iResourceReference); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Revert to the last saved version of this document. If the file was not previously saved the document |
|
is reverted to an empty document. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject |
|
Output: |
|
OSStatus: File manager errors, paramErr, or noErr. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNRevert() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNRevert(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************* |
|
Display the Page Setup dialog of the current default printer and react to any changes |
|
(i.e. Reformat the text if the page layout changes.) |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
|
|
Output: |
|
OSStatus: Print Manager errors, paramErr, noErr. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNPageSetup() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNPageSetup(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************** |
|
Print the document. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
Output: |
|
OSStatus: Print Manager errors, paramErr, noErr. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNPrint() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNPrint(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Test to see if the current scrap contains data that is supported by Textension. Used to determine |
|
if Paste item in Edit menu should be active or inactive. The types of data supported depends on what |
|
data types were specified in the TXNInitTextension options. |
|
Output: |
|
Boolean: function result. True if data type in Clipboard is supported. False if |
|
not a supported data type. If result is True the Paste item in the menu can |
|
be highlighted. |
|
********************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNIsScrapPastable() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
TXNIsScrapPastable(void); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Convert the Textension private scrap to the public clipboard. This should be called on suspend |
|
events and before the application displays a dialog that might support cut and paste. Or more |
|
generally, whenever someone other than the Textension Shared Library needs access to the scrap data. |
|
Output: |
|
OSStatus: Function result. Memory Manager errors, Scrap Manager errors, noErr. |
|
************************************************************************************************************ |
|
*/ |
|
/* |
|
* TXNConvertToPublicScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNConvertToPublicScrap(void); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Convert the public clipboard to our private scrap . This should be called on resume |
|
events and after an application has modified the scrap. Before doing work we check the validity of the public |
|
scrap (date modification and type) |
|
Output: |
|
OSStatus: Function result. Memory Manager errors, Scrap Manager errors, noErr. |
|
************************************************************************************************************ |
|
*/ |
|
/* |
|
* TXNConvertFromPublicScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNConvertFromPublicScrap(void); |
|
|
|
|
|
|
|
/* |
|
************************************************************************************************************ |
|
Get the rectangle describing the current view into the document. The coordinates of this rectangle will be |
|
local to the the window. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
Output: |
|
oViewRect: the requested view rectangle. |
|
************************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNGetViewRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNGetViewRect( |
|
TXNObject iTXNObject, |
|
Rect * oViewRect); |
|
|
|
|
|
|
|
/* |
|
!! TXNSetViewRect is now deprecated for 10.2 and later. Please use TXNSetFrameBounds or TXNSetRectBounds API !! |
|
************************************************************************************************* |
|
Set the rectangle describing the current view into the document. This |
|
will change how much text is viewable. Not where a line of text wraps. |
|
That is controlled by TXNSetFrameBoundsSize. |
|
Input: |
|
iTXNObject : opaque Textension structure. |
|
|
|
iViewRect: Rect of the view |
|
|
|
|
|
************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNSetViewRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.3 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNSetViewRect( |
|
TXNObject iTXNObject, |
|
const Rect * iViewRect); |
|
|
|
|
|
|
|
/* |
|
*********************************************************************************************************** |
|
Find a piece of text or a graphics object. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iMatchTextDataPtr ptr to a MatchTextRecord which contains the text to match, the length of that text |
|
and the TextEncoding the text is encoded in. This must be there if you are looking |
|
for Text, but can be NULL if you are looking for a graphics object. |
|
iDataType The type of data to find. This can be any of the types defined in TXNDataType enum |
|
(TEXT, PICT, moov, snd ). However, if PICT, moov, or snd is passed then the default |
|
behavior is to match on any non-Text object. If you really want to find a specific |
|
type you can provide a custom find callback or ignore matches which aren't the precise |
|
type you are interested in. |
|
iStartSearchOffset The offset at which a search should begin. The constant kTXNStartOffset specifies the start |
|
of the objects data. |
|
iEndSearchOffset The offset at which the search should end. The constant kTXNEndOffset specifies the end |
|
of the objects data. |
|
iFindProc A custom callback. If will be called to match things rather than the default matching |
|
behavior. |
|
iRefCon This can be use for whatever the caller likes. It is passed to the FindProc (if a FindProc |
|
is provided. |
|
Output: |
|
oStartMatchOffset absolute offset to start of match. set to 0xFFFFFFFF if not match. |
|
oEndMatchOffset absolute offset to end of match. Set to 0xFFFFFFFF is no match. |
|
The default matching behavior is pretty simple for Text a basic binary compare is done. If the matchOptions say |
|
to ignore case the characters to be searched are duplicated and case neutralized. This naturally can fail due |
|
to lack of memory if there is a large amount of text. It also slows things down. If MatchOptions say |
|
find an entire word that once a match is found an effort is made to determine if the match is a word. The default |
|
behavior is to test the character before and after the to see if it is White space. If the kTXNUseEncodingWordRulesBit |
|
is set than the Script Manager's FindWord function is called to make this determination. |
|
If the caller is looking for a non-text type than each non-text type in the document is returned. |
|
If more elaborate ( a regular expression processor or whatever ) is what you want then that is what the FindProc is |
|
for. |
|
******************************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNFind() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNFind( |
|
TXNObject iTXNObject, |
|
const TXNMatchTextRecord * iMatchTextDataPtr, /* can be NULL */ |
|
TXNDataType iDataType, |
|
TXNMatchOptions iMatchOptions, |
|
TXNOffset iStartSearchOffset, |
|
TXNOffset iEndSearchOffset, |
|
TXNFindUPP iFindProc, |
|
SInt32 iRefCon, |
|
TXNOffset * oStartMatchOffset, |
|
TXNOffset * oEndMatchOffset); |
|
|
|
|
|
|
|
/* |
|
*************************************************************************************************************** |
|
TXNSetFontDefaults |
|
|
|
For a given TXNObject specify the font defaults for each script. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iCount: count of FontDescriptions. |
|
iFontDefaults: array of FontDescriptions. |
|
Output: |
|
OSStatus: function result ( memory error, paramErr ) |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNSetFontDefaults() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetFontDefaults( |
|
TXNObject iTXNObject, |
|
ItemCount iCount, |
|
const TXNMacOSPreferredFontDescription iFontDefaults[]); |
|
|
|
|
|
|
|
/* |
|
*************************************************************************************************************** |
|
TXNGetFontDefaults |
|
|
|
For a given TXNObject make a copy of the font defaults. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iCount: count of FontDescriptions in the array. |
|
iFontDefaults: array of FontDescriptins to be filled out. |
|
Output: |
|
OSStatus: function result ( memory error, paramErr ) |
|
To determine how many font descriptions need to be in the array you should call this function with |
|
a NULL for the array. iCount will return with the number of font defaults currently stored. |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNGetFontDefaults() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetFontDefaults( |
|
TXNObject iTXNObject, |
|
ItemCount * ioCount, |
|
TXNMacOSPreferredFontDescription ioFontDefaults[]); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************************************** |
|
TXNAttachObjectToWindow |
|
If a TXNObject was initialized with a NULL window pointer use this function to attach a window |
|
to that object. In version 1.0 of Textension attaching a TXNObject to more than one window |
|
is not supported. Note that if a CGContextRef was passed to the TXNObject previously thru the |
|
API TXNSetTXNObjectControls, that CGContextRef will be ignored. The CGContextRef associated with |
|
the iWindow will be used instead. You may revert back to the previous CGContextRef by calling the |
|
API TXNSetTXNObjectControls with the desired CGContextRef again after calling TXNAttachObjectToWindow. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iWindow: GWorldPtr that the object should be attached to |
|
iIsActualWindow: Let the library know if the GWorldPtr is actually |
|
a WindowRef or actually a GWorldPtr. This is important |
|
if the client is taking advantage of the editing packages |
|
scrollbar support. |
|
Output: |
|
OSStatus: function result. paramErrs. |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNAttachObjectToWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNAttachObjectToWindow( |
|
TXNObject iTXNObject, |
|
GWorldPtr iWindow, |
|
Boolean iIsActualWindow); |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************************************** |
|
TXNIsObjectAttachedToWindow |
|
A utility function that allows a caller to check a TXNObject to see if it is attached |
|
to a window. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
Output: |
|
Boolean: function result. True is object is attached. |
|
False if TXNObject is not attached. |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNIsObjectAttachedToWindow() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
TXNIsObjectAttachedToWindow(TXNObject iTXNObject); |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************************************** |
|
TXNDragTracker |
|
If you ask that Drag handling procs not be installed. Call this when your drag tracker is called |
|
and you want Textension to take over |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iTXNFrameID: TXNFrameID obtained from TXNNewObject |
|
iMessage: drag message obtained from Drag Manager |
|
iWindow : WindowRef obtained from Drag Manager |
|
iDragReference: dragReference obtained from Drag Manager |
|
iDifferentObjectSameWindow: Pass true if the drag is still in the same window |
|
that it started in. False if the drag has moved into |
|
a different window. |
|
Output: |
|
OSErr: function result. OSErr is used over |
|
OSStatus so that it matches the Drag Manager definition of Tracking callback |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNDragTracker() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSErr ) |
|
TXNDragTracker( |
|
TXNObject iTXNObject, |
|
TXNFrameID iTXNFrameID, |
|
DragTrackingMessage iMessage, |
|
WindowRef iWindow, |
|
DragReference iDragReference, |
|
Boolean iDifferentObjectSameWindow); |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************************************** |
|
TXNDragReceiver |
|
If you ask that Drag handling procs not be installed. Call this when your drag receiver is called |
|
and you want Textension to take over |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iTXNFrameID TXNFrameID obtained from TXNNewObject |
|
iWindow WindowRef obtained from Drag Manager |
|
iDragReference dragReference obtained from Drag Manager |
|
iDifferentObjectSameWindow: Pass true if the drag is still in the same window |
|
that it started in. False if the drag has moved into |
|
a different window. |
|
Output: |
|
OSErr: function result. OSErr is used over |
|
OSStatus so that it matches the Drag Manager definition of Tracking callback |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNDragReceiver() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSErr ) |
|
TXNDragReceiver( |
|
TXNObject iTXNObject, |
|
TXNFrameID iTXNFrameID, |
|
WindowRef iWindow, |
|
DragReference iDragReference, |
|
Boolean iDifferentObjectSameWindow); |
|
|
|
|
|
|
|
/* |
|
**************************************************************************************************************** |
|
TXNActivate |
|
Make the TXNObject object active in the sense that it can be scrolled if it has scrollbars. If the TXNScrollBarState parameter |
|
is true than the scrollbars will be active even when the TXNObject is not focused (i.e. insertion point not active) |
|
|
|
This function should be used if you have multiple TXNObjects in a window, and you want them all to be scrollable |
|
even though only one at a time can have the keyboard focus. |
|
Input: |
|
iTXNObject: opaque TXNObject obtained from TXNNewObject. |
|
iTXNFrameID TXNFrameID obtained from TXNNewObject |
|
iActiveState Boolean if true Scrollbars active even though TXNObject does not have the keyboard focus. |
|
if false scrollbars are synced with active state (i.e. a focused object has an |
|
active insertion point or selection and active scrollbars. An unfocused object has inactive |
|
selection (grayed or framed selection) and inactive scrollbars. The latter state is the |
|
default and usually the one you use if you have one TXNObject in a window. |
|
Output: |
|
OSStatus: function result. ParamErr if bad iTXNObject or frame ID. |
|
**************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNActivate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNActivate( |
|
TXNObject iTXNObject, |
|
TXNFrameID iTXNFrameID, |
|
TXNScrollBarState iActiveState); |
|
|
|
|
|
|
|
/* |
|
***************************************************************************************************************** |
|
TXNSetBackgound |
|
Set the type of background the TXNObject's text, etc. is drawn onto. At this point the background |
|
can be a color or a picture. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject obtained from IncomingDataFilter callback. |
|
iBackgroundInfo: struct containing information that describes the background |
|
Output: |
|
OSStatus: function result. paramErrs. |
|
******************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNSetBackground() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNSetBackground( |
|
TXNObject iTXNObject, |
|
const TXNBackground * iBackgroundInfo); |
|
|
|
|
|
|
|
/* |
|
***************************************************************************************************************** |
|
TXNEchoMode |
|
Put the TXNObject into echo mode. What that means is that all characters in the TXNObject have the character |
|
'echoCharacter' substituted for the actual glyph when drawing occurs. Note that the echoCharacter is typed |
|
as a UniChar, but this is done merely to facilitate passing any 2 byte character. The encoding parameter |
|
actually determines the encoding used to locate a font and display a character. Thus if you wanted to |
|
display the diamond found in the Shift-JIS encoding for MacOS you would pass in 0x86A6 for the character |
|
but an encoding that was built to represent the MacOS Japanese encoding. |
|
|
|
Input: |
|
iTXNObject: opaque TXNObject obtained from IncomingDataFilter callback. |
|
iEchoCharacter: character to use in substitution |
|
iEncoding: encoding from which character is drawn. |
|
iOn: true if turning EchoMode on. False if turning it off. |
|
Output: |
|
OSStatus: function result. paramErrs. |
|
******************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNEchoMode() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNEchoMode( |
|
TXNObject iTXNObject, |
|
UniChar iEchoCharacter, |
|
TextEncoding iEncoding, |
|
Boolean iOn); |
|
|
|
|
|
|
|
/* |
|
******************************************************************************************************************** |
|
TXNNewFontMenuObject |
|
Get a FontMenuObject. Caller can extract a fontmenu from this object and pass this object to the active |
|
TXNObject to handle events in the font menu. |
|
Input: |
|
iFontMenuHandle: An empty menu handle (well the title is there) that the caller created via |
|
NewMenu or GetNewMenu. This menu handle should not be disposed before |
|
the returned TXNFontMenuObject has been disposed via TXNDisposeFontMenuObject. |
|
iMenuID: The MenuID for iFontMenuHandle. |
|
iStartHierMenuID: The first MenuID to use if any hierarchical menus need to be created. TXNNewFontMenuObject |
|
uses SetMenuItemHierarchicalID when creating hierarchial menus. The iStartHierMenuID must |
|
therefor follow the rules for this function. On systems less than system 8.5 the submenuID |
|
must be less than 255. For systems above system 8.5 the range can be as large can be as large |
|
32767. However, it is important to remember that TXNNewFontMenuObject only uses iStartHierMenuID |
|
as a starting id when adding hierarchical menus. Therefore provide plenty of room to increment |
|
this value. For example, on a system less than 8.5 it would be good to start at 175. On systems greater |
|
than 8.5 it is probably a good idea to not use a value higher than 32000. |
|
|
|
Output: |
|
OSStatus: function result. memory, parameter errors. |
|
TXNFontMenuObject: A font menu object |
|
********************************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNNewFontMenuObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNNewFontMenuObject( |
|
MenuRef iFontMenuHandle, |
|
SInt16 iMenuID, |
|
SInt16 iStartHierMenuID, |
|
TXNFontMenuObject * oTXNFontMenuObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************************* |
|
TXNGetFontMenuHandle |
|
Get the MenuRef from the TXNFontMenuObject. |
|
Input: |
|
iTXNFontMenuObject: A Font Menu Object obtained from TXNNewFontMenuObject. |
|
Output: |
|
OSStatus: function result. parameter errors. |
|
oFontMenuHandle: The returned font menu. (returned value could be NULL) |
|
********************************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNGetFontMenuHandle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetFontMenuHandle( |
|
TXNFontMenuObject iTXNFontMenuObject, |
|
MenuRef * oFontMenuHandle); |
|
|
|
|
|
#define TXNGetFontMenuRef TXNGetFontMenuHandle |
|
|
|
/* |
|
********************************************************************************************************************* |
|
TXNDisposeFontMenuObject |
|
Dispose a TXNFontMenuObject and its font menu handle |
|
Input: |
|
iTXNFontMenuObject: A Font Menu Object obtained from TXNNewFontMenuObject. |
|
Output: |
|
OSStatus: function result. parameter errors. |
|
********************************************************************************************************************* |
|
*/ |
|
/* |
|
* TXNDisposeFontMenuObject() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNDisposeFontMenuObject(TXNFontMenuObject iTXNFontMenuObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************************* |
|
TXNDoFontMenuSelection |
|
Given the menuID and menu item returned by MenuSelect determine the selected font |
|
and change the current selection to be that Font. If the input TXNObject is |
|
not active a parameter error is returned. |
|
Input: |
|
iTXNObject: An opaque TXNObject obtained from TXNNewObject. |
|
iTXNFontMenuObject: A Font Menu Object obtained from TXNNewFontMenuObject. |
|
iMenuID: SInt16 the ID of the selected menu. |
|
iMenuItem: The item that was selected. |
|
Output: |
|
OSStatus: ParamErr and memory errors are possible. |
|
********************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNDoFontMenuSelection() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNDoFontMenuSelection( |
|
TXNObject iTXNObject, |
|
TXNFontMenuObject iTXNFontMenuObject, |
|
SInt16 iMenuID, |
|
SInt16 iMenuItem); |
|
|
|
|
|
|
|
/* |
|
* TXNPrepareFontMenu() |
|
* |
|
* Summary: |
|
* Prepares a Font menu for display. |
|
* |
|
* Discussion: |
|
* You should call the TXNPrepareFontMenu function just before your |
|
* application opens the Font menu for your user. If the text |
|
* object's current selection is a single font, MLTE places a |
|
* checkmark next to the menu item for that font. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* The text object that identifies the document with the Font menu |
|
* you want to prepare. Pass NULL to display an inactive menu |
|
* (dimmed). |
|
* |
|
* iTXNFontMenuObject: |
|
* A Font menu object. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNPrepareFontMenu( |
|
TXNObject iTXNObject, /* can be NULL */ |
|
TXNFontMenuObject iTXNFontMenuObject); |
|
|
|
|
|
|
|
/* |
|
********************************************************************************************************************** |
|
TXNVersionValue |
|
Get the version number and a set of feature bits. TXNVersionValue uses a NumVersion structure. |
|
See MacTypes.h for the format of the version. Currently there are two feature bits: one for |
|
ATSUI default, another one for CarbonEvent default. |
|
Input: |
|
NONE |
|
|
|
Output: |
|
TXNVersionValue: Current version. |
|
TXNFeatureBits*: Pointer to a bit mask. See TXNFeatureMask enum above. If kTXNWillDefaultToATSUIBit |
|
is set it means that by default MLTE will use ATSUI to image and measure text and will |
|
default to using Unicode to store characters. If kTXNWillDefaultToCarbonEventBit is set, |
|
then MLTE will use carbon events by default and apple event will not be supported. |
|
********************************************************************************************************************** |
|
*/ |
|
/* |
|
* TXNVersionInformation() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.0 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( TXNVersionValue ) |
|
TXNVersionInformation(TXNFeatureBits * oFeatureFlags); |
|
|
|
|
|
|
|
/* |
|
* TXNIsObjectAttachedToSpecificWindow() |
|
* |
|
* Summary: |
|
* Determines whether the given object is attached to the given |
|
* window. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* iWindow: |
|
* The window to check attachment against. |
|
* |
|
* oAttached: |
|
* true if the object is attached to the given window, false |
|
* otherwise. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension 1.2 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNIsObjectAttachedToSpecificWindow( |
|
TXNObject iTXNObject, |
|
WindowRef iWindow, |
|
Boolean * oAttached); |
|
|
|
|
|
/* |
|
* TXNSetRectBounds() |
|
* |
|
* Summary: |
|
* Set the View rectangle and or the Destination rectangle. |
|
* |
|
* Discussion: |
|
* The View rectangle controls the text you see. The Destination |
|
* rectangle controls how text is laid out. The Scrollbar is drawn |
|
* inside the View rectangle. You only need to pass in pointers for |
|
* the rectangles you want to set. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* iViewRect: |
|
* The new view rectangle. If you do not want to change the view |
|
* rectangle pass NULL. |
|
* |
|
* iDestinationRect: |
|
* The new destination rectangle. Pass NULL if you don't want to |
|
* change the destination retangle. |
|
* |
|
* iUpdate: |
|
* If you would like the the text and where the scrollbars are |
|
* placed recalculated and redrawn pass true. If you prefer to |
|
* wait on this pass false. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNSetRectBounds( |
|
TXNObject iTXNObject, |
|
const Rect * iViewRect, /* can be NULL */ |
|
const TXNLongRect * iDestinationRect, /* can be NULL */ |
|
Boolean iUpdate); |
|
|
|
|
|
/* |
|
* TXNGetRectBounds() |
|
* |
|
* Summary: |
|
* Get the values for the current View rectangle, Destination |
|
* rectangle and Text rectangle. |
|
* |
|
* Discussion: |
|
* You only need to pass in pointers for the rectangles you're |
|
* interested in. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* oViewRect: |
|
* The current view rectangle |
|
* |
|
* oDestinationRect: |
|
* The current destination rectangle |
|
* |
|
* oTextRect: |
|
* The smallest rectangle needed to contain the current text. |
|
* This rectangle is calculated by walking the lines of text and |
|
* measuring each line. So this can be expensive. The width of |
|
* this rectangle will be the width of the longest line in the |
|
* text. |
|
* |
|
* Result: |
|
* An operating system status code. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNGetRectBounds( |
|
TXNObject iTXNObject, |
|
Rect * oViewRect, /* can be NULL */ |
|
TXNLongRect * oDestinationRect, /* can be NULL */ |
|
TXNLongRect * oTextRect); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* TXNRecalcTextLayout() |
|
* |
|
* Summary: |
|
* Recalculates the text layout based on the new View and |
|
* Destination rectangles. |
|
* |
|
* Discussion: |
|
* Call this if you called TXNSetRectBounds with the iUpdate |
|
* parameter set to false. It will also recalcuate where the |
|
* scrollbars, if any, should be placed. Finally an update event |
|
* will be generated so that the TXNObject is redrawn. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNRecalcTextLayout(TXNObject iTXNObject); |
|
|
|
|
|
|
|
|
|
/* |
|
* TXNScroll() |
|
* |
|
* Discussion: |
|
* TXNScroll scrolls the text within a view rectangle of the |
|
* specified object by the designated number of units. For example, |
|
* you might want to scroll the text in an object in response to |
|
* user input in a control other than the standard scrollbars that |
|
* MLTE supplies. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* iVerticalScrollUnit: |
|
* Specifies what units the values in ioVerticalDelta are in. If |
|
* iVerticalScrollUnit is equal to kTXNScrollUnitsArePixels the |
|
* value is treated as pixels. If the value is |
|
* kTXNScrollUnitsAreLines the value is treated as a count of |
|
* lines. Note that using this value is the slowest because each |
|
* line must be measured before it scrolls. Finally if |
|
* kTXNScrollUnitsAreViewRects the value is treated as the height |
|
* of the current viewRect. |
|
* |
|
* iHorizontalScrollUnit: |
|
* Specifies what units the values in iDh are in. If |
|
* iHorizontalScrollUnit is equal to kTXNScrollUnitsArePixels the |
|
* value is treated as pixels. If the value is |
|
* kTXNScrollUnitsAreLines the value is treated as a count of |
|
* lines. Note that using this value for horizontal scrolling |
|
* means that 16 pixels will be used to represent a line. Finally |
|
* if kTXNScrollUnitsAreViewRects the value is treated as the |
|
* width of the current viewRect. |
|
* |
|
* ioVerticalDelta: |
|
* The vertical amount to scroll. The values in ioVerticalDelta |
|
* can be treated as pixels, lines or viewrects. See the |
|
* discussion of the TXNScrollUnit parameters for more information |
|
* for this. On return this will contain the number of pixels |
|
* actually scrolled in the vertical direction. A positive value |
|
* moves the text down. |
|
* |
|
* ioHorizontalDelta: |
|
* The horizontal amount to scroll. The values in |
|
* ioHorizontalDelta can specify a scroll amount that is pixels, |
|
* lines or view rects. Set TXNScrollUnit discussion for more |
|
* information. On return this will contain the number of pixels |
|
* actually scrolled in the horizontal direction. A positive value |
|
* moves the text to the right. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension not yet available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNScroll( |
|
TXNObject iTXNObject, |
|
TXNScrollUnit iVerticalScrollUnit, |
|
TXNScrollUnit iHorizontalScrollUnit, |
|
SInt32 * ioVerticalDelta, |
|
SInt32 * ioHorizontalDelta); |
|
|
|
|
|
|
|
/* |
|
* TXNRegisterScrollInfoProc() |
|
* |
|
* Discussion: |
|
* If your application is drawing and handling its own scrolling |
|
* widgets use this function to register a TXNScrollInfoUPP. If you |
|
* register a TXNScrollInfoUPP it will be called every time MLTE |
|
* would normally update the values and maximum values of an MLTE |
|
* scrollbar. For example when the user types the return key to add |
|
* a new line at the end of their text MLTE will calculate a new |
|
* maximum value. If you have registered a TXNScrollInfoUPP it will |
|
* be called with this nex maximum value. To turn off the callbacks |
|
* call TXNRegisterScrollInfoProc with a value of NULL for the |
|
* iTXNScrollInfoUPP. |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* iTXNScrollInfoUPP: |
|
* A universal procedure pointer. |
|
* |
|
* iRefCon: |
|
* A refcon that is passed to the callback. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension not yet available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
TXNRegisterScrollInfoProc( |
|
TXNObject iTXNObject, |
|
TXNScrollInfoUPP iTXNScrollInfoUPP, |
|
SInt32 iRefCon); |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
* TXNClearUndo() |
|
* |
|
* Summary: |
|
* Purge the undo stack |
|
* |
|
* Parameters: |
|
* |
|
* iTXNObject: |
|
* Opaque TXNObject obtained from TXNNewObject. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in Textension not yet available |
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
TXNClearUndo(TXNObject iTXNObject); |
|
|
|
|
|
|
|
#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 /* __MACTEXTEDITOR__ */ |
|
|
|
|