2010-03-08 04:55:21 -06:00
|
|
|
/* Rich Hypertext object for libWWW
|
|
|
|
RICH HYPERTEXT OBJECT
|
2013-03-09 18:59:42 -06:00
|
|
|
|
2010-03-08 04:55:21 -06:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
This is the C interface to the Objective-C (or whatever) HyperText class.
|
2013-03-09 18:59:42 -06:00
|
|
|
|
2010-03-08 04:55:21 -06:00
|
|
|
*/
|
|
|
|
#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 */
|