This repository has been archived on 2024-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
ncsa-mosaic/libwww2/HText.h

122 lines
3.6 KiB
C++

/* Rich Hypertext object for libWWW
RICH HYPERTEXT OBJECT
*/
/*
This is the C interface to the Objective-C (or whatever) HyperText class.
*/
#ifndef HTEXT_H
#define HTEXT_H
#include "HTAnchor.h"
#include "HTStream.h"
#ifdef SHORT_NAMES
#define HTMainText HTMaText
#define HText_new HTHTNew
#define HText_free HTHTFree
#define HText_beginAppend HTHTBeAp
#define HText_endAppend HTHTEnAp
#define HText_appendCharacter HTHTApCh
#define HText_appendText HTHTApTe
#define HText_appendParagraph HTHTApPa
#define HText_beginAnchor HTHTBeAn
#define HText_endAnchor HTHTEnAn
#define HText_dump HTHTDump
#define HText_nodeAnchor HTHTNoAn
#define HText_select HTHTSele
#define HText_selectAnchor HTHTSeAn
#define HText_replaceSel HTHTRepl
#define HText_applyToSimilar HTHTApTo
#define HText_unlinkSelection HTHTUnSe
#define HText_linkSelTo HTHTLiSe
#define HText_referenceSelected HTHTRefS
#endif
#ifndef THINK_C
#ifndef HyperText /* Objective C version defined HyperText */
typedef struct _HText HText; /* Normal Library */
#endif
#else
class CHyperText; /* Mac Think-C browser hook */
typedef CHyperText HText;
#endif
extern HText * HTMainText; /* Pointer to current main text */
/* Creation and deletion
**
** Create hypertext object HText_new
*/
extern HText * HText_new PARAMS(());
/* Free hypertext object HText_free
*/
extern void HText_free PARAMS((HText * me));
/* Object Building methods
** -----------------------
**
** These are used by a parser to build the text in an object
** HText_beginAppend must be called, then any combination of other
** append calls, then HText_endAppend. This allows optimised
** handling using buffers and caches which are flushed at the end.
*/
extern void HText_beginAppend PARAMS((HText * text));
extern void HText_endAppend PARAMS((HText * text));
extern void HText_doAbort PARAMS((HText * text));
extern void HText_clearOutForNewContents PARAMS((HText * text));
/* Add one character
*/
extern void HText_appendCharacter PARAMS((HText * text, char ch));
/* Add a zero-terminated string
*/
extern void HText_appendText PARAMS((HText * text, WWW_CONST char * str));
/* Add a block.
*/
extern void HText_appendBlock PARAMS((HText * text, WWW_CONST char * str, int len));
/* New Paragraph
*/
extern void HText_appendParagraph PARAMS((HText * text));
/* Start/end sensitive text
**
** The anchor object is created and passed to HText_beginAnchor.
** The senstive text is added to the text object, and then HText_endAnchor
** is called. Anchors may not be nested.
*/
extern void HText_beginAnchor PARAMS((HText * text, char * anc));
extern void HText_endAnchor PARAMS((HText * text));
/* Dump diagnostics to stderr
*/
extern void HText_dump PARAMS((HText * me));
extern char *HText_getText (HText *me);
extern int HText_getTextLength (HText *me);
extern char **HText_getPtrToText (HText *me);
/* Browsing functions
** ------------------
*/
/* Bring to front and highlight it
*/
extern BOOL HText_select PARAMS((HText * text));
#endif /* HTEXT_H */
/*
end */