/*
* $XConsortium: AsciiSrc.h,v 1.5 89/10/05 13:17:30 kit Exp $
*
* Copyright 1989 Massachusetts Institute of Technology
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of M.I.T. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. M.I.T. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
*/
/*
* AsciiSrc.h - Public Header file for Ascii Text Source.
*
* This is the public header file for the Ascii Text Source.
* It is intended to be used with the Text widget, the simplest way to use
* this text source is to use the AsciiText Object.
*
* Date: June 29, 1989
*
* By: Chris D. Peterson
* MIT X Consortium
* kit@expo.lcs.mit.edu
*/
#ifndef _XawAsciiSrc_h
#define _XawAsciiSrc_h
#include <./Xaw3_1TextSrc.h>
/* Resources:
Name Class RepType Default Value
---- ----- ------- -------------
*/
/* Class record constants */
extern WidgetClass asciiSrcObjectClass;
typedef struct _AsciiSrcClassRec *AsciiSrcObjectClass;
typedef struct _AsciiSrcRec *AsciiSrcObject;
/*
* Just to make people's lives a bit easier.
*/
#define AsciiSourceObjectClass AsciiSrcObjectClass
#define AsciiSourceObject AsciiSrcObject
/*
* Resource Definitions.
*/
#define XtCDataCompression "DataCompression"
#define XtCPieceSize "PieceSize"
#define XtCType "Type"
#define XtCUseStringInPlace "UseStringInPlace"
#define XtNdataCompression "dataCompression"
#define XtNpieceSize "pieceSize"
#define XtNtype "type"
#define XtNuseStringInPlace "useStringInPlace"
#define XtRAsciiType "AsciiType"
#define XtEstring "string"
#define XtEfile "file"
typedef enum {XawAsciiFile, XawAsciiString} XawAsciiType;
/************************************************************
*
* Public routines
*
************************************************************/
/* Function Name: XawAsciiSourceFreeString
* Description: Frees the string returned by a get values call
* on the string when the source is of type string.
* Arguments: w - the AsciiSrc object.
* Returns: none.
*/
void XawAsciiSourceFreeString(/* w */);
/*
Widget w;
*/
/* Function Name: XawAsciiSave
* Description: Saves all the pieces into a file or string as required.
* Arguments: w - the asciiSrc Object.
* Returns: TRUE if the save was successful.
*/
Boolean XawAsciiSave(/* w */);
/*
Widget w;
*/
/* Function Name: XawAsciiSaveAsFile
* Description: Save the current buffer as a file.
* Arguments: w - the asciiSrc object.
* name - name of the file to save this file into.
* Returns: True if the save was sucessful.
*/
Boolean XawAsciiSaveAsFile(/* w, name */);
/*
Widget w;
String name;
*/
/* Function Name: XawAsciiSourceChanged
* Description: Returns true if the source has changed since last saved.
* Arguments: w - the asciiSource object.
* Returns: a Boolean (see description).
*/
Boolean XawAsciiSourceChanged(/* w */);
/*
Widget w;
*/
#ifdef XAW_BC
/*************************************************************
*
* These functions are only preserved for compatability.
*/
#define ASCII_STRING /* Turn on R3 AsciiDisk and AsciiString */
#define ASCII_DISK /* Emulation modes. */
#ifdef ASCII_STRING
#define XawStringSourceDestroy XtDestroyWidget
#endif
#ifdef ASCII_DISK
#define XawDiskSourceDestroy XtDestroyWidget
#endif
#ifdef ASCII_STRING
/* Function Name: AsciiStringSourceCreate
* Description: Creates a string source.
* Arguments: parent - the widget that will own this source.
* args, num_args - the argument list.
* Returns: a pointer to the new text source.
*/
Widget XawStringSourceCreate(/* parent, args, num_args */);
/*
Widget parent;
ArgList args;
Cardinal num_args;
*/
#endif /* ASCII_STRING */
#ifdef ASCII_DISK
/* Function Name: AsciiDiskSourceCreate
* Description: Creates a disk source.
* Arguments: parent - the widget that will own this source.
* args, num_args - the argument list.
* Returns: a pointer to the new text source.
*/
Widget XawDiskSourceCreate(/* parent, args, num_args */);
/*
Widget parent;
ArgList args;
Cardinal num_args;
*/
#endif /* ASCII_DISK */
#endif /* XAW_BC */
/*
* End of Compatability stuff.
*
***************************************************/
#endif /* _XawAsciiSrc_h - Don't add anything after this line. */