/* $XConsortium: Editor.h /main/3 1995/10/26 09:32:07 rswiston $ */
/*
* (c) Copyright 1993, 1994 Hewlett-Packard Company
* (c) Copyright 1993, 1994 International Business Machines Corp.
* (c) Copyright 1993, 1994 Sun Microsystems, Inc.
* (c) Copyright 1993, 1994 Novell, Inc.
*/
#ifndef _Dt_Editor_h
#define _Dt_Editor_h
#include <Xm/Xm.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Constants
*/
/* Sources of Help requests */
/* Used with XmNhelpCallback */
#define DtEDITOR_HELP_EDIT_WINDOW 1
#define DtEDITOR_HELP_STATUS_LINE 2
#define DtEDITOR_HELP_STATUS_CURRENT_LINE 3
#define DtEDITOR_HELP_STATUS_TOTAL_LINES 4
#define DtEDITOR_HELP_STATUS_MESSAGE 5
#define DtEDITOR_HELP_STATUS_OVERSTRIKE 6
#define DtEDITOR_HELP_FORMAT_DIALOG 7
#define DtEDITOR_HELP_FORMAT_LEFT_MARGIN 8
#define DtEDITOR_HELP_FORMAT_RIGHT_MARGIN 9
#define DtEDITOR_HELP_FORMAT_ALIGNMENT 10
#define DtEDITOR_HELP_CHANGE_DIALOG 11
#define DtEDITOR_HELP_CHANGE_FIND 12
#define DtEDITOR_HELP_CHANGE_CHANGE 13
#define DtEDITOR_HELP_SPELL_DIALOG 14
#define DtEDITOR_HELP_SPELL_MISSPELLED_WORDS 15
#define DtEDITOR_HELP_SPELL_CHANGE 16
/* Specifies the last line in the edit area */
/* Used with DtEditorGoToLine */
#define DtEDITOR_LAST_LINE -999
/* Resource constants */
#ifndef DtNautoShowCursorPosition
#define DtNautoShowCursorPosition XmNautoShowCursorPosition
#endif
#ifndef DtCAutoShowCursorPosition
#define DtCAutoShowCursorPosition XmCAutoShowCursorPosition
#endif
#ifndef DtNblinkRate
#define DtNblinkRate XmNblinkRate
#endif
#ifndef DtCBlinkRate
#define DtCBlinkRate XmCBlinkRate
#endif
#ifndef DtNbuttonFontList
#define DtNbuttonFontList XmNbuttonFontList
#endif
#ifndef DtCFontList
#define DtCFontList XmCFontList
#endif
#ifndef DtNcenterToggleLabel
#define DtNcenterToggleLabel "centerToggleLabel"
#endif
#ifndef DtCCenterToggleLabel
#define DtCCenterToggleLabel "CenterToggleLabel"
#endif
#ifndef DtNchangeAllButtonLabel
#define DtNchangeAllButtonLabel "changeAllButtonLabel"
#endif
#ifndef DtCChangeAllButtonLabel
#define DtCChangeAllButtonLabel "ChangeAllButtonLabel"
#endif
#ifndef DtNchangeButtonLabel
#define DtNchangeButtonLabel "changeButtonLabel"
#endif
#ifndef DtCChangeButtonLabel
#define DtCChangeButtonLabel "ChangeButtonLabel"
#endif
#ifndef DtNchangeFieldLabel
#define DtNchangeFieldLabel "changeFieldLabel"
#endif
#ifndef DtCChangeFieldLabel
#define DtCChangeFieldLabel "ChangeFieldLabel"
#endif
#ifndef DtNcolumns
#define DtNcolumns XmNcolumns
#endif
#ifndef DtCColumns
#define DtCColumns XmCColumns
#endif
#ifndef DtNcurrentLineLabel
#define DtNcurrentLineLabel "currentLineLabel"
#endif
#ifndef DtCCurrentLineLabel
#define DtCCurrentLineLabel "CurrentLineLabel"
#endif
#ifndef DtNcursorPosition
#define DtNcursorPosition XmNcursorPosition
#endif
#ifndef DtCCursorPosition
#define DtCCursorPosition XmCCursorPosition
#endif
#ifndef DtNcursorPositionVisible
#define DtNcursorPositionVisible XmNcursorPositionVisible
#endif
#ifndef DtCCursorPositionVisible
#define DtCCursorPositionVisible XmCCursorPositionVisible
#endif
#ifndef DtNdialogTitle
#define DtNdialogTitle "dialogTitle"
#endif
#ifndef DtCDialogTitle
#define DtCDialogTitle XmCDialogTitle
#endif
#ifndef DtNeditable
#define DtNeditable XmNeditable
#endif
#ifndef DtCEditable
#define DtCEditable XmCEditable
#endif
#ifndef DtNfindButtonLabel
#define DtNfindButtonLabel "findButtonLabel"
#endif
#ifndef DtCFindButtonLabel
#define DtCFindButtonLabel "FindButtonLabel"
#endif
#ifndef DtNfindChangeDialogTitle
#define DtNfindChangeDialogTitle "findChangeDialogTitle"
#endif
#ifndef DtCFindChangeDialogTitle
#define DtCFindChangeDialogTitle "FindChangeDialogTitle"
#endif
#ifndef DtNfindFieldLabel
#define DtNfindFieldLabel "findFieldLabel"
#endif
#ifndef DtCFindFieldLabel
#define DtCFindFieldLabel "FindFieldLabel"
#endif
#ifndef DtNformatAllButtonLabel
#define DtNformatAllButtonLabel "formatAllButtonLabel"
#endif
#ifndef DtCFormatAllButtonLabel
#define DtCFormatAllButtonLabel "FormatAllButtonLabel"
#endif
#ifndef DtNformatParagraphButtonLabel
#define DtNformatParagraphButtonLabel "formatParagraphButtonLabel"
#endif
#ifndef DtCFormatParagraphButtonLabel
#define DtCFormatParagraphButtonLabel "FormatParagraphButtonLabel"
#endif
#ifndef DtNformatSettingsDialogTitle
#define DtNformatSettingsDialogTitle "formatSettingsDialogTitle"
#endif
#ifndef DtCFormatSettingsDialogTitle
#define DtCFormatSettingsDialogTitle "FormatSettingsDialogTitle"
#endif
#ifndef DtNinformationDialogTitle
#define DtNinformationDialogTitle "informationDialogTitle"
#endif
#ifndef DtCInformationDialogTitle
#define DtCInformationDialogTitle "InformationDialogTitle"
#endif
#ifndef DtNinsertLabel
#define DtNinsertLabel "insertLabel"
#endif
#ifndef DtCInsertLabel
#define DtCInsertLabel "InsertLabel"
#endif
#ifndef DtNjustifyToggleLabel
#define DtNjustifyToggleLabel "justifyToggleLabel"
#endif
#ifndef DtCJustifyToggleLabel
#define DtCJustifyToggleLabel "JustifyToggleLabel"
#endif
#ifndef DtNlabelFontList
#define DtNlabelFontList XmNlabelFontList
#endif
#ifndef DtNleftAlignToggleLabel
#define DtNleftAlignToggleLabel "leftAlignToggleLabel"
#endif
#ifndef DtCLeftAlignToggleLabel
#define DtCLeftAlignToggleLabel "LeftAlignToggleLabel"
#endif
#ifndef DtNleftMarginFieldLabel
#define DtNleftMarginFieldLabel "leftMarginFieldLabel"
#endif
#ifndef DtCLeftMarginFieldLabel
#define DtCLeftMarginFieldLabel "LeftMarginFieldLabel"
#endif
#ifndef DtNmaxLength
#define DtNmaxLength XmNmaxLength
#endif
#ifndef DtCMaxLength
#define DtCMaxLength XmCMaxLength
#endif
#ifndef DtNmisspelledListLabel
#define DtNmisspelledListLabel "misspelledListLabel"
#endif
#ifndef DtCMisspelledListLabel
#define DtCMisspelledListLabel "MisspelledListLabel"
#endif
#ifndef DtNoverstrike
#define DtNoverstrike "overstrike"
#endif
#ifndef DtCOverstrike
#define DtCOverstrike "Overstrike"
#endif
#ifndef DtNoverstrikeLabel
#define DtNoverstrikeLabel "overstrikeLabel"
#endif
#ifndef DtCOverstrikeLabel
#define DtCOverstrikeLabel "OverstrikeLabel"
#endif
#ifndef DtNrightAlignToggleLabel
#define DtNrightAlignToggleLabel "rightAlignToggleLabel"
#endif
#ifndef DtCRightAlignToggleLabel
#define DtCRightAlignToggleLabel "RightAlignToggleLabel"
#endif
#ifndef DtNrightMarginFieldLabel
#define DtNrightMarginFieldLabel "rightMarginFieldLabel"
#endif
#ifndef DtCRightMarginFieldLabel
#define DtCRightMarginFieldLabel "RightMarginFieldLabel"
#endif
#ifndef DtNrows
#define DtNrows XmNrows
#endif
#ifndef DtCRows
#define DtCRows XmCRows
#endif
#ifndef DtNscrollHorizontal
#define DtNscrollHorizontal XmNscrollHorizontal
#endif
#ifndef DtCScroll
#define DtCScroll XmCScroll
#endif
#ifndef DtNscrollLeftSide
#define DtNscrollLeftSide XmNscrollLeftSide
#endif
#ifndef DtCScrollSide
#define DtCScrollSide XmCScrollSide
#endif
#ifndef DtNscrollTopSide
#define DtNscrollTopSide XmNscrollTopSide
#endif
#ifndef DtNscrollVertical
#define DtNscrollVertical XmNscrollVertical
#endif
#ifndef DtNshowStatusLine
#define DtNshowStatusLine "showStatusLine"
#endif
#ifndef DtCShowStatusLine
#define DtCShowStatusLine "ShowStatusLine"
#endif
#ifndef DtNspellDialogTitle
#define DtNspellDialogTitle "spellDialogTitle"
#endif
#ifndef DtCSpellDialogTitle
#define DtCSpellDialogTitle "SpellDialogTitle"
#endif
#ifndef DtNspellFilter
#define DtNspellFilter "spellFilter"
#endif
#ifndef DtCSpellFilter
#define DtCSpellFilter "SpellFilter"
#endif
#ifndef DtNtextBackground
#define DtNtextBackground "textBackground"
#endif
#ifndef DtCBackground
#define DtCBackground XmCBackground
#endif
#ifndef DtNtextDeselectCallback
#define DtNtextDeselectCallback "textDeselectCallback"
#endif
#ifndef DtNtextFontList
#define DtNtextFontList XmNtextFontList
#endif
#ifndef DtNtextForeground
#define DtNtextForeground "textForeground"
#endif
#ifndef DtCForeground
#define DtCForeground XmCForeground
#endif
#ifndef DtNtextSelectCallback
#define DtNtextSelectCallback "textSelectCallback"
#endif
#ifndef DtNtextTranslations
#define DtNtextTranslations XmNtextTranslations
#endif
#ifndef DtCTranslations
#define DtCTranslations XmCTranslations
#endif
#ifndef DtCCallback
#define DtCCallback XmCCallback
#endif
#ifndef DtNtopCharacter
#define DtNtopCharacter XmNtopCharacter
#endif
#ifndef DtCTopCharacter
#define DtCTopCharacter XmCTopCharacter
#endif
#ifndef DtNtotalLineCountLabel
#define DtNtotalLineCountLabel "totalLineCountLabel"
#endif
#ifndef DtCTotalLineCountLabel
#define DtCTotalLineCountLabel "TotalLineCountLabel"
#endif
#ifndef DtNwordWrap
#define DtNwordWrap XmNwordWrap
#endif
#ifndef DtCWordWrap
#define DtCWordWrap XmCWordWrap
#endif
#ifndef DtEditorHelpCallbackStruct
#define DtEditorHelpCallbackStruct XmAnyCallbackStruct
#endif
#ifndef DtEditorSelectCallbackStruct
#define DtEditorSelectCallbackStruct XmAnyCallbackStruct
#endif
#ifndef DtEditorDeselectCallbackStruct
#define DtEditorDeselectCallbackStruct XmAnyCallbackStruct
#endif
/* Used with DtEditorChange() */
enum {
DtEDITOR_CURRENT_SELECTION,
DtEDITOR_NEXT_OCCURRENCE,
DtEDITOR_ALL_OCCURRENCES
};
/* Used with DtEditorFormat() */
enum {
DtEDITOR_FORMAT_ALL,
DtEDITOR_FORMAT_PARAGRAPH
};
enum {
DtEDITOR_ALIGN_CENTER,
DtEDITOR_ALIGN_JUSTIFY,
DtEDITOR_ALIGN_LEFT,
DtEDITOR_ALIGN_RIGHT
};
/* Used with DtNtextSelectCallback */
enum {
DtEDITOR_TEXT_SELECT,
DtEDITOR_TEXT_DESELECT
};
/*
* Types
*/
typedef enum _DtEditorErrorCode{
DtEDITOR_NO_ERRORS,
DtEDITOR_INVALID_TYPE,
DtEDITOR_INVALID_RANGE,
DtEDITOR_NULL_ITEM,
DtEDITOR_ILLEGAL_SIZE,
DtEDITOR_SPELL_FILTER_FAILED,
DtEDITOR_NO_TMP_FILE,
DtEDITOR_INVALID_FILENAME,
DtEDITOR_NONEXISTENT_FILE,
DtEDITOR_UNREADABLE_FILE,
DtEDITOR_READ_ONLY_FILE,
DtEDITOR_NO_FILE_ACCESS,
DtEDITOR_DIRECTORY,
DtEDITOR_CHAR_SPECIAL_FILE,
DtEDITOR_BLOCK_MODE_FILE,
DtEDITOR_UNWRITABLE_FILE,
DtEDITOR_WRITABLE_FILE,
DtEDITOR_SAVE_FAILED,
DtEDITOR_INSUFFICIENT_MEMORY,
DtEDITOR_NULLS_REMOVED
} DtEditorErrorCode;
/* Used with DtEditorChange() to specify Find and Change To strings */
typedef struct _DtEditorChangeValues {
char *find;
char *changeTo;
} DtEditorChangeValues;
/* Used with DtEditorFormat() to specify left margin, right margin *
* and justification styles. */
typedef struct _DtEditorFormatSettings {
int leftMargin;
int rightMargin;
unsigned int alignment;
} DtEditorFormatSettings;
/* Types used to tag data to/from the editor widget */
typedef enum _DtEditorDataFormat{
DtEDITOR_TEXT,
DtEDITOR_WCHAR,
DtEDITOR_DATA
} DtEditorDataFormat;
/* Types used to pass data to/from the editor widget */
typedef struct _DtEditor_DataObj {
unsigned int length;
void *buf;
} DtEditor_DataObj;
typedef struct _DtEditorContentRec {
DtEditorDataFormat type;
union {
char *string;
wchar_t *wchar;
DtEditor_DataObj data;
} value;
} DtEditorContentRec;
/* Widget class and instance */
typedef struct _DtEditorClassRec *DtEditorClass;
typedef struct _DtEditorRec *DtEditorWidget;
/*
* Data
*/
/* Widget class */
externalref WidgetClass dtEditorWidgetClass;
/*
* Functions
*/
extern Widget DtCreateEditor(
Widget parent,
char *name,
ArgList arglist,
Cardinal argcount);
extern DtEditorErrorCode DtEditorAppend(
Widget widget,
DtEditorContentRec *data);
extern DtEditorErrorCode DtEditorAppendFromFile(
Widget widget,
char *fileName);
extern Boolean DtEditorChange(
Widget widget,
DtEditorChangeValues *findChangeStrings,
unsigned int instanceToChange);
extern Boolean DtEditorCheckForUnsavedChanges(
Widget widget);
extern Boolean DtEditorClearSelection(
Widget widget);
extern Boolean DtEditorCopyToClipboard(
Widget widget);
extern Boolean DtEditorCutToClipboard(
Widget widget);
extern Boolean DtEditorDeleteSelection(
Widget widget);
extern Boolean DtEditorDeselect(
Widget widget);
extern void DtEditorDisableRedisplay(
Widget widget);
extern void DtEditorEnableRedisplay(
Widget widget);
extern Boolean DtEditorFind(
Widget widget,
char * find);
extern DtEditorErrorCode DtEditorFormat(
Widget widget,
DtEditorFormatSettings *formatSettings,
unsigned int amountToFormat);
extern DtEditorErrorCode DtEditorGetContents(
Widget widget,
DtEditorContentRec *data,
Boolean hardCarriageReturns,
Boolean markContentsAsSaved);
extern XmTextPosition DtEditorGetInsertionPosition(
Widget widget);
extern XmTextPosition DtEditorGetLastPosition(
Widget widget);
extern Widget DtEditorGetMessageTextFieldID(
Widget widget);
extern void DtEditorGetSizeHints(
Widget widget,
XSizeHints *pHints);
extern void DtEditorGoToLine(
Widget widget,
int lineNumber);
extern DtEditorErrorCode DtEditorInsert(
Widget widget,
DtEditorContentRec *data);
extern DtEditorErrorCode DtEditorInsertFromFile(
Widget widget,
char *fileName);
extern void DtEditorInvokeFindChangeDialog(
Widget widget);
extern void DtEditorInvokeFormatDialog(
Widget widget);
extern DtEditorErrorCode DtEditorInvokeSpellDialog(
Widget widget);
extern Boolean DtEditorPasteFromClipboard(
Widget widget);
extern DtEditorErrorCode DtEditorReplace(
Widget widget,
XmTextPosition startPos,
XmTextPosition endPos,
DtEditorContentRec *data);
extern DtEditorErrorCode DtEditorReplaceFromFile(
Widget widget,
XmTextPosition startPos,
XmTextPosition endPos,
char *fileName);
extern void DtEditorReset(
Widget widget);
extern DtEditorErrorCode DtEditorSaveContentsToFile(
Widget widget,
char *fileName,
Boolean overwriteIfExists,
Boolean hardCarriageReturns,
Boolean markContentsAsSaved);
extern Boolean DtEditorSelectAll(
Widget widget);
extern DtEditorErrorCode DtEditorSetContents(
Widget widget,
DtEditorContentRec *data);
extern DtEditorErrorCode DtEditorSetContentsFromFile(
Widget widget,
char *fileName);
extern void DtEditorSetInsertionPosition(
Widget widget,
XmTextPosition position);
extern void DtEditorTraverseToEditor(
Widget widget);
extern Boolean DtEditorUndoEdit(
Widget widget);
#ifdef __cplusplus
}
#endif
#endif /* _Dt_Editor_h */