Annotation of Amaya/amaya/amaya.h, revision 1.250

1.8       cvs         1: /*
                      2:  *
1.223     vatton      3:  *  (c) COPYRIGHT MIT and INRIA, 1996-2002
1.8       cvs         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.197     kahan      34: #include "MathML.h"
1.217     vatton     35: #include "SVG.h"
1.84      cvs        36: #include "TextFile.h"
1.224     cvs        37: #include "XML.h"
1.1       cvs        38: #include "amayamsg.h"
1.156     cvs        39: #include "parser.h"
1.1       cvs        40: 
1.25      cvs        41: #define NAME_LENGTH     32
                     42: 
1.198     cvs        43: #define HTAppName     "amaya"
1.250   ! vatton     44: #define HTAppVersion  "7.1"
1.245     cheyroul   45: #define HTAppDate     __DATE__ 
1.130     cvs        46: 
                     47: #define URL_STR       "/"
                     48: #define URL_SEP       '/'
1.245     cheyroul   49: 
1.36      cvs        50: 
1.94      cvs        51: /* Number of views used in Amaya */
                     52: #define AMAYA_MAX_VIEW_DOC  7
                     53: 
1.141     cvs        54: /* the type of character convertion we want to make on local URLs */
                     55: typedef enum _ConvertionType
                     56: {
                     57:   AM_CONV_NONE = 0,
                     58:   AM_CONV_URL_SEP = 0x1, /* converts URL_SEPs into DIR_SEPs */
                     59:   AM_CONV_PERCENT = 0x2, /* converts %xx into the equiv. char */
                     60:   AM_CONV_ALL = 0xFFFF   /* do everything */
                     61: }
                     62: ConvertionType;
                     63: 
1.139     cvs        64: /* the HTTP header name we want to make visible to the application */
                     65: typedef enum _AHTHeaderName
                     66:   {
                     67:     AM_HTTP_CONTENT_TYPE = 0,
1.175     kahan      68:     AM_HTTP_CHARSET = 1,
1.196     kahan      69:     AM_HTTP_CONTENT_LENGTH = 2,
1.214     kahan      70:     AM_HTTP_REASON = 3,
1.238     kahan      71:     AM_HTTP_CONTENT_LOCATION = 4,
                     72:     AM_HTTP_FULL_CONTENT_LOCATION = 5
1.139     cvs        73:   } 
                     74: AHTHeaderName;
                     75: 
                     76: /* the structure used for exchanging HTTP header info between the net library
                     77:    and amaya */
                     78: typedef struct _AHTHeaders
                     79:   {
1.198     cvs        80:     char *content_type;
                     81:     char *charset;
                     82:     char *content_length;
                     83:     char *reason;
1.214     kahan      84:     char *content_location;
1.238     kahan      85:     char *full_content_location;
1.246     vatton     86:     int   status;
1.139     cvs        87:   }
                     88: AHTHeaders;
                     89: 
1.50      cvs        90: /* The structures used for request callbacks */
                     91: typedef void   TIcbf (Document doc, int status, char *urlName,
1.139     cvs        92:                      char *outputfile, const AHTHeaders *http_headers,
1.50      cvs        93:                      const char *data_block, int data_block_size,
                     94:                      void *context);
                     95: 
1.198     cvs        96: typedef void  TTcbf (Document doc, int status, char *urlName,
                     97:                      char *outputfile, const AHTHeaders *http_headers,
1.50      cvs        98:                      void *context);
                     99: 
1.25      cvs       100: /* How are Network accesses provided ? */
                    101: #include "libwww.h"
1.1       cvs       102: 
1.66      cvs       103: /* The different events to open a new document */
1.41      cvs       104: typedef enum _ClickEvent {
1.73      cvs       105:   CE_ABSOLUTE, CE_RELATIVE, CE_FORM_POST, CE_FORM_GET,
1.153     cvs       106:   CE_HELP, CE_MAKEBOOK, CE_LOG , CE_TEMPLATE, CE_INIT,
1.190     cvs       107:   CE_CSS, CE_ANNOT
1.41      cvs       108: } ClickEvent;
1.20      cvs       109: 
                    110: #define NO               0
                    111: #define YES              1
                    112: 
1.165     cvs       113: /* dialogues */
1.20      cvs       114: #define URLForm          1
1.29      cvs       115: #define OpenForm         2
                    116: #define URLName          3
                    117: #define LocalName        4
                    118: #define DirSelect        5
                    119: #define DocSelect        6
1.20      cvs       120: #define StopCommand      7
1.29      cvs       121: #define SaveForm         8
1.20      cvs       122: #define DirSave          9
                    123: #define DocSave         10
                    124: #define ToggleSave      11
1.29      cvs       125: #define NameSave        12
1.30      cvs       126: #define ImgDirSave      13
1.208     vatton    127: #define ConfirmForm     14
                    128: #define ConfirmText     15
                    129: #define AttrHREFForm    16
                    130: #define AttrHREFText    17
                    131: #define FormAnswer      18
                    132: #define RealmText       19
                    133: #define AnswerText      20
                    134: #define NameText        21
                    135: #define PasswordText    22
                    136: #define FilterText      23
                    137: #define ClassForm       24
                    138: #define ClassSelect     25
                    139: #define AClassForm      26
                    140: #define AClassSelect    27
                    141: #define ConfirmSave     28
                    142: #define ConfirmSaveList 29
                    143: #define BrowserDirSelect   30
                    144: #define BrowserDocSelect   31
                    145: #define BrowserFilterText  32
                    146: #define HREFLocalName   33
                    147: #define MakeIdMenu      34
                    148: #define mElemName       35
                    149: #define mAddId          36
                    150: #define mRemoveId       37
                    151: #define mIdUseSelection 38
                    152: #define mIdStatus       39
                    153: #define FileBrowserForm 40
                    154: #define FileBrowserText 41
                    155: #define FileBrowserFilter 42
                    156: #define FileBrowserLocalName 43
                    157: #define MimeTypeForm    44
                    158: #define MimeTypeSel     45
                    159: #define MimeTypeSave    46
                    160: #define CharsetForm     47
                    161: #define CharsetSave     48
                    162: #define CharsetSel      49
                    163: #define RadioSave       50
                    164: #define MimeFormStatus  51
                    165: #define SaveFormStatus  52
                    166: /* do not add items before this entry */
                    167: #define OptionMenu     53
1.205     kahan     168: 
1.134     cvs       169: /* MAX_SUBMENUS references reserved for submenus of Option menu */
                    170: /* Do not insert new entries here */
1.91      cvs       171: #define MAX_SUBMENUS    400
1.208     vatton    172: #define Label1          54 /* no callback */
                    173: #define Label2          55 /* no callback */
                    174: #define Label3          56 /* no callback */
                    175: #define Label4          57 /* no callback */
                    176: #define About1         58 /* no callback */
                    177: #define About2         59 /* no callback */
                    178: #define About3         60 /* no callback */
                    179: #define Version                61 /* no callback */
                    180: #define CharsetSaveL    62 /* no callback */
                    181: #define MimeTypeSaveL   63 /* no callback */
                    182: /* first callback available: 454 */
1.177     cvs       183: #define AboutForm              454
                    184: #define TableForm       455
                    185: #define TableRows       456
                    186: #define TableCols       457
                    187: #define TableBorder     458
                    188: #define MathEntityForm  459
                    189: #define MathEntityText  460
                    190: #define TitleForm       461
                    191: #define TitleText       462
1.192     cvs       192: #define DocInfoForm           463
                    193: #define DocInfoMimeTypeTitle  464
                    194: #define DocInfoMimeType       465
                    195: #define DocInfoCharsetTitle   466
                    196: #define DocInfoCharset        467
                    197: #define DocInfoContentTitle   468
                    198: #define DocInfoContent        469
1.215     kahan     199: #define DocInfoURLTitle       470
                    200: #define DocInfoURL            471
1.194     cvs       201: #define DocInfoTitle1         472
                    202: #define DocInfoTitle2         473
                    203: #define DocInfoContent1       474
                    204: #define DocInfoContent2       475
1.215     kahan     205: #define DocInfoLocationTitle  476
                    206: #define DocInfoLocation       477
1.222     kahan     207: #define DocInfoDocTypeTitle   478
                    208: #define DocInfoDocType        479
                    209: #define MAX_REF         480
1.20      cvs       210: 
1.150     cvs       211: #define FormPrint        1
                    212: #define PrintOptions     2
                    213: #define PaperFormat      3
                    214: #define PrintSupport     4
                    215: #define PPrinterName     5
                    216: #define PaperOrientation 6
                    217: #define PPagesPerSheet   7
                    218: #define PRINT_MAX_REF   8
1.147     cvs       219: 
1.234     cvs       220: #define FormLibrary              1
                    221: #define CopySVGLibSelection      2
                    222: #define ReferToSVGLibSelection   3
                    223: #define AddSVGModel              4
                    224: #define NewSVGFileURL            5
                    225: #define SVGLibCatalogueTitle     6
                    226: #define SVGLibraryLabel          7
                    227: #define SVGLibraryLabel1         8
                    228: #define SVGLibraryLabel2         9
                    229: #define SVGLibraryLabel3        10
1.240     cvs       230: #define SVGLibraryLabel4        11
                    231: #define NewSVGLibraryTitle      12
                    232: #define NewSVGLibrary           13
                    233: #define SVGLibraryURL           14
1.242     cvs       234: #define SVGLibraryDir           15
                    235: #define SVGLibrarySel           16
                    236: #define LibraryFilter           17
                    237: #define SVGLibFileBrowser       18
                    238: #define SVGLibFileBrowserText   19
                    239: #define LibraryCopyOption       20
                    240: #define LIBRARY_MAX_REF         21
1.234     cvs       241: 
1.147     cvs       242: #define ImageURL       1
                    243: #define ImageLabel     2
                    244: #define ImageLabel2    3
                    245: #define ImageLabel3    4
                    246: #define ImageLabel4    5
                    247: #define ImageDir       6
                    248: #define ImageSel       7
                    249: #define ImageFilter     8
                    250: #define FormImage      9
                    251: #define RepeatImage    10
                    252: #define FormBackground 11
                    253: #define ImageAlt       12
                    254: #define FormAlt        13
                    255: #define IMAGE_MAX_REF  14
                    256: 
                    257: #define CSSForm         0
                    258: #define CSSSelect       1
                    259: #define MAX_CSS_REF     2
                    260: 
                    261: #define FormMaths 0
                    262: #define MenuMaths 1
1.225     vatton    263: #define MenuMaths1 2
                    264: #define MAX_MATHS  3
1.147     cvs       265: 
1.165     cvs       266: #define FormGraph 0
                    267: #define MenuGraph 1
1.225     vatton    268: #define MenuGraph1 2
                    269: #define MAX_GRAPH 3
1.165     cvs       270: 
1.11      cvs       271: /* The possible GET/POST/PUT request modes */
                    272: /*synchronous request*/
                    273: #define AMAYA_SYNC     1       /*0x000001 */  
                    274: /*synchronous request with incremental callbacks */
                    275: #define AMAYA_ISYNC    2       /*0x000010 */  
                    276: /*asynchronous request */
1.5       cvs       277: #define AMAYA_ASYNC    4       /*0x000100 */
1.11      cvs       278: /*asynchronous request with incremental callbacks */
1.5       cvs       279: #define AMAYA_IASYNC   8       /*0x001000 */
1.11      cvs       280: /* send the form using the POST HTTP method */
1.5       cvs       281: #define AMAYA_FORM_POST 16     /*0x010000 */
1.11      cvs       282: /* send the form using the GET HTTP method */
1.5       cvs       283: #define AMAYA_FORM_GET  32     /*0x100000 */
1.23      cvs       284: /* bypass caching */
                    285: #define AMAYA_NOCACHE  64
                    286: /* don't follow redirections */
                    287: #define AMAYA_NOREDIR  128
1.48      cvs       288: /* Prevents a stop race condition in ASYNC transfers */
                    289: #define AMAYA_ASYNC_SAFE_STOP  256
1.60      cvs       290: #define AMAYA_LOAD_CSS   512
1.67      cvs       291: #define AMAYA_FLUSH_REQUEST 1024
1.80      cvs       292: #define AMAYA_USE_PRECONDITIONS 2048
1.123     cvs       293: #define AMAYA_LOAD_IMAGE 4096
1.167     kahan     294: /* post an annonation */
                    295: #define AMAYA_FILE_POST 8192
                    296: /* delete an annotation */
                    297: #define AMAYA_DELETE    16384
1.180     kahan     298: #define AMAYA_MBOOK_IMAGE 32768
1.87      cvs       299: /*
                    300:  * Flags to indicate the action to take when the network options
                    301:  * are modified
                    302:  */
                    303: #define AMAYA_CACHE_RESTART 1
                    304: #define AMAYA_PROXY_RESTART 2
1.114     cvs       305: #define AMAYA_LANNEG_RESTART 4
                    306: #define AMAYA_SAFEPUT_RESTART 8
1.87      cvs       307: 
1.26      cvs       308: /*
                    309:  * Flags to indicate the status of the network requests associated
                    310:  * to a document.
                    311:  */
                    312: 
                    313: #define AMAYA_NET_INACTIVE 1
                    314: #define AMAYA_NET_ERROR    2
                    315: #define AMAYA_NET_ACTIVE   4
                    316: 
1.25      cvs       317: /*
                    318:  * Flags for HTParse, specifying which parts of the URL are needed
                    319:  */
                    320: #define AMAYA_PARSE_ACCESS      16  /* Access scheme, e.g. "HTTP" */
                    321: #define AMAYA_PARSE_HOST        8   /* Host name, e.g. "www.w3.org" */
                    322: #define AMAYA_PARSE_PATH        4   /* URL Path, e.g. "pub/WWW/TheProject.html" */
                    323: #define AMAYA_PARSE_ANCHOR      2   /* Fragment identifier, e.g. "news" */
                    324: #define AMAYA_PARSE_PUNCTUATION 1   /* Include delimiters, e.g, "/" and ":" */
                    325: #define AMAYA_PARSE_ALL         31  /* All the parts */
1.1       cvs       326: 
1.198     cvs       327: THOT_EXPORT int        AMAYA;     /* Index of amaya message table */
                    328: THOT_EXPORT int        appArgc;
                    329: THOT_EXPORT char     **appArgv;
                    330: THOT_EXPORT char       TempFileDirectory[MAX_LENGTH];
                    331: THOT_EXPORT char       Answer_text[MAX_LENGTH];
                    332: THOT_EXPORT char       Answer_name[NAME_LENGTH];
                    333: THOT_EXPORT char       Answer_password[NAME_LENGTH];
                    334: THOT_EXPORT char       Display_password[NAME_LENGTH];
                    335: THOT_EXPORT char       ScanFilter[NAME_LENGTH]; /* to scan directories    */
                    336: THOT_EXPORT char       MathMLEntityName[MAX_LENGTH]; /* entity name typed by the user for a MathML expression */
                    337: THOT_EXPORT char       IdElemName[MAX_LENGTH]; /* element name typed by the user from the MakeID menu */
                    338: THOT_EXPORT char       IdStatus[50]; /* element name typed by the user from the MakeID menu */
                    339: THOT_EXPORT char       ImgFilter[NAME_LENGTH];
                    340: THOT_EXPORT char      *LastURLName;    /* last URL requested               */
                    341: THOT_EXPORT char      *DirectoryName;  /* local path of the document       */
                    342: THOT_EXPORT char      *DocumentName;   /* document name                    */
                    343: THOT_EXPORT char      *SavePath;       /* saving path                      */
                    344: THOT_EXPORT char      *SaveName;       /* saving name of the document      */
                    345: THOT_EXPORT char      *ObjectName;     /* document name                    */
                    346: THOT_EXPORT char      *SaveImgsURL;    /* where to save remote Images      */
                    347: THOT_EXPORT char      *TargetName;
                    348: THOT_EXPORT char      *SavingFile;     /* complete path or URL of the document */
1.202     cvs       349: THOT_EXPORT char      *SavedDocumentURL;/* URL of the document that contained
                    350:                                           the elements that are now in the
                    351:                                           Cut and Paste buffer */
1.205     kahan     352: THOT_EXPORT char      UserMimeType[MAX_LENGTH];
                    353:                                         /* Used to pass the user's MIME type 
                    354:                                           choice when doing a Save As of a
                    355:                                           local object to a server */
                    356: THOT_EXPORT char      UserCharset[MAX_LENGTH];
                    357:                                         /* Used to pass the user's charset
                    358:                                           choice when doing a Save As of a
                    359:                                           local object to a server */
1.207     kahan     360: THOT_EXPORT char      SaveFormTmp[MAX_LENGTH];
                    361:                                         /* Used for storing the temporary
                    362:                                           changes in the ChangeCharset and
                    363:                                           ChangeMimetype forms */
1.198     cvs       364: THOT_EXPORT int        Lg_password;
                    365: THOT_EXPORT int        BaseDialog;
                    366: THOT_EXPORT int        BasePrint;
                    367: THOT_EXPORT int        BaseImage;
                    368: THOT_EXPORT int               MathsDialogue;
                    369: THOT_EXPORT int               GraphDialogue;
                    370: THOT_EXPORT int               BaseCSS;
                    371: THOT_EXPORT int        ReturnOption;
                    372: THOT_EXPORT int        NumberRows;
                    373: THOT_EXPORT int        NumberCols;
                    374: THOT_EXPORT int        TBorder;
                    375: THOT_EXPORT int        ReturnOptionMenu;
                    376: THOT_EXPORT int        IdDoc;
1.234     cvs       377: THOT_EXPORT int        BaseLibrary;
1.198     cvs       378: THOT_EXPORT Document   CurrentDocument;
                    379: THOT_EXPORT Document   SavingDocument;
                    380: THOT_EXPORT Document   SavingObject;
                    381: THOT_EXPORT Document   AttrHREFdocument;
                    382: THOT_EXPORT Document   DocBook;
                    383: THOT_EXPORT Document   IncludedDocument;
                    384: THOT_EXPORT Element    AttrHREFelement;
                    385: THOT_EXPORT char      *AttrHREFvalue;
                    386: THOT_EXPORT Document   SelectionDoc;
                    387: THOT_EXPORT ThotBool  IsNewAnchor;
                    388: THOT_EXPORT ThotBool  UseLastTarget;
                    389: THOT_EXPORT ThotBool  LinkAsCSS;
1.241     cvs       390: THOT_EXPORT ThotBool  LinkAsXmlCSS;
1.198     cvs       391: THOT_EXPORT ThotBool   SaveAsHTML;
                    392: THOT_EXPORT ThotBool   SaveAsXML;
                    393: THOT_EXPORT ThotBool   SaveAsText;
                    394: THOT_EXPORT ThotBool   CopyImages;     /* should we copy images in Save As */
                    395: THOT_EXPORT ThotBool   UpdateURLs;     /* should we update URLs in Save As */
                    396: THOT_EXPORT ThotBool   UserAnswer;
                    397: THOT_EXPORT ThotBool   InNewWindow;
                    398: THOT_EXPORT ThotBool   SelectionInPRE;
                    399: THOT_EXPORT ThotBool   SelectionInComment;
                    400: THOT_EXPORT ThotBool   SelectionInEM;
                    401: THOT_EXPORT ThotBool   SelectionInSTRONG;
                    402: THOT_EXPORT ThotBool   SelectionInCITE;
                    403: THOT_EXPORT ThotBool   SelectionInABBR;
                    404: THOT_EXPORT ThotBool   SelectionInACRONYM;
                    405: THOT_EXPORT ThotBool   SelectionInINS;
                    406: THOT_EXPORT ThotBool   SelectionInDEL;
                    407: THOT_EXPORT ThotBool   SelectionInDFN;
                    408: THOT_EXPORT ThotBool   SelectionInCODE;
                    409: THOT_EXPORT ThotBool   SelectionInVAR;
                    410: THOT_EXPORT ThotBool   SelectionInSAMP;
                    411: THOT_EXPORT ThotBool   SelectionInKBD;
                    412: THOT_EXPORT ThotBool   SelectionInI;
                    413: THOT_EXPORT ThotBool   SelectionInB;
                    414: THOT_EXPORT ThotBool   SelectionInTT;
                    415: THOT_EXPORT ThotBool   SelectionInBIG;
                    416: THOT_EXPORT ThotBool   SelectionInSMALL;
                    417: THOT_EXPORT ThotBool   SelectionInSub;
                    418: THOT_EXPORT ThotBool   SelectionInSup;
                    419: THOT_EXPORT ThotBool   SelectionInQuote;
                    420: THOT_EXPORT ThotBool   SelectionInBDO;
                    421: THOT_EXPORT ThotBool   HTMLErrorsFound;
                    422: THOT_EXPORT ThotBool   XMLErrorsFound;
1.203     cvs       423: THOT_EXPORT ThotBool   CSSErrorsFound;
1.198     cvs       424: THOT_EXPORT ThotBool   XMLErrorsFoundInProfile;
                    425: THOT_EXPORT ThotBool   XMLNotWellFormed;
1.204     cvs       426: THOT_EXPORT ThotBool   XMLCharacterNotSupported;
                    427: THOT_EXPORT ThotBool   XMLUnknownEncoding;
                    428: 
1.198     cvs       429: THOT_EXPORT ThotBool   IdApplyToSelection; /* used in the Make ID menu */
                    430: THOT_EXPORT FILE      *ErrFile;
1.53      cvs       431: typedef enum
                    432: {
                    433:   docHTML,
1.74      cvs       434:   docText,
1.75      cvs       435:   docImage,
1.85      cvs       436:   docCSS,
1.110     cvs       437:   docSource,
1.127     cvs       438:   docAnnot,
1.164     cvs       439:   docLog,
                    440:   docSVG,
                    441:   docMath,
1.234     cvs       442:   docXml,
                    443:   docLibrary
1.53      cvs       444: } DocumentType;
1.64      cvs       445: 
                    446: 
                    447: /* a record for data associated with a request */
                    448: typedef struct _DocumentMetaDataElement
                    449: {
1.244     vatton    450:   char      *initial_url;      /* if the server returns a different URL name
                    451:                                  after a redirection, we store here the one
                    452:                                  that the browser first asked */
                    453:   char      *form_data;        /* form data associated with a URL */
                    454:   char      *content_type;     /* content type returned by the server */
                    455:   char      *charset;          /* charset returned by the server */
                    456:   char      *content_length;   /* content length returned by the server */
                    457:   char      *content_location; /* simplified content location returned by the server */
                    458:   char      *full_content_location; /* full content location returned by the server */
1.166     cvs       459:   ClickEvent method;           /* method used to send this data */
1.135     cvs       460:   ThotBool   xmlformat;        /* the document should be exported in xml format */
1.144     kahan     461: #ifdef ANNOTATIONS
                    462:   Document   source_doc;       /* if the document is an annotation,
                    463:                                  this variable giveso the annoted document
                    464:                                  docid */
                    465: #endif /* ANNOTATIONS */
1.64      cvs       466: } DocumentMetaDataElement;
1.202     cvs       467: 
1.64      cvs       468: 
1.200     cvs       469: #define DocumentTableLength MAX_DOCUMENTS
1.110     cvs       470: /* URL of each loaded document */
1.198     cvs       471: THOT_EXPORT char                    *DocumentURLs[DocumentTableLength];
1.64      cvs       472: /* Any formdata associated with a URL */
                    473: THOT_EXPORT DocumentMetaDataElement *DocumentMeta[DocumentTableLength];
1.110     cvs       474: /* Type of document */
1.198     cvs       475: THOT_EXPORT DocumentType             DocumentTypes[DocumentTableLength];
1.166     cvs       476: /* Document is in read only mode */
1.198     cvs       477: THOT_EXPORT ThotBool                 ReadOnlyDocument[DocumentTableLength];
1.212     vatton    478: /* Document with section numbering */
                    479: THOT_EXPORT ThotBool                 SNumbering[DocumentTableLength];
1.236     vatton    480: /* Document that shows buttons */
                    481: THOT_EXPORT ThotBool                 SButtons[DocumentTableLength];
                    482: /* Document that shows address */
                    483: THOT_EXPORT ThotBool                 SAddress[DocumentTableLength];
1.213     vatton    484: /* Document that shows map areas */
                    485: THOT_EXPORT ThotBool                 MapAreas[DocumentTableLength];
1.110     cvs       486: /* identifier of the document displaying the source code */
1.198     cvs       487: THOT_EXPORT Document                 DocumentSource[DocumentTableLength];
1.110     cvs       488: /* The whole document is loaded when the corresponding entry in FilesLoading is 0 */
1.198     cvs       489: THOT_EXPORT int                      FilesLoading[DocumentTableLength];
1.110     cvs       490: /* Status (error, success) of the download of the objects of a document */
1.198     cvs       491: THOT_EXPORT int                      DocNetworkStatus[DocumentTableLength];
1.42      cvs       492: 
1.198     cvs       493: THOT_EXPORT Document                 W3Loading; /* the document being loaded */
                    494: THOT_EXPORT Document                 BackupDocument; /* the current backup */
1.243     vatton    495: /* list of previous open URLs */
                    496: #define MAX_URL_list 20
                    497: THOT_EXPORT char                    *URL_list;
                    498: THOT_EXPORT int                      URL_list_len;
1.244     vatton    499: THOT_EXPORT ThotBool                 URL_list_keep;
                    500: #ifdef _SVGLIB
                    501: THOT_EXPORT char                    *SVGlib_list;
                    502: #endif /* _SVGLIB */
1.104     cvs       503: 
                    504: /* button indexes */
                    505: THOT_EXPORT int iStop;
                    506: THOT_EXPORT int iBack;
                    507: THOT_EXPORT int iForward;
                    508: THOT_EXPORT int iReload;
                    509: THOT_EXPORT int iHome;
                    510: THOT_EXPORT int iEditor;
                    511: THOT_EXPORT int iSave;
                    512: THOT_EXPORT int iPrint;
                    513: THOT_EXPORT int iFind;
                    514: THOT_EXPORT int iI;
                    515: THOT_EXPORT int iB;
                    516: THOT_EXPORT int iT;
                    517: THOT_EXPORT int iImage;
                    518: THOT_EXPORT int iH1;
                    519: THOT_EXPORT int iH2;
                    520: THOT_EXPORT int iH3;
                    521: THOT_EXPORT int iBullet;
                    522: THOT_EXPORT int iNum;
                    523: THOT_EXPORT int iDL;
                    524: THOT_EXPORT int iLink;
                    525: THOT_EXPORT int iTable;
1.5       cvs       526: 
1.64      cvs       527: #define IMAGE_NOT_LOADED        0
1.1       cvs       528: #define IMAGE_LOCAL            1
                    529: #define IMAGE_LOADED           2
                    530: #define IMAGE_MODIFIED         3
                    531: 
1.109     cvs       532: 
1.198     cvs       533: typedef void (*LoadedImageCallback)(Document doc, Element el, char *file, void *extra);
1.5       cvs       534: typedef struct _ElemImage
                    535:   {
1.27      cvs       536:      Element             currentElement;/* first element using this image */
1.5       cvs       537:      struct _ElemImage  *nextElement;
1.27      cvs       538:      LoadedImageCallback callback;     /* Callback for non-standard handling */
                    539:      void              *extra;         /* any extra info for the CallBack */
1.5       cvs       540:   }
                    541: ElemImage;
                    542: 
                    543: typedef struct _LoadedImageDesc
                    544:   {
1.198     cvs       545:      char               *originalName;  /* complete URL of the image                */
1.247     kahan     546:      char               *localName;     /* relative name (without path) of the image   */
                    547:      char               *tempfile;      /* name of the file that stores the image    */ 
1.205     kahan     548:      char               *content_type;  /* the MIME type as sent by the server      */
1.58      cvs       549:      struct _LoadedImageDesc *prevImage;/* double linked list                       */
                    550:      struct _LoadedImageDesc *nextImage;/* easier to unchain                        */
                    551:      Document            document;     /* document concerned                       */
                    552:      struct _ElemImage  *elImage;      /* first element using this image           */
                    553:      int                 imageType;     /* the type of the image                    */
                    554:      int                 status;       /* the status of the image loading          */
1.5       cvs       555:   }
                    556: LoadedImageDesc;
1.109     cvs       557: 
                    558: /* the structure used for storing the context of the 
                    559:    FetchAndDisplayImages_callback function */
                    560: typedef struct _FetchImage_context {
1.198     cvs       561:   char               *base_url;
1.109     cvs       562:   LoadedImageDesc    *desc;
                    563: } FetchImage_context;
                    564: 
1.5       cvs       565: 
1.14      cvs       566: THOT_EXPORT LoadedImageDesc *ImageURLs;
1.31      cvs       567: THOT_EXPORT LoadedImageDesc *ImageLocal;
1.1       cvs       568: 
1.88      cvs       569: /* The default Amaya HOME pages (page shown at boot time */
1.198     cvs       570: #define AMAYA_PAGE  "AmayaPage.html"
                    571: #define AMAYA_PAGE_DOC  "http://www.w3.org/Amaya/User/"
1.137     cvs       572: 
                    573: #ifndef MAX_TXT_LEN
                    574: #define MAX_TXT_LEN 1024       /* Max. length of strings */
                    575: #endif  /* MAX_TXT_LEN */
1.88      cvs       576: 
1.226     kahan     577: /* a collection of the XML MIME types that keep changing and that we use in Amaya */
                    578: 
                    579: #define AM_XHTML_MIME_TYPE        "application/xhtml+xml"
1.229     kahan     580: #define AM_SVG_MIME_TYPE          "image/svg+xml"
1.226     kahan     581: #define AM_MATHML_MIME_TYPE       "application/mathml+xml"
                    582: #define AM_GENERIC_XML_MIME_TYPE  "text/xml"
                    583: 
1.231     cvs       584: 
                    585: /* Doctype declarations used in Amaya */
1.232     vatton    586: #define DOCTYPE1_HTML_STRICT          "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\""
                    587: #define DOCTYPE1_HTML_TRANSITIONAL    "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\""
                    588: #define DOCTYPE1_XHTML10_BASIC        "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML Basic 1.0//EN\""
                    589: #define DOCTYPE1_XHTML10_STRICT       "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
                    590: #define DOCTYPE1_XHTML11              "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\""
                    591: #define DOCTYPE1_XHTML11_PLUS_MATHML  "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN\""
1.235     quint     592: #define DOCTYPE1_XHTML11_PLUS_MATHML_PLUS_SVG  "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN\""
1.232     vatton    593: #define DOCTYPE1_XHTML10_TRANSITIONAL "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
                    594: #define DOCTYPE1_MATHML20             "<!DOCTYPE math PUBLIC \"-//W3C//DTD MathML 2.0//EN\""
                    595: #define DOCTYPE1_SVG10                "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.0//EN\""
1.231     cvs       596: 
1.232     vatton    597: #define DOCTYPE2_HTML_STRICT          "      \"http://www.w3.org/TR/html4/strict.dtd\">"
                    598: #define DOCTYPE2_HTML_TRANSITIONAL    "      \"http://www.w3.org/TR/html4/loose.dtd\">"
                    599: #define DOCTYPE2_XHTML10_BASIC        "      \"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd\">"
                    600: #define DOCTYPE2_XHTML10_STRICT       "      \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"
                    601: #define DOCTYPE2_XHTML11              "      \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">"
                    602: #define DOCTYPE2_XHTML11_PLUS_MATHML  "      \"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd\">"
                    603: #define DOCTYPE2_XHTML11_PLUS_MATHML_PLUS_SVG  "      \"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd\">"
                    604: #define DOCTYPE2_XHTML10_TRANSITIONAL "      \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
                    605: #define DOCTYPE2_MATHML20             "      \"http://www.w3.org/TR/MathML2/dtd/mathml2.dtd\">"
                    606: #define DOCTYPE2_SVG10                "      \"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">"
                    607: 
                    608: #define MATHML_XSLT_NAME     "pmathml.xsl"
1.235     quint     609: #define MATHML_XSLT_URI      "<!-- Processing Instruction generated by Amaya; the stylesheet is\n     available on the W3C site at http://www.w3.org/Math/XSL/pmathml.xsl -->\n<?xml-stylesheet type=\"text/xsl\" href=\""
1.231     cvs       610: 
1.25      cvs       611: #endif /* AMAYA_H */

Webmaster