Annotation of Amaya/amaya/amaya.h, revision 1.135
1.8 cvs 1: /*
2: *
3: * (c) COPYRIGHT MIT and INRIA, 1996.
4: * Please first read the full copyright statement in file COPYRIGHT.
5: *
6: */
7:
1.59 cvs 8: #ifndef AMAYA_H
1.1 cvs 9: #define AMAYA_H
10:
1.10 cvs 11: /* Thot interface */
12: #include "thot_gui.h"
13: #include "thot_sys.h"
1.79 cvs 14: #include "appstruct.h"
1.10 cvs 15: #include "application.h"
16: #include "attribute.h"
17: #include "browser.h"
18: #include "content.h"
19: #include "dialog.h"
1.103 cvs 20: #include "fileaccess.h"
1.10 cvs 21: #include "interface.h"
22: #include "libmsg.h"
23: #include "message.h"
24: #include "presentation.h"
25: #include "selection.h"
26: #include "reference.h"
27: #include "tree.h"
28: #include "view.h"
1.105 cvs 29: #include "uconvert.h"
1.82 cvs 30: #include "undo.h"
1.1 cvs 31: /* Included headerfiles */
1.10 cvs 32: #include "EDITOR.h"
1.1 cvs 33: #include "HTML.h"
1.84 cvs 34: #include "TextFile.h"
1.1 cvs 35: #include "amayamsg.h"
36:
1.25 cvs 37: #define NAME_LENGTH 32
38:
1.133 cvs 39: #define HTAppName "amaya"
40: #define HTAppVersion "V2.5"
1.131 cvs 41: #define HTAppDate TEXT (" ")
1.130 cvs 42:
43: #define URL_STR "/"
44: #define URL_SEP '/'
45: #define CUS_URL_STR TEXT ("/")
46: #define CUS_URL_SEP TEXT ('/')
47: #define WC_URL_STR TEXT ("/")
48: #define WC_URL_SEP TEXT ('/')
1.105 cvs 49:
1.36 cvs 50:
1.94 cvs 51: /* Number of views used in Amaya */
52: #define AMAYA_MAX_VIEW_DOC 7
53:
1.50 cvs 54: /* The structures used for request callbacks */
55:
56: typedef void TIcbf (Document doc, int status, char *urlName,
57: char *outputfile, const char *content_type,
58: const char *data_block, int data_block_size,
59: void *context);
60:
1.105 cvs 61: typedef void TTcbf (Document doc, int status, STRING urlName,
62: STRING outputfile, const STRING content_type,
1.50 cvs 63: void *context);
64:
1.25 cvs 65: /* How are Network accesses provided ? */
66: #ifdef AMAYA_JAVA
67: #include "libjava.h"
68: #else
1.39 cvs 69: #ifdef AMAYA_ILU
70: #include "libilu.h"
71: #else
1.25 cvs 72: #include "libwww.h"
73: #endif
1.39 cvs 74: #endif
1.1 cvs 75:
1.66 cvs 76: /* The different events to open a new document */
1.41 cvs 77: typedef enum _ClickEvent {
1.73 cvs 78: CE_ABSOLUTE, CE_RELATIVE, CE_FORM_POST, CE_FORM_GET,
1.127 cvs 79: CE_HELP, CE_MAKEBOOK, CE_LOG , CE_TEMPLATE, CE_INIT
80: #ifdef ANNOTATIONS
81: ,CE_ANNOT
82: #endif /* ANNOTATIONS */
1.41 cvs 83: } ClickEvent;
1.20 cvs 84:
85: #define NO 0
86: #define YES 1
87:
88: /* dialogue */
89: #define URLForm 1
1.29 cvs 90: #define OpenForm 2
91: #define URLName 3
92: #define LocalName 4
93: #define DirSelect 5
94: #define DocSelect 6
1.20 cvs 95: #define StopCommand 7
1.29 cvs 96: #define SaveForm 8
1.20 cvs 97: #define DirSave 9
98: #define DocSave 10
99: #define ToggleSave 11
1.29 cvs 100: #define NameSave 12
1.30 cvs 101: #define ImgDirSave 13
102: #define Label1 14
103: #define Label2 15
104: #define Label3 16
105: #define Label4 17
1.29 cvs 106: #define ConfirmForm 18
107: #define ConfirmText 19
1.20 cvs 108: #define AttrHREFForm 20
109: #define AttrHREFText 21
110: #define FormAnswer 22
1.120 cvs 111: #define RealmText 23
1.20 cvs 112: #define AnswerText 24
113: #define NameText 25
114: #define PasswordText 26
1.30 cvs 115: #define FilterText 27
116: #define ClassForm 28
1.20 cvs 117: #define ClassSelect 29
118: #define AClassForm 30
1.30 cvs 119: #define AClassSelect 31
120: #define ConfirmSave 32
121: #define ConfirmSaveList 33
122: #define OptionMenu 34
1.134 cvs 123: /* MAX_SUBMENUS references reserved for submenus of Option menu */
124: /* Do not insert new entries here */
1.91 cvs 125: #define MAX_SUBMENUS 400
126: #define About1 435
127: #define About2 436
128: #define About3 437
129: #define Version 438
130: #define AboutForm 439
1.92 cvs 131: #define TableForm 440
132: #define TableRows 441
133: #define TableCols 442
134: #define TableBorder 443
1.134 cvs 135: #define MathEntityForm 444
136: #define MathEntityText 445
137: #define MAX_REF 446
1.20 cvs 138:
1.11 cvs 139: /* The possible GET/POST/PUT request modes */
1.1 cvs 140:
1.11 cvs 141: /*synchronous request*/
142: #define AMAYA_SYNC 1 /*0x000001 */
143: /*synchronous request with incremental callbacks */
144: #define AMAYA_ISYNC 2 /*0x000010 */
145: /*asynchronous request */
1.5 cvs 146: #define AMAYA_ASYNC 4 /*0x000100 */
1.11 cvs 147: /*asynchronous request with incremental callbacks */
1.5 cvs 148: #define AMAYA_IASYNC 8 /*0x001000 */
1.11 cvs 149: /* send the form using the POST HTTP method */
1.5 cvs 150: #define AMAYA_FORM_POST 16 /*0x010000 */
1.11 cvs 151: /* send the form using the GET HTTP method */
1.5 cvs 152: #define AMAYA_FORM_GET 32 /*0x100000 */
1.23 cvs 153: /* bypass caching */
154: #define AMAYA_NOCACHE 64
155: /* don't follow redirections */
156: #define AMAYA_NOREDIR 128
1.129 cvs 157: /* post an annonation */
158: #define AMAYA_ANNOT_POST 256
1.48 cvs 159: #ifndef AMAYA_JAVA
160: /* Prevents a stop race condition in ASYNC transfers */
161: #define AMAYA_ASYNC_SAFE_STOP 256
1.60 cvs 162: #define AMAYA_LOAD_CSS 512
1.67 cvs 163: #define AMAYA_FLUSH_REQUEST 1024
1.80 cvs 164: #define AMAYA_USE_PRECONDITIONS 2048
1.123 cvs 165: #define AMAYA_LOAD_IMAGE 4096
166:
1.63 cvs 167: #else
168: #define AMAYA_ASYNC_SAFE_STOP 0
169: #define AMAYA_LOAD_CSS 0
1.80 cvs 170: #define AMAYA_USE_PRECONDITIONS 0
1.48 cvs 171: #endif /* ! AMAYA_JAVA */
1.87 cvs 172:
173: /*
174: * Flags to indicate the action to take when the network options
175: * are modified
176: */
177: #define AMAYA_CACHE_RESTART 1
178: #define AMAYA_PROXY_RESTART 2
1.114 cvs 179: #define AMAYA_LANNEG_RESTART 4
180: #define AMAYA_SAFEPUT_RESTART 8
1.87 cvs 181:
1.26 cvs 182: /*
183: * Flags to indicate the status of the network requests associated
184: * to a document.
185: */
186:
187: #define AMAYA_NET_INACTIVE 1
188: #define AMAYA_NET_ERROR 2
189: #define AMAYA_NET_ACTIVE 4
190:
1.25 cvs 191: /*
192: * Flags for HTParse, specifying which parts of the URL are needed
193: */
194: #define AMAYA_PARSE_ACCESS 16 /* Access scheme, e.g. "HTTP" */
195: #define AMAYA_PARSE_HOST 8 /* Host name, e.g. "www.w3.org" */
196: #define AMAYA_PARSE_PATH 4 /* URL Path, e.g. "pub/WWW/TheProject.html" */
197: #define AMAYA_PARSE_ANCHOR 2 /* Fragment identifier, e.g. "news" */
198: #define AMAYA_PARSE_PUNCTUATION 1 /* Include delimiters, e.g, "/" and ":" */
199: #define AMAYA_PARSE_ALL 31 /* All the parts */
1.1 cvs 200:
1.14 cvs 201: THOT_EXPORT int appArgc;
1.132 cvs 202: THOT_EXPORT CharUnit** appArgv;
1.130 cvs 203: THOT_EXPORT CharUnit TempFileDirectory[MAX_LENGTH];
1.105 cvs 204: THOT_EXPORT CHAR_T Answer_text[MAX_LENGTH];
205: THOT_EXPORT CHAR_T Answer_name[NAME_LENGTH];
206: THOT_EXPORT CHAR_T Answer_password[NAME_LENGTH];
207: THOT_EXPORT CHAR_T Display_password[NAME_LENGTH];
208: THOT_EXPORT CHAR_T ScanFilter[NAME_LENGTH]; /* to scan directories */
1.134 cvs 209: THOT_EXPORT CHAR_T MathMLEntityName[MAX_LENGTH]; /* entity name typed by the user for a MathML expression */
1.133 cvs 210: THOT_EXPORT CharUnit* LastURLName; /* last URL requested */
211: THOT_EXPORT CharUnit* DirectoryName; /* local path of the document */
212: THOT_EXPORT CharUnit* DocumentName; /* document name */
213: THOT_EXPORT CharUnit* SavePath; /* saving path */
214: THOT_EXPORT CharUnit* SaveName; /* saving name of the document */
1.105 cvs 215: THOT_EXPORT STRING ObjectName; /* document name */
216: THOT_EXPORT STRING SaveImgsURL; /* where to save remote Images */
217: THOT_EXPORT STRING TargetName;
218: THOT_EXPORT STRING SavingFile; /* complete path or URL of the document */
1.45 cvs 219: THOT_EXPORT int Lg_password;
220: THOT_EXPORT int BaseDialog;
1.14 cvs 221: THOT_EXPORT int ReturnOption;
1.70 cvs 222: THOT_EXPORT int NumberRows;
223: THOT_EXPORT int NumberCols;
224: THOT_EXPORT int TBorder;
1.69 cvs 225: THOT_EXPORT int ReturnOptionMenu;
1.14 cvs 226: THOT_EXPORT Document CurrentDocument;
227: THOT_EXPORT Document SavingDocument;
228: THOT_EXPORT Document SavingObject;
229: THOT_EXPORT Document AttrHREFdocument;
1.45 cvs 230: THOT_EXPORT Document DocBook;
231: THOT_EXPORT Document IncludedDocument;
1.14 cvs 232: THOT_EXPORT Element AttrHREFelement;
1.95 cvs 233: THOT_EXPORT STRING AttrHREFvalue;
1.14 cvs 234: THOT_EXPORT Document SelectionDoc;
1.113 cvs 235: THOT_EXPORT ThotBool IsNewAnchor;
1.115 cvs 236: THOT_EXPORT ThotBool UseLastTarget;
1.116 cvs 237: THOT_EXPORT ThotBool LinkAsCSS;
1.98 cvs 238: THOT_EXPORT ThotBool SaveAsHTML;
239: THOT_EXPORT ThotBool SaveAsXHTML;
240: THOT_EXPORT ThotBool SaveAsText;
241: THOT_EXPORT ThotBool CopyImages; /* should we copy images in Save As */
242: THOT_EXPORT ThotBool UpdateURLs; /* should we update URLs in Save As */
243: THOT_EXPORT ThotBool UserAnswer;
244: THOT_EXPORT ThotBool InNewWindow;
245: THOT_EXPORT ThotBool SelectionInPRE;
246: THOT_EXPORT ThotBool SelectionInComment;
247: THOT_EXPORT ThotBool SelectionInEM;
248: THOT_EXPORT ThotBool SelectionInSTRONG;
249: THOT_EXPORT ThotBool SelectionInCITE;
250: THOT_EXPORT ThotBool SelectionInABBR;
251: THOT_EXPORT ThotBool SelectionInACRONYM;
252: THOT_EXPORT ThotBool SelectionInINS;
253: THOT_EXPORT ThotBool SelectionInDEL;
254: THOT_EXPORT ThotBool SelectionInDFN;
255: THOT_EXPORT ThotBool SelectionInCODE;
256: THOT_EXPORT ThotBool SelectionInVAR;
257: THOT_EXPORT ThotBool SelectionInSAMP;
258: THOT_EXPORT ThotBool SelectionInKBD;
259: THOT_EXPORT ThotBool SelectionInI;
260: THOT_EXPORT ThotBool SelectionInB;
261: THOT_EXPORT ThotBool SelectionInTT;
262: THOT_EXPORT ThotBool SelectionInBIG;
263: THOT_EXPORT ThotBool SelectionInSMALL;
1.100 cvs 264: THOT_EXPORT ThotBool SelectionInSub;
265: THOT_EXPORT ThotBool SelectionInSup;
266: THOT_EXPORT ThotBool SelectionInQuote;
267: THOT_EXPORT ThotBool SelectionInBDO;
1.108 cvs 268: THOT_EXPORT ThotBool HTMLErrorsFound;
1.100 cvs 269:
1.53 cvs 270: typedef enum
271: {
272: docHTML,
1.110 cvs 273: docHTMLRO,
1.74 cvs 274: docText,
1.84 cvs 275: docTextRO,
1.75 cvs 276: docImage,
1.85 cvs 277: docImageRO,
278: docCSS,
1.110 cvs 279: docCSSRO,
280: docSource,
1.127 cvs 281: docSourceRO,
282: #ifdef ANNOTATIONS
283: docAnnot,
284: docAnnotRO
285: #endif /* ANNOTATIONS */
1.53 cvs 286: } DocumentType;
1.64 cvs 287:
288:
289: /* a record for data associated with a request */
290: typedef struct _DocumentMetaDataElement
291: {
1.135 ! cvs 292: CharUnit* form_data; /* form data associated with a URL */
! 293: ClickEvent method; /* method used to send this data */
! 294: ThotBool put_default_name; /* URL name was concatenated with DEFAULT_NAME */
! 295: ThotBool xmlformat; /* the document should be exported in xml format */
1.64 cvs 296: } DocumentMetaDataElement;
297:
1.1 cvs 298: #define DocumentTableLength 10
1.110 cvs 299: /* URL of each loaded document */
1.133 cvs 300: THOT_EXPORT CharUnit* DocumentURLs[DocumentTableLength];
1.64 cvs 301: /* Any formdata associated with a URL */
302: THOT_EXPORT DocumentMetaDataElement *DocumentMeta[DocumentTableLength];
1.110 cvs 303: /* Type of document */
1.53 cvs 304: THOT_EXPORT DocumentType DocumentTypes[DocumentTableLength];
1.110 cvs 305: /* identifier of the document displaying the source code */
306: THOT_EXPORT Document DocumentSource[DocumentTableLength];
307: /* The whole document is loaded when the corresponding entry in FilesLoading is 0 */
1.14 cvs 308: THOT_EXPORT int FilesLoading[DocumentTableLength];
1.110 cvs 309: /* Status (error, success) of the download of the objects of a document */
310: THOT_EXPORT int DocNetworkStatus[DocumentTableLength];
1.42 cvs 311:
1.14 cvs 312: THOT_EXPORT Document W3Loading; /* the document being loaded */
1.65 cvs 313: THOT_EXPORT Document BackupDocument; /* the current backup */
1.104 cvs 314:
315: /* button indexes */
316: THOT_EXPORT int iStop;
317: THOT_EXPORT int iBack;
318: THOT_EXPORT int iForward;
319: THOT_EXPORT int iReload;
320: THOT_EXPORT int iHome;
321: THOT_EXPORT int iEditor;
322: THOT_EXPORT int iSave;
323: THOT_EXPORT int iPrint;
324: THOT_EXPORT int iFind;
325: THOT_EXPORT int iI;
326: THOT_EXPORT int iB;
327: THOT_EXPORT int iT;
328: THOT_EXPORT int iImage;
329: THOT_EXPORT int iH1;
330: THOT_EXPORT int iH2;
331: THOT_EXPORT int iH3;
332: THOT_EXPORT int iBullet;
333: THOT_EXPORT int iNum;
334: THOT_EXPORT int iDL;
335: THOT_EXPORT int iLink;
336: THOT_EXPORT int iTable;
1.5 cvs 337:
1.64 cvs 338: #define IMAGE_NOT_LOADED 0
1.1 cvs 339: #define IMAGE_LOCAL 1
340: #define IMAGE_LOADED 2
341: #define IMAGE_MODIFIED 3
342:
1.109 cvs 343:
1.27 cvs 344: #ifdef __STDC__
1.109 cvs 345: typedef void (*LoadedImageCallback)(Document doc, Element el, char *file, void *extra);
1.27 cvs 346: #else
347: typedef void (*LoadedImageCallback)();
348: #endif
1.109 cvs 349:
1.5 cvs 350: typedef struct _ElemImage
351: {
1.27 cvs 352: Element currentElement;/* first element using this image */
1.5 cvs 353: struct _ElemImage *nextElement;
1.27 cvs 354: LoadedImageCallback callback; /* Callback for non-standard handling */
355: void *extra; /* any extra info for the CallBack */
1.5 cvs 356: }
357: ElemImage;
358:
359: typedef struct _LoadedImageDesc
360: {
1.105 cvs 361: STRING originalName; /* complete URL of the image */
362: STRING localName; /* local name (without path) of the image */
1.58 cvs 363: struct _LoadedImageDesc *prevImage;/* double linked list */
364: struct _LoadedImageDesc *nextImage;/* easier to unchain */
365: Document document; /* document concerned */
366: struct _ElemImage *elImage; /* first element using this image */
367: int imageType; /* the type of the image */
368: int status; /* the status of the image loading */
1.5 cvs 369: }
370: LoadedImageDesc;
1.109 cvs 371:
372: /* the structure used for storing the context of the
373: FetchAndDisplayImages_callback function */
374: typedef struct _FetchImage_context {
375: STRING base_url;
376: LoadedImageDesc *desc;
377: } FetchImage_context;
378:
1.5 cvs 379:
1.14 cvs 380: THOT_EXPORT LoadedImageDesc *ImageURLs;
1.31 cvs 381: THOT_EXPORT LoadedImageDesc *ImageLocal;
1.1 cvs 382:
1.88 cvs 383: /* The default Amaya HOME pages (page shown at boot time */
384:
1.105 cvs 385: #if defined(_I18N_) || defined(__JIS__)
386: # ifdef _WINDOWS
387: # define AMAYA_PAGE L"\\amaya\\AmayaPage.html"
388: # else /* _WINDOWS */
389: # define AMAYA_PAGE L"/amaya/AmayaPage.html"
390: # endif /* _WINDOWS */
391: # define AMAYA_PAGE_DOC L"http://www.w3.org/Amaya/User/"
392: #else /* !_I18N_ */
393: # ifdef _WINDOWS
394: # define AMAYA_PAGE "\\amaya\\AmayaPage.html"
395: # else /* _WINDOWS */
396: # define AMAYA_PAGE "/amaya/AmayaPage.html"
397: # endif /* _WINDOWS */
398: # define AMAYA_PAGE_DOC "http://www.w3.org/Amaya/User/"
399: #endif /* !_I18N_ */
1.88 cvs 400:
1.25 cvs 401: #endif /* AMAYA_H */
Webmaster