about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HText.h
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/HText.h')
-rw-r--r--WWW/Library/Implementation/HText.h262
1 files changed, 262 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HText.h b/WWW/Library/Implementation/HText.h
new file mode 100644
index 00000000..7b65751a
--- /dev/null
+++ b/WWW/Library/Implementation/HText.h
@@ -0,0 +1,262 @@
+/*                                                           Rich Hypertext object for libWWW
+                                  RICH HYPERTEXT OBJECT
+                                             
+ */
+
+/*
+
+   This is the C interface to the Objective-C (or whatever) Style-oriented HyperText
+   class. It is used when a style-oriented text object is available or craeted in order to
+   display hypertext.
+   
+ */
+#ifndef HTEXT_H
+#define HTEXT_H
+#include "HTAnchor.h"
+#include "HTStyle.h"
+#include "HTStream.h"
+#include "SGML.h"
+
+#ifdef SHORT_NAMES
+#define HTMainText                      HTMaText
+#define HTMainAnchor                    HtMaAnch
+#define HText_new                       HTHTNew
+#define HText_new2                      HTHTNew2
+#define HText_free                      HTHTFree
+#define HText_beginAppend               HTHTBeAp
+#define HText_endAppend                 HTHTEnAp
+#define HText_setStyle                  HTHTSeSt
+#define HText_appendCharacter           HTHTApCh
+#define HText_appendImage               HTHTApIm
+#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_applyStyle                HTHTApSt
+#define HText_updateStyle               HTHTUpSt
+#define HText_selectionStyle            HTHTStyl
+#define HText_replaceSel                HTHTRepl
+#define HText_applyToSimilar            HTHTApTo
+#define HText_selectUnstyled            HTHTSeUn
+#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 */
+extern HTParentAnchor * HTMainAnchor;   /* Pointer to current text's anchor */
+
+/*
+
+Creation and deletion
+
+  HTEXT_NEW: CREATE HYPERTEXT OBJECT
+  
+   There are several methods depending on how much you want to specify. The output stream
+   is used with objects which need to output the hypertext to a stream.  The structure is
+   for objects which need to refer to the structure which is kep by the creating stream.
+   
+ */
+ extern HText * HText_new PARAMS((HTParentAnchor * anchor));
+
+ extern HText * HText_new2 PARAMS((HTParentAnchor * anchor,
+                                HTStream * output_stream));
+
+ extern HText * HText_new3 PARAMS((HTParentAnchor * anchor,
+                                HTStream * output_stream,
+                                HTStructured * structure));
+
+/*
+
+  FREE HYPERTEXT OBJECT
+  
+ */
+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));
+
+/*
+
+  SET THE STYLE FOR FUTURE TEXT
+  
+ */
+
+extern void HText_setStyle PARAMS((HText * text, HTStyle * style));
+
+/*
+
+  ADD ONE CHARACTER
+  
+ */
+extern void HText_appendCharacter PARAMS((HText * text, char ch));
+
+/*
+
+  ADD A ZERO-TERMINATED STRING
+  
+ */
+
+extern void HText_appendText PARAMS((HText * text, CONST char * str));
+
+/*
+
+  NEW PARAGRAPH
+  
+   and similar things
+   
+ */
+extern void HText_appendParagraph PARAMS((HText * text));
+
+extern void HText_appendLineBreak PARAMS((HText * text));
+
+extern void HText_appendHorizontalRule 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, HTChildAnchor * anc));
+extern void HText_endAnchor PARAMS((HText * text));
+
+
+/*
+
+  APPEND AN INLINE IMAGE
+  
+   The image is handled by the creation of an anchor whose destination is the image
+   document to be included. The semantics is the intended inline display of the image.
+   
+   An alternative implementation could be, for example, to begin an anchor, append the
+   alternative text or "IMAGE", then end the anchor. This would simply generate some text
+   linked to the image itself as a separate document.
+   
+ */
+extern void HText_appendImage PARAMS((
+        HText *         text,
+        HTChildAnchor * anc,
+        CONST char *    alternative_text,
+        int             alignment,
+        BOOL            isMap));
+
+/*
+
+  DUMP DIAGNOSTICS TO STDERR
+  
+ */
+
+extern void HText_dump PARAMS((HText * me));
+
+/*
+
+  RETURN THE ANCHOR ASSOCIATED WITH THIS NODE
+  
+ */
+extern HTParentAnchor * HText_nodeAnchor PARAMS((HText * me));
+
+
+/*
+
+Browsing functions
+
+ */
+
+
+/*
+
+  BRING TO FRONT AND HIGHLIGHT IT
+  
+ */
+
+
+extern BOOL HText_select PARAMS((HText * text));
+extern BOOL HText_selectAnchor PARAMS((HText * text, HTChildAnchor* anchor));
+
+/*
+
+Editing functions
+
+   These are called from the application. There are many more functions not included here
+   from the orginal text object. These functions NEED NOT BE IMPLEMENTED in a browser
+   which cannot edit.
+   
+ */
+/*      Style handling:
+*/
+/*      Apply this style to the selection
+*/
+extern void HText_applyStyle PARAMS((HText * me, HTStyle *style));
+
+/*      Update all text with changed style.
+*/
+extern void HText_updateStyle PARAMS((HText * me, HTStyle *style));
+
+/*      Return style of  selection
+*/
+extern HTStyle * HText_selectionStyle PARAMS((
+        HText * me,
+        HTStyleSheet* sheet));
+
+/*      Paste in styled text
+*/
+extern void HText_replaceSel PARAMS((HText * me,
+        CONST char *aString,
+        HTStyle* aStyle));
+
+/*      Apply this style to the selection and all similarly formatted text
+**      (style recovery only)
+*/
+extern void HTextApplyToSimilar PARAMS((HText * me, HTStyle *style));
+
+/*      Select the first unstyled run.
+**      (style recovery only)
+*/
+extern void HTextSelectUnstyled PARAMS((HText * me, HTStyleSheet *sheet));
+
+
+/*      Anchor handling:
+*/
+extern void             HText_unlinkSelection PARAMS((HText * me));
+extern HTAnchor *       HText_referenceSelected PARAMS((HText * me));
+extern HTAnchor *       HText_linkSelTo PARAMS((HText * me, HTAnchor* anchor));
+
+
+#endif /* HTEXT_H */
+/*
+
+   end */