-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+ V`20of`20Illinois`20`20`20`20`20`20`20* X`20*`20(UI),`20and`20ownership`20remains`20with`20the`20UI.`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20The`20UI`20grants`20you`20(hereafter,`20Licensee)`20a`20license`20to`20 Vuse`20the`20Software`20`20`20`20* X`20*`20for`20academic,`20research`20and`20internal`20business`20purposes`20onl Vy,`20without`20a`20`20`20`20* X`20*`20fee.`20`20Licensee`20may`20distribute`20the`20binary`20and`20source`20c Vode`20(if`20released)`20`20`20* X`20*`20to`20third`20parties`20provided`20that`20the`20copyright`20notice`20and V`20this`20statement`20`20`20* X`20*`20appears`20on`20all`20copies`20and`20that`20no`20charge`20is`20associate Vd`20with`20such`20`20`20`20`20`20`20`20`20* X`20*`20copies.`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20Licensee`20may`20make`20derivative`20works.`20`20However,`20if`20Licens Vee`20distributes`20`20`20`20* X`20*`20any`20derivative`20work`20based`20on`20or`20derived`20from`20the`20Soft Vware,`20then`20`20`20`20`20`20`20`20`20`20* X`20*`20Licensee`20will`20(1)`20notify`20NCSA`20regarding`20its`20distribution V`20of`20the`20`20`20`20`20`20`20`20`20`20* X`20*`20derivative`20work,`20and`20(2)`20clearly`20notify`20users`20that`20such V`20derivative`20`20`20`20`20`20`20* X`20*`20work`20is`20a`20modified`20version`20and`20not`20the`20original`20NCSA V`20Mosaic`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20distributed`20by`20the`20UI.`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20Any`20Licensee`20wishing`20to`20make`20commercial`20use`20of`20the`20So Vftware`20should`20`20`20`20`20`20`20* X`20*`20contact`20the`20UI,`20c/o`20NCSA,`20to`20negotiate`20an`20appropriate V`20license`20for`20such`20`20`20* X`20*`20commercial`20use.`20`20Commercial`20use`20includes`20(1)`20integration V`20of`20all`20or`20`20`20`20`20`20`20* X`20*`20part`20of`20the`20source`20code`20into`20a`20product`20for`20sale`20or V`20license`20by`20or`20on`20`20`20`20`20`20* X`20*`20behalf`20of`20Licensee`20to`20third`20parties,`20or`20(2)`20distributio Vn`20of`20the`20binary`20`20`20* X`20*`20code`20or`20source`20code`20to`20third`20parties`20that`20need`20it`20t Vo`20utilize`20a`20`20`20`20`20`20`20`20`20`20`20* X`20*`20commercial`20product`20sold`20or`20licensed`20by`20or`20on`20behalf`20o Vf`20Licensee.`20`20`20`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20UI`20MAKES`20NO`20REPRESENTATIONS`20ABOUT`20THE`20SUITABILITY`20OF`20TH VIS`20SOFTWARE`20FOR`20`20`20* X`20*`20ANY`20PURPOSE.`20`20IT`20IS`20PROVIDED`20"AS`20IS"`20WITHOUT`20EXPRESS V`20OR`20IMPLIED`20`20`20`20`20`20`20`20`20`20* X`20*`20WARRANTY.`20`20THE`20UI`20SHALL`20NOT`20BE`20LIABLE`20FOR`20ANY`20DAMAG VES`20SUFFERED`20BY`20THE`20`20`20`20* X`20*`20USERS`20OF`20THIS`20SOFTWARE.`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20By`20using`20or`20copying`20this`20Software,`20Licensee`20agrees`20to V`20abide`20by`20the`20`20`20`20`20`20`20* X`20*`20copyright`20law`20and`20all`20other`20applicable`20laws`20of`20the`20U. VS.`20including,`20but`20`20`20* X`20*`20not`20limited`20to,`20export`20control`20laws,`20and`20the`20terms`20of V`20this`20license.`20`20`20`20`20`20* X`20*`20UI`20shall`20have`20the`20right`20to`20terminate`20this`20license`20imm Vediately`20by`20`20`20`20`20`20`20`20`20* X`20*`20written`20notice`20upon`20Licensee's`20breach`20of,`20or`20non-complian Vce`20with,`20any`20`20`20`20* X`20*`20of`20its`20terms.`20`20Licensee`20may`20be`20held`20legally`20responsib Vle`20for`20any`20`20`20`20`20`20`20`20`20`20* X`20*`20copyright`20infringement`20that`20is`20caused`20or`20encouraged`20by`20 VLicensee's`20`20`20`20`20`20`20`20* X`20*`20failure`20to`20abide`20by`20the`20terms`20of`20this`20license.`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20Comments`20and`20questions`20are`20welcome`20and`20can`20be`20sent`20to V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20mosaic-x@ncsa.uiuc.edu.`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20* X`20*************************************************************************** V*/ X X#ifndef`20__MOSAIC_H__ X#define`20__MOSAIC_H__ X X/*`20---------------------------`20SYSTEM`20INCLUDES`20----------------------- V-----`20*/ X X#include`20 X#include`20 X#include`20 X#if`20!defined(VMS)`20`26`26`20!defined(NeXT) X#include`20 X#endif X#include`20 X#if`20defined(WIN_TCP) X#define`20__CADDR_T X#define`20__STAT`09`09`09/*`20works`20except`20with`20OLD`20versions`20of`20VA VX`20C`20*/ X#endif X#include`20 X X#ifdef`20__sgi X#include`20 X#endif X X#ifdef`20VMS X/*`20VMS`20does`20not`20permit`20long`20names,`20so`20to`20avoid`20compilation V`20warnings`20...`20*/ X/*`20A`20stupid_vms`20flag`20needed?`20*/ X#define`20mo_delete_position_from_default_hotlist`20mo_delete_position_from_de Vfault X#define`20mo_register_image_resolution_function`20`20`20mo_register_image_reso Vlution_fu X#define`20mo_set_image_cache_nuke_threshold`20`20`20`20`20`20`20mo_set_image_c Vache_nuke_thresho X#endif`20/*`20VMS,`20BSN`20*/ X X#include`20"Xmx.h" X X/*`20------------------------------------------------------------------------ V`20*/ X/*`20--------------------------------`20ICONS`20------------------------------ V---`20*/ X/*`20------------------------------------------------------------------------ V`20*/ X#define`20NUMBER_OF_FRAMES`0925 X X/*`20------------------------------------------------------------------------ V`20*/ X/*`20--------------------------------`20MACROS`20----------------------------- V---`20*/ X/*`20------------------------------------------------------------------------ V`20*/ X X#define`20MO_VERSION_STRING`20"2.0" X#define`20MO_HELP_ON_VERSION_DOCUMENT`20`5C X`20`20mo_assemble_help_url`20("help-on-version-2.0.html") X#define`20MO_DEVELOPER_ADDRESS`20"mosaic-x@ncsa.uiuc.edu" X X#ifndef`20DOCS_DIRECTORY_DEFAULT X#define`20DOCS_DIRECTORY_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs" X#endif X X#ifndef`20HOME_PAGE_DEFAULT X/*`20This`20must`20be`20a`20straight`20string`20as`20it`20is`20included`20into V`20a`20struct;`20 X`20`20`20no`20tricks.`20*/ X#define`20HOME_PAGE_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/NCSAMosaicHome.html" X#endif`20/*`20not`20HOME_PAGE_DEFAULT`20*/ X X#ifndef`20WHATSNEW_PAGE_DEFAULT X#define`20WHATSNEW_PAGE_DEFAULT`20`5C X`20`20mo_assemble_help_url`20("whats-new.html") X#endif`20/*`20not`20WHATSNEW_PAGE_DEFAULT`20*/ X X#ifndef`20DEMO_PAGE_DEFAULT X#define`20DEMO_PAGE_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/demoweb/demo.html" X#endif`20/*`20not`20DEMO_PAGE_DEFAULT`20*/ X X#ifndef`20HTMLPRIMER_PAGE_DEFAULT X#define`20HTMLPRIMER_PAGE_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html" X#endif`20/*`20not`20HTMLPRIMER_PAGE_DEFAULT`20*/ X X#ifndef`20URLPRIMER_PAGE_DEFAULT X#define`20URLPRIMER_PAGE_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/demoweb/url-primer.html" X#endif`20/*`20not`20URLPRIMER_PAGE_DEFAULT`20*/ X X#ifndef`20NETWORK_STARTING_POINTS_DEFAULT X#define`20NETWORK_STARTING_POINTS_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/StartingPoints/NetworkStar VtingPoints.html" X#endif`20/*`20not`20NETWORK_STARTING_POINTS_DEFAULT`20*/ X X#ifndef`20INTERNET_METAINDEX_DEFAULT X#define`20INTERNET_METAINDEX_DEFAULT`20`5C X`20`20"http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html" X#endif`20/*`20not`20INTERNET_METAINDEX_DEFAULT`20*/ X X#ifndef`20DOCUMENTS_MENU_SPECFILE X#define`20DOCUMENTS_MENU_SPECFILE`20`5C X`20`20"/usr/local/lib/mosaic/documents.menu" X#endif`20/*`20not`20DOCUMENTS_MENU_SPECFILE`20*/ X X#ifndef`20GLOBAL_EXTENSION_MAP X#define`20GLOBAL_EXTENSION_MAP`20"/usr/local/lib/mosaic/mime.types" X#endif X#ifndef`20GLOBAL_TYPE_MAP X#define`20GLOBAL_TYPE_MAP`20"/usr/local/lib/mosaic/mailcap" X#endif X X#if`20defined(__hpux) X#define`20MO_MACHINE_TYPE`20"HP-UX" X#endif X#if`20defined(__sgi) X#define`20MO_MACHINE_TYPE`20"Silicon`20Graphics" X#endif X#if`20defined(ultrix) X#define`20MO_MACHINE_TYPE`20"DEC`20Ultrix" X#endif X#if`20defined(_IBMR2) X#define`20MO_MACHINE_TYPE`20"RS/6000`20AIX" X#endif X#if`20defined(sun) X#define`20MO_MACHINE_TYPE`20"Sun" X#endif X#if`20defined(__alpha) X#define`20MO_MACHINE_TYPE`20"DEC`20Alpha" X#endif X#if`20defined(NEXT) X#define`20MO_MACHINE_TYPE`20"NeXT`20BSD" X#endif X#if`20defined(cray) X#define`20MO_MACHINE_TYPE`20"Cray" X#endif X#if`20defined(VMS) X#define`20MO_MACHINE_TYPE`20"VMS" X#endif X#if`20defined(NeXT) X#define`20MO_MACHINE_TYPE`20"NeXT" X#endif X#ifndef`20MO_MACHINE_TYPE X#define`20MO_MACHINE_TYPE`20"Unknown`20Platform" X#endif X X#ifdef`20__hpux X#define`20HAVE_AUDIO_ANNOTATIONS X#else X#if`20defined(__sgi)`20`7C`7C`20defined(sun) X#define`20HAVE_AUDIO_ANNOTATIONS X#endif`20/*`20if`20*/ X#endif`20/*`20ifdef`20*/ X X#ifdef`20__hpux X#define`20MO_SIGHANDLER_RETURNTYPE`20int X#else`20/*`20not`20__hpux`20*/ X#define`20MO_SIGHANDLER_RETURNTYPE`20void X#endif X X#ifdef`20ultrix X#define`20MO_SIGHANDLER_ARGS`20int`20sig X#else`20/*`20not`20ultrix`20*/ X#define`20MO_SIGHANDLER_ARGS`20void X#endif X X/*`20Be`20safe...`20some`20URL's`20get`20very`20long.`20*/ X#define`20MO_LINE_LENGTH`202048 X X#define`20MO_MAX(x,y)`20((x)`20>`20(y)`20?`20(x)`20:`20(y)) X#define`20MO_MIN(x,y)`20((x)`20>`20(y)`20?`20(y)`20:`20(x)) X X/*`20Use`20builtin`20strdup`20when`20appropriate`20--`20code`20duplicated`20in V`20tcp.h.`20*/ X#if`20defined(ultrix)`20`7C`7C`20defined(VMS)`20`7C`7C`20defined(NeXT) Xextern`20char`20*strdup`20(); X#endif X X#if`20defined(SYSV)`20`7C`7C`20defined(SVR4)`20`7C`7C`20defined(__svr4__)`20 V`7C`7C`20defined(VMS) X#define`20bcopy(source,`20dest,`20count)`20memcpy(dest,`20source,`20count) X#define`20bzero(b,`20len)`20memset(b,`200,`20len) X#endif X X#define`20public X#define`20private`20static X X/*`20------------------------------------------------------------------------ V`20*/ X/*`20------------------------------`20MAIN`20TYPES`20------------------------- V-----`20*/ X/*`20------------------------------------------------------------------------ V`20*/ X X/*`20------------------------------`20mo_window`20---------------------------- V---`20*/ X X/*`20mo_window`20contains`20everything`20related`20to`20a`20single`20Document V`20View X`20`20`20window,`20including`20subwindow`20details.`20*/ Xtypedef`20struct`20mo_window X`7B X`20`20int`20id; X`20`20Widget`20base; X X`20`20/*`20Subwindows.`20*/ X`20`20Widget`20source_win; X`20`20Widget`20save_win; X`20`20Widget`20savebinary_win;`20`20/*`20for`20binary`20transfer`20mode`20*/ X`20`20Widget`20open_win; X`20`20Widget`20mail_win; X`20`20Widget`20mailhot_win; X`20`20Widget`20edithot_win; X`20`20Widget`20mailhist_win; X`20`20Widget`20print_win; X`20`20Widget`20history_win; X`20`20Widget`20open_local_win; X`20`20Widget`20hotlist_win; X`20`20Widget`20whine_win; X`20`20Widget`20annotate_win; X`20`20Widget`20search_win;`20`20`20`20`20`20`20`20`20/*`20internal`20document V`20search`20*/ X`20`20Widget`20searchindex_win;`20`20`20`20/*`20network`20index`20search`20*/ V X#ifdef`20HAVE_DTM X`20`20Widget`20dtmout_win; X#endif X#ifdef`20HAVE_AUDIO_ANNOTATIONS X`20`20Widget`20audio_annotate_win; X#endif X X`20`20XmxMenuRecord`20*menubar; X`20`20Widget`20url_text; X`20`20Widget`20title_text; X X`20`20Widget`20searchindex_button;`20`20`20/*`20pushbutton,`20says`20"Search V`20Index"`20*/ X`20`20Widget`20searchindex_win_label,`20searchindex_win_text; X`20`20Widget`20searchindex_win_searchbut; X X`20`20Widget`20scrolled_win,`20view; X`20`20Widget`20bottom_form; X`20`20Widget`20tracker_label,`20logo; X`20`20Widget`20button_rc,`20back_button,`20forward_button,`20save_button, X`20`20`20`20clone_button,`20close_button,`20reload_button,`20open_button, X`20`20`20`20new_button; X X`20`20Widget`20home_button; X X`20`20int`20last_width; X X`20`20struct`20mo_node`20*history; X`20`20struct`20mo_node`20*current_node; X`20`20int`20reloading; X X`20`20char`20*target_anchor; X X`20`20/*`20Document`20source`20window.`20*/ X`20`20Widget`20source_text; X`20`20Widget`20source_url_text; X`20`20XmxMenuRecord`20*format_optmenu; X`20`20int`20save_format;`20/*`20starts`20at`200`20*/ X X`20`20Widget`20open_text; X X`20`20Widget`20mail_to_text; X`20`20Widget`20mail_subj_text; X`20`20XmxMenuRecord`20*mail_fmtmenu; X`20`20int`20mail_format; X X`20`20Widget`20mailhot_to_text; X`20`20Widget`20mailhot_subj_text; X`20`20Widget`20mailhist_to_text; X`20`20Widget`20mailhist_subj_text; X X`20`20Widget`20edithot_text; X`20`20int`20edithot_pos; X X`20`20Widget`20print_text; X`20`20XmxMenuRecord`20*print_fmtmenu; X`20`20int`20print_format; X X`20`20Widget`20history_list; X X`20`20Widget`20hotlist_list; X X`20`20Widget`20whine_text; X`20`20 X`20`20int`20font_size; X`20`20int`20pretty; X X`20`20int`20underlines_snarfed; X`20`20int`20underlines_state; X`20`20/*`20Default`20values`20only,`20mind`20you.`20*/ X`20`20int`20underlines; X`20`20int`20visited_underlines; X`20`20Boolean`20dashed_underlines; X`20`20Boolean`20dashed_visited_underlines; X X#ifdef`20HAVE_DTM X`20`20Widget`20dtmout_text; X#endif`20/*`20HAVE_DTM`20*/ X X#ifdef`20HAVE_AUDIO_ANNOTATIONS X`20`20Widget`20audio_start_button; X`20`20Widget`20audio_stop_button; X`20`20pid_t`20record_pid; X`20`20char`20*record_fnam; X#endif X X`20`20Widget`20annotate_author; +-+-+-+-+-+-+-+- END OF PART 4 +-+-+-+-+-+-+-+-