home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-08-15 | 49.7 KB | 1,342 lines | [TEXT/ALFA] |
- #=============================================================================
- #
- # htmlMenu.tcl (called from html.tcl)
- #
- # Part of HTML mode 1.2
- #
- # HTML elements definitions and HTML menu.
- #
- # Author: Johan Linde <jl@theophys.kth.se>
- #
- # If you make improvements to this file, please share them!
- #
- #=============================================================================
- #
-
- # Loading of package.
- proc htmlLoadPackage {level} {
- global htmlPackageToUse
- global HTMLmodeVars modifiedModeVars
-
- if {$level != $htmlPackageToUse} {
- set HTMLmodeVars(htmlPackageToUse) $level
- lappend modifiedModeVars {htmlPackageToUse HTMLmodeVars}
- message "Rebuilding HTML menuノ"
- htmlBuildMenu
- htmlUnbindKeys
- message "Done."
- }
- }
-
- # This proc is not used any more. It now gives a warning message if the user
- # call it to define new elements in HTMLprefs.tcl.
- proc htmlNewElemVar {{list ""} {var ""} {val ""}} {
- global htmlShownWarning
- if {![info exists htmlShownWarning]} {
- dialog -w 350 -h 290 -t "The way to add custom elements to HTML mode has changed."¥
- 10 10 340 45 ¥
- -t "New elements can now be added with the functions found in the submenu HTML Utilities¥
- -> Extend in the HTML menu. However, this submenu is disabled until you remove all¥
- your definitions of custom elements from HTMLPrefs.tcl and restart Alpha."¥
- 10 55 340 150¥
- -t "Select 'Help' from the HTML menu and then select 'Extending HTML mode' from the¥
- marks menu in the help file to read more about how to avoid this message and how¥
- to add new elements to HTML mode." 10 160 340 250¥
- -b OK 20 260 85 280
- set htmlShownWarning 1
- enableMenuItem "HTML Utilities" Extend off
- }
- }
-
- proc htmlSetAttrUsed {num elem used} {
- global htmlElemAttrUsed htmlElemAttrUsed3
- if {![info exists htmlElemAttrUsed${num}($elem)]} {set htmlElemAttrUsed${num}($elem) $used}
- }
-
- #
- # htmlElemAttrRequired: the per-element lists of all required attributes
- # htmlElemAttrOptional: the per-element lists of all optional attributes
- # htmlElemAttrChoices: element-specific attribute completions
- # htmlElemAttrNumber: the per-element list of attributes which are numbers.
- # htmlElemEventHandler: the per-element list of JavaScript's event handlers.
- # htmlElemAttrUsed: the per-element list of elements asked for in the status bar.
- #
- # htmlElemAttrOptional has to be defined for every element for everything
- # to work.
-
- #=============================================================================
- #
- # Extensions
- #
- #=============================================================================
-
- proc htmlExtensions {} {
- global htmlElemAttrRequired1 htmlElemAttrOptional1 htmlPlugins
- global htmlElemEventHandler1 htmlElemAttrChoices1 htmlElemAttrNumber1
-
- set htmlElemAttrOptional1(HTML) {}
- set htmlElemAttrOptional1(HEAD) {}
- set htmlElemAttrOptional1(TITLE) {}
- set htmlElemAttrOptional1(BODY) {BACKGROUND= BGCOLOR= TEXT= LINK= VLINK= ALINK=}
- set htmlElemEventHandler1(BODY) {onLoad= onUnload=}
- htmlSetAttrUsed "" BODY {BACKGROUND= BGCOLOR= TEXT= LINK= VLINK=}
-
- set htmlElemAttrOptional1(H1) {ALIGN= }
- set htmlElemAttrChoices1(H1) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" H1 {ALIGN=}
- set htmlElemAttrOptional1(H2) {ALIGN= }
- set htmlElemAttrChoices1(H2) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" H2 {ALIGN=}
- set htmlElemAttrOptional1(H3) {ALIGN= }
- set htmlElemAttrChoices1(H3) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" H3 {ALIGN=}
- set htmlElemAttrOptional1(H4) {ALIGN= }
- set htmlElemAttrChoices1(H4) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" H4 {ALIGN=}
- set htmlElemAttrOptional1(H5) {ALIGN= }
- set htmlElemAttrChoices1(H5) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" H5 {ALIGN=}
- set htmlElemAttrOptional1(H6) {ALIGN= }
- set htmlElemAttrChoices1(H6) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" H6 {ALIGN=}
-
- set htmlElemAttrOptional1(P) {ALIGN= }
- set htmlElemAttrChoices1(P) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" P {ALIGN=}
- set htmlElemAttrOptional1(BLOCKQUOTE) {}
- set htmlElemAttrOptional1(DIV) {ALIGN= }
- set htmlElemAttrChoices1(DIV) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed "" DIV {ALIGN=}
- set htmlElemAttrOptional1(ADDRESS) {}
- set htmlElemAttrOptional1(CENTER) {}
- set htmlElemAttrOptional1(PRE) {WIDTH= }
- set htmlElemAttrNumber1(PRE) {WIDTH=1:i:n}
- set htmlElemAttrRequired1(MULTICOL) {COLS=}
- set htmlElemAttrOptional1(MULTICOL) {GUTTER= WIDTH=}
- set htmlElemAttrNumber1(MULTICOL) {COLS=2:i:n GUTTER=0:i:n WIDTH=1:i:%}
- htmlSetAttrUsed "" MULTICOL {COLS= GUTTER= WIDTH=}
- set htmlElemAttrRequired1(SPACER) {TYPE=}
- set htmlElemAttrOptional1(SPACER) {SIZE= WIDTH= HEIGHT= ALIGN=}
- set htmlElemAttrNumber1(SPACER) {SIZE=1:i:n WIDTH=1:i:% HEIGHT=1:i:%}
- set htmlElemAttrChoices1(SPACER) {TYPE=HORIZONTAL TYPE=VERTICAL TYPE=BLOCK ALIGN=TOP
- ALIGN=MIDDLE ALIGN=BOTTOM ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE}
- htmlSetAttrUsed "" SPACER {TYPE= SIZE= WIDTH= HEIGHT= ALIGN=}
- set htmlElemAttrOptional1(BR) {CLEAR= }
- set htmlElemAttrChoices1(BR) {CLEAR=ALL CLEAR=LEFT CLEAR=RIGHT CLEAR=NONE}
- set htmlElemAttrOptional1(HR) {ALIGN= SIZE= WIDTH= NOSHADE}
- set htmlElemAttrChoices1(HR) {ALIGN=LEFT ALIGN=RIGHT ALIGN=CENTER}
- set htmlElemAttrNumber1(HR) {SIZE=1:i:n WIDTH=1:i:%}
- set htmlElemAttrOptional1(NOBR) {}
- set htmlElemAttrOptional1(WBR) {}
-
- set htmlElemAttrOptional1(FONT) {SIZE= COLOR= FACE=}
- set htmlElemAttrNumber1(FONT) {SIZE=1:7:n}
- htmlSetAttrUsed "" FONT {SIZE=}
- set htmlElemAttrRequired1(BASEFONT) {SIZE=}
- set htmlElemAttrOptional1(BASEFONT) {}
- set htmlElemAttrNumber1(BASEFONT) {SIZE=1:7:n}
- set htmlElemAttrOptional1(B) {}
- set htmlElemAttrOptional1(I) {}
- set htmlElemAttrOptional1(STRIKE) {}
- set htmlElemAttrOptional1(U) {}
- set htmlElemAttrOptional1(SUB) {}
- set htmlElemAttrOptional1(SUP) {}
- set htmlElemAttrOptional1(BIG) {}
- set htmlElemAttrOptional1(SMALL) {}
- set htmlElemAttrOptional1(EM) {}
- set htmlElemAttrOptional1(STRONG) {}
- set htmlElemAttrOptional1(DFN) {}
- set htmlElemAttrOptional1(CODE) {}
- set htmlElemAttrOptional1(VAR) {}
- set htmlElemAttrOptional1(CITE) {}
- set htmlElemAttrOptional1(KBD) {}
- set htmlElemAttrOptional1(TT) {}
- set htmlElemAttrOptional1(SAMP) {}
- set htmlElemAttrOptional1(BLINK) {}
-
- set htmlElemAttrOptional1(A) {HREF= NAME= TARGET= REL= REV= TITLE= }
- set htmlElemEventHandler1(A) {onClick= onMouseOver= onMouseOut=}
- htmlSetAttrUsed "" A {HREF= NAME=}
- set htmlElemAttrRequired1(IMG) {SRC=}
- set htmlElemAttrOptional1(IMG) {LOWSRC= WIDTH= HEIGHT= BORDER=
- ALIGN= ALT= HSPACE= VSPACE= USEMAP= ISMAP}
- set htmlElemAttrChoices1(IMG) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE}
- set htmlElemAttrNumber1(IMG) {BORDER=0:i:n WIDTH=1:i:% HEIGHT=1:i:%
- HSPACE=0:i:n VSPACE=0:i:n}
- set htmlElemEventHandler1(IMG) {onAbort= onError= onLoad=}
- htmlSetAttrUsed "" IMG {SRC= WIDTH= HEIGHT= ALIGN= ALT=}
-
- set htmlElemAttrRequired1(EMBED) {SRC= WIDTH= HEIGHT=}
- set htmlElemAttrOptional1(EMBED) {HSPACE= VSPACE= ALIGN=}
- set htmlElemAttrNumber1(EMBED) {WIDTH=1:i:n HEIGHT=1:i:n HSPACE=1:i:n VSPACE=1:i:n}
- set htmlElemAttrChoices1(EMBED) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE}
- set htmlElemAttrOptional1(NOEMBED) {}
- set htmlElemAttrRequired1(LIVEAUDIO) {SRC= WIDTH= HEIGHT=}
- set htmlElemAttrOptional1(LIVEAUDIO) {HSPACE= VSPACE= ALIGN= AUTOSTART= LOOP=}
- set htmlElemAttrNumber1(LIVEAUDIO) {WIDTH=1:i:n HEIGHT=1:i:n HSPACE=1:i:n VSPACE=1:i:n}
- set htmlElemAttrChoices1(LIVEAUDIO) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE
- AUTOSTART=TRUE AUTOSTART=FALSE LOOP=TRUE LOOP=FALSE}
- htmlSetAttrUsed "" LIVEAUDIO {SRC= WIDTH= HEIGHT= AUTOSTART= LOOP=}
- set htmlElemAttrRequired1(LIVEVIDEO) {SRC= WIDTH= HEIGHT=}
- set htmlElemAttrOptional1(LIVEVIDEO) {HSPACE= VSPACE= ALIGN= AUTOSTART= LOOP= CONTROLS=}
- set htmlElemAttrNumber1(LIVEVIDEO) {WIDTH=1:i:n HEIGHT=1:i:n HSPACE=1:i:n VSPACE=1:i:n}
- set htmlElemAttrChoices1(LIVEVIDEO) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE
- AUTOSTART=TRUE AUTOSTART=FALSE LOOP=TRUE LOOP=FALSE CONTROLS=TRUE CONTROLS=FALSE}
- htmlSetAttrUsed "" LIVEVIDEO {SRC= WIDTH= HEIGHT= AUTOSTART= LOOP= CONTROLS=}
- set htmlElemAttrRequired1([list QUICKTIME MOVIE]) {SRC= }
- set htmlElemAttrOptional1([list QUICKTIME MOVIE]) {WIDTH= HEIGHT= HSPACE= VSPACE= ALIGN=
- HIDDEN= AUTOPLAY= CONTROLLER= LOOP= PLAYEVERYFRAME= HREF= TARGET= PLUGINSPAGE=}
- set htmlElemAttrNumber1([list QUICKTIME MOVIE]) {WIDTH=1:i:n HEIGHT=1:i:n HSPACE=1:i:n VSPACE=1:i:n}
- set htmlElemAttrChoices1([list QUICKTIME MOVIE]) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE HIDDEN=TRUE HIDDEN=FALSE
- AUTOPLAY=TRUE AUTOPLAY=FALSE CONTROLLER=TRUE CONTROLLER=FALSE LOOP=TRUE LOOP=FALSE
- LOOP=PALINDROME PLAYEVERYFRAME=TRUE PLAYEVERYFRAME=FALSE}
- htmlSetAttrUsed "" "QUICKTIME MOVIE" {SRC= WIDTH= HEIGHT= HIDDEN= AUTOPLAY= CONTROLLER= LOOP=
- PLAYEVERYFRAME=}
- set htmlElemAttrRequired1([list QUICKTIME VR]) {SRC= WIDTH= HEIGHT=}
- set htmlElemAttrOptional1([list QUICKTIME VR]) {HSPACE= VSPACE= ALIGN= PAN= TILT= FOV=
- NODE= CORRECTION= PLUGINSPAGE=}
- set htmlElemAttrNumber1([list QUICKTIME VR]) {WIDTH=1:i:n HEIGHT=1:i:n
- HSPACE=1:i:n VSPACE=1:i:n PAN=0:360:n TILT=-360:360:n FOV=-360:360:n NODE=0:i:n}
- set htmlElemAttrChoices1([list QUICKTIME VR]) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE
- CORRECTION=NONE CORRECTION=PARTIAL CORRECTION=FULL}
- htmlSetAttrUsed "" "QUICKTIME VR" {SRC= WIDTH= HEIGHT= PAN= TILT= FOV=
- NODE= CORRECTION=}
- set htmlElemAttrRequired1(REALAUDIO) {SRC= WIDTH= HEIGHT=}
- set htmlElemAttrOptional1(REALAUDIO) {HSPACE= VSPACE= ALIGN= CONTROLS= AUTOSTART=
- NOLABELS= CONSOLE=}
- set htmlElemAttrNumber1(REALAUDIO) {WIDTH=1:i:n HEIGHT=1:i:n HSPACE=1:i:n VSPACE=1:i:n}
- set htmlElemAttrChoices1(REALAUDIO) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE ALIGN=BASELINE
- CONTROLS=ALL CONTROLS=CONTROLPANEL CONTROLS=INFOVOLUMEPANEL CONTROLS=INFOPANEL
- CONTROLS=STATUSBAR CONTROLS=PLAYBUTTON CONTROLS=STOPBUTTON CONTROLS=VOLUMESLIDER
- CONTROLS=POSITIONSLIDER CONTROLS=POSITIONFIELD CONTROLS=STATUSFIELD
- AUTOSTART=TRUE AUTOSTART=FALSE NOLABELS=TRUE NOLABELS=FALSE}
- htmlSetAttrUsed "" REALAUDIO {SRC= WIDTH= HEIGHT= CONTROLS= AUTOSTART=
- NOLABELS= CONSOLE=}
-
- set htmlElemAttrOptional1(UL) {TYPE= COMPACT}
- set htmlElemAttrChoices1(UL) {TYPE=DISC TYPE=CIRCLE TYPE=SQUARE}
- set htmlElemAttrOptional1([list LI IN UL]) {TYPE=}
- set htmlElemAttrChoices1([list LI IN UL]) {TYPE=DISC TYPE=CIRCLE TYPE=SQUARE}
- set htmlElemAttrOptional1(OL) {TYPE= START= COMPACT}
- set htmlElemAttrChoices1(OL) {TYPE=A TYPE=a TYPE=I TYPE=i TYPE=1}
- set htmlElemAttrNumber1(OL) {START=1:i:n}
- set htmlElemAttrOptional1([list LI IN OL]) {TYPE= VALUE=}
- set htmlElemAttrNumber1([list LI IN OL]) {VALUE=1:i:n}
- set htmlElemAttrChoices1([list LI IN OL]) {TYPE=A TYPE=a TYPE=I TYPE=i TYPE=1}
- set htmlElemAttrOptional1(DIR) {COMPACT}
- set htmlElemAttrOptional1(MENU) {COMPACT}
- set htmlElemAttrOptional1(LI) {}
- set htmlElemAttrOptional1(DL) {COMPACT}
- set htmlElemAttrOptional1(DT) {}
- set htmlElemAttrOptional1(DD) {}
-
- set htmlElemAttrOptional1(FORM) {ACTION= METHOD= ENCTYPE= TARGET= NAME=}
- set htmlElemAttrChoices1(FORM) {METHOD=POST METHOD=GET}
- set htmlElemEventHandler1(FORM) {onSubmit=}
- htmlSetAttrUsed "" FORM {ACTION= METHOD= }
- set htmlElemAttrRequired1(TEXT) {NAME=}
- set htmlElemAttrOptional1(TEXT) {VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrNumber1(TEXT) {SIZE=1:i:n MAXLENGTH=1:i:n}
- set htmlElemEventHandler1(TEXT) {onBlur= onChange= onFocus= onSelect=}
- htmlSetAttrUsed "" TEXT {NAME= VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrRequired1(CHECKBOX) {NAME= VALUE=}
- set htmlElemAttrOptional1(CHECKBOX) {CHECKED}
- set htmlElemEventHandler1(CHECKBOX) {onClick=}
- htmlSetAttrUsed "" CHECKBOX {NAME= VALUE= CHECKED}
- set htmlElemAttrRequired1(BUTTON) {VALUE=}
- set htmlElemAttrOptional1(BUTTON) {NAME=}
- set htmlElemEventHandler1(BUTTON) {onClick=}
- htmlSetAttrUsed "" BUTTON {VALUE= NAME=}
- set htmlElemAttrRequired1(RADIO) {NAME= VALUE=}
- set htmlElemAttrOptional1(RADIO) {CHECKED}
- set htmlElemEventHandler1(RADIO) {onClick=}
- htmlSetAttrUsed "" RADIO {NAME= VALUE= CHECKED}
- set htmlElemAttrOptional1(SUBMIT) {NAME= VALUE=}
- set htmlElemEventHandler1(SUBMIT) {onClick=}
- htmlSetAttrUsed "" SUBMIT {VALUE= }
- set htmlElemAttrOptional1(RESET) {VALUE= }
- set htmlElemEventHandler1(RESET) {onClick=}
- htmlSetAttrUsed "" RESET {VALUE= }
- set htmlElemAttrRequired1(PASSWORD) {NAME= }
- set htmlElemAttrOptional1(PASSWORD) {VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrNumber1(PASSWORD) {SIZE=1:i:n MAXLENGTH=1:i:n}
- htmlSetAttrUsed "" PASSWORD {NAME= VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrRequired1(HIDDEN) {NAME= VALUE=}
- set htmlElemAttrOptional1(HIDDEN) {}
- set htmlElemAttrRequired1(IMAGE) {NAME= SRC=}
- set htmlElemAttrOptional1(IMAGE) {ALIGN=}
- set htmlElemAttrChoices1(IMAGE) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT}
- set htmlElemAttrRequired1(FILE) {NAME= }
- set htmlElemAttrOptional1(FILE) {}
- set htmlElemAttrRequired1(SELECT) {NAME= }
- set htmlElemAttrOptional1(SELECT) {SIZE= MULTIPLE}
- set htmlElemAttrNumber1(SELECT) {SIZE=1:i:n}
- set htmlElemEventHandler1(SELECT) {onBlur= onChange= onFocus=}
- htmlSetAttrUsed "" SELECT {NAME= SIZE= MULTIPLE}
- set htmlElemAttrOptional1(OPTION) {VALUE= SELECTED}
- htmlSetAttrUsed "" OPTION {SELECTED}
- set htmlElemAttrRequired1(TEXTAREA) {NAME= ROWS= COLS=}
- set htmlElemAttrOptional1(TEXTAREA) {WRAP=}
- set htmlElemAttrNumber1(TEXTAREA) {ROWS=1:i:n COLS=1:i:n}
- set htmlElemAttrChoices1(TEXTAREA) {WRAP=VIRTUAL WRAP=PHYSICAL WRAP=OFF}
- set htmlElemEventHandler1(TEXTAREA) {onBlur= onChange= onFocus= onSelect=}
-
- set htmlElemAttrOptional1(TABLE) {BORDER= CELLSPACING= CELLPADDING= WIDTH=
- ALIGN= BGCOLOR=}
- set htmlElemAttrChoices1(TABLE) {ALIGN=LEFT ALIGN=CENTER ALIGN=RIGHT}
- set htmlElemAttrNumber1(TABLE) {BORDER=0:i:n CELLSPACING=0:i:n
- CELLPADDING=0:i:n WIDTH=1:i:%}
- htmlSetAttrUsed "" TABLE {BORDER= CELLSPACING= CELLPADDING=}
- set htmlElemAttrOptional1(TD) {ALIGN= VALIGN= COLSPAN= ROWSPAN= WIDTH= NOWRAP
- BGCOLOR=}
- set htmlElemAttrChoices1(TD) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT
- VALIGN=BASELINE VALIGN=BOTTOM VALIGN=MIDDLE VALIGN=TOP }
- set htmlElemAttrNumber1(TD) {COLSPAN=1:i:n ROWSPAN=1:i:n WIDTH=1:i:%}
- htmlSetAttrUsed "" TD {ALIGN= VALIGN= COLSPAN= ROWSPAN= NOWRAP}
- set htmlElemAttrOptional1(TH) {ALIGN= VALIGN= COLSPAN= ROWSPAN= WIDTH= NOWRAP
- BGCOLOR=}
- set htmlElemAttrChoices1(TH) {ALIGN=LEFT ALIGN=CENTER ALIGN=RIGHT
- VALIGN=BASELINE VALIGN=BOTTOM VALIGN=MIDDLE VALIGN=TOP }
- set htmlElemAttrNumber1(TH) {COLSPAN=1:i:n ROWSPAN=1:i:n WIDTH=1:i:%}
- htmlSetAttrUsed "" TH {ALIGN= VALIGN= COLSPAN= ROWSPAN= NOWRAP }
- set htmlElemAttrOptional1(TR) {ALIGN= VALIGN= BGCOLOR=}
- set htmlElemAttrChoices1(TR) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT
- VALIGN=BASELINE VALIGN=BOTTOM VALIGN=MIDDLE VALIGN=TOP }
- htmlSetAttrUsed "" TR {ALIGN= VALIGN=}
- set htmlElemAttrOptional1(CAPTION) {ALIGN=}
- set htmlElemAttrChoices1(CAPTION) {ALIGN=BOTTOM ALIGN=TOP }
- htmlSetAttrUsed "" CAPTION {ALIGN=}
-
- set htmlElemAttrOptional1(FRAMESET) {ROWS= COLS= FRAMEBORDER= BORDER= BORDERCOLOR=}
- set htmlElemAttrNumber1(FRAMESET) {BORDER=0:i:n}
- set htmlElemAttrChoices1(FRAMESET) {FRAMEBORDER=YES FRAMEBORDER=NO}
- set htmlElemEventHandler1(FRAMESET) {onLoad= onUnload=}
- htmlSetAttrUsed "" FRAMESET {ROWS= COLS=}
- set htmlElemAttrRequired1(FRAME) {SRC=}
- set htmlElemAttrOptional1(FRAME) {NAME= MARGINWIDTH= MARGINHEIGHT= SCROLLING=
- NORESIZE FRAMEBORDER= BORDERCOLOR=}
- set htmlElemAttrChoices1(FRAME) {SCROLLING=YES SCROLLING=NO SCROLLING=AUTO
- FRAMEBORDER=YES FRAMEBORDER=NO}
- set htmlElemAttrNumber1(FRAME) {MARGINWIDTH=1:i:n MARGINHEIGHT=1:i:n}
- htmlSetAttrUsed "" FRAME {SRC= NAME= }
- set htmlElemAttrOptional1(NOFRAMES) {}
-
- set htmlElemAttrRequired1(MAP) {NAME=}
- set htmlElemAttrOptional1(MAP) {}
- set htmlElemAttrOptional1(AREA) {SHAPE= COORDS= TARGET= HREF= NOHREF ALT=}
- set htmlElemAttrChoices1(AREA) {SHAPE=RECT SHAPE=CIRCLE SHAPE=POLY
- SHAPE=DEFAULT}
- set htmlElemEventHandler1(AREA) {onClick= onMouseOver= onMouseOut=}
- htmlSetAttrUsed "" AREA {SHAPE= COORDS= HREF= NOHREF}
-
- set htmlElemAttrRequired1(APPLET) {CODE= WIDTH= HEIGHT=}
- set htmlElemAttrOptional1(APPLET) {CODEBASE= HSPACE= VSPACE= ALIGN= NAME= ALT=}
- set htmlElemAttrChoices1(APPLET) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT ALIGN=TEXTTOP ALIGN=ABSMIDDLE
- ALIGN=BASELINE}
- set htmlElemAttrNumber1(APPLET) {VSPACE=0:i:n HSPACE=0:i:n WIDTH=1:i:n
- HEIGHT=1:i:n}
- htmlSetAttrUsed "" APPLET {CODE= WIDTH= HEIGHT= CODEBASE= ALIGN= }
- set htmlElemAttrRequired1(PARAM) {NAME= VALUE=}
- set htmlElemAttrOptional1(PARAM) {}
- set htmlElemAttrOptional1(SCRIPT) {LANGUAGE= SRC=}
- set htmlElemAttrChoices1(SCRIPT) {LANGUAGE=JAVASCRIPT}
- htmlSetAttrUsed "" SCRIPT {LANGUAGE=}
- set htmlElemAttrOptional1(NOSCRIPT) {}
-
- set htmlElemAttrOptional1(BASE) {HREF= TARGET=}
- htmlSetAttrUsed "" BASE {HREF= }
- set htmlElemAttrOptional1(ISINDEX) {ACTION= PROMPT=}
- set htmlElemAttrOptional1(LINK) {HREF= REL= REV= TITLE= ID=}
- htmlSetAttrUsed "" LINK {HREF=}
- set htmlElemAttrRequired1(META) {HTTP-EQUIV= CONTENT=}
- set htmlElemAttrOptional1(META) {NAME= }
- }
-
- #=============================================================================
- #
- # HTML 3.2
- #
- #=============================================================================
-
- proc html32 {} {
- global htmlElemAttrRequired3 htmlElemAttrOptional3
- global htmlElemAttrChoices3 htmlElemAttrNumber3
-
- set htmlElemAttrOptional3(HTML) {}
- set htmlElemAttrOptional3(HEAD) {}
- set htmlElemAttrOptional3(TITLE) {}
- set htmlElemAttrOptional3(BODY) {BACKGROUND= BGCOLOR= TEXT= LINK= VLINK= ALINK=}
- htmlSetAttrUsed 3 BODY {BACKGROUND= BGCOLOR= TEXT= LINK= VLINK=}
-
- set htmlElemAttrOptional3(H1) {ALIGN= }
- set htmlElemAttrChoices3(H1) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 H1 {ALIGN=}
- set htmlElemAttrOptional3(H2) {ALIGN= }
- set htmlElemAttrChoices3(H2) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 H2 {ALIGN=}
- set htmlElemAttrOptional3(H3) {ALIGN= }
- set htmlElemAttrChoices3(H3) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 H3 {ALIGN=}
- set htmlElemAttrOptional3(H4) {ALIGN= }
- set htmlElemAttrChoices3(H4) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 H4 {ALIGN=}
- set htmlElemAttrOptional3(H5) {ALIGN= }
- set htmlElemAttrChoices3(H5) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 H5 {ALIGN=}
- set htmlElemAttrOptional3(H6) {ALIGN= }
- set htmlElemAttrChoices3(H6) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 H6 {ALIGN=}
-
- set htmlElemAttrOptional3(P) {ALIGN= }
- set htmlElemAttrChoices3(P) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 P {ALIGN=}
- set htmlElemAttrOptional3(BLOCKQUOTE) {}
- set htmlElemAttrOptional3(DIV) {ALIGN= }
- set htmlElemAttrChoices3(DIV) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT}
- htmlSetAttrUsed 3 DIV {ALIGN=}
- set htmlElemAttrOptional3(ADDRESS) {}
- set htmlElemAttrOptional3(CENTER) {}
- set htmlElemAttrOptional3(PRE) {WIDTH= }
- set htmlElemAttrNumber3(PRE) {WIDTH=1:i:n}
- set htmlElemAttrOptional3(BR) {CLEAR= }
- set htmlElemAttrChoices3(BR) {CLEAR=ALL CLEAR=LEFT CLEAR=RIGHT CLEAR=NONE}
- set htmlElemAttrOptional3(HR) {ALIGN= SIZE= WIDTH= NOSHADE}
- set htmlElemAttrChoices3(HR) {ALIGN=LEFT ALIGN=RIGHT ALIGN=CENTER}
- set htmlElemAttrNumber3(HR) {SIZE=1:i:n WIDTH=1:i:%}
-
- set htmlElemAttrOptional3(FONT) {SIZE= COLOR=}
- set htmlElemAttrNumber3(FONT) {SIZE=1:7:n}
- htmlSetAttrUsed 3 FONT {SIZE=}
- set htmlElemAttrOptional3(B) {}
- set htmlElemAttrOptional3(I) {}
- set htmlElemAttrOptional3(STRIKE) {}
- set htmlElemAttrOptional3(U) {}
- set htmlElemAttrOptional3(SUB) {}
- set htmlElemAttrOptional3(SUP) {}
- set htmlElemAttrOptional3(BIG) {}
- set htmlElemAttrOptional3(SMALL) {}
- set htmlElemAttrOptional3(EM) {}
- set htmlElemAttrOptional3(STRONG) {}
- set htmlElemAttrOptional3(DFN) {}
- set htmlElemAttrOptional3(CODE) {}
- set htmlElemAttrOptional3(VAR) {}
- set htmlElemAttrOptional3(CITE) {}
- set htmlElemAttrOptional3(KBD) {}
- set htmlElemAttrOptional3(TT) {}
- set htmlElemAttrOptional3(SAMP) {}
-
- set htmlElemAttrOptional3(A) {HREF= NAME= REL= REV= TITLE= }
- htmlSetAttrUsed 3 A {HREF= NAME=}
- set htmlElemAttrRequired3(IMG) {SRC=}
- set htmlElemAttrOptional3(IMG) {WIDTH= HEIGHT= BORDER=
- ALIGN= ALT= HSPACE= VSPACE= USEMAP= ISMAP}
- set htmlElemAttrChoices3(IMG) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT}
- set htmlElemAttrNumber3(IMG) {BORDER=0:i:n WIDTH=1:i:n HEIGHT=1:i:n
- HSPACE=0:i:n VSPACE=0:i:n}
- htmlSetAttrUsed 3 IMG {SRC= WIDTH= HEIGHT= ALIGN= ALT=}
-
- set htmlElemAttrOptional3(UL) {TYPE= COMPACT}
- set htmlElemAttrChoices3(UL) {TYPE=DISC TYPE=CIRCLE TYPE=SQUARE}
- set htmlElemAttrOptional3([list LI IN UL]) {TYPE=}
- set htmlElemAttrChoices3([list LI IN UL]) {TYPE=DISC TYPE=CIRCLE TYPE=SQUARE}
- set htmlElemAttrOptional3(OL) {TYPE= START= COMPACT}
- set htmlElemAttrChoices3(OL) {TYPE=A TYPE=a TYPE=I TYPE=i TYPE=1}
- set htmlElemAttrNumber3(OL) {START=1:i:n}
- set htmlElemAttrOptional3([list LI IN OL]) {TYPE= VALUE=}
- set htmlElemAttrNumber3([list LI IN OL]) {VALUE=1:i:n}
- set htmlElemAttrChoices3([list LI IN OL]) {TYPE=A TYPE=a TYPE=I TYPE=i TYPE=1}
- set htmlElemAttrOptional3(DIR) {COMPACT}
- set htmlElemAttrOptional3(MENU) {COMPACT}
- set htmlElemAttrOptional3(LI) {}
- set htmlElemAttrOptional3(DL) {COMPACT}
- set htmlElemAttrOptional3(DT) {}
- set htmlElemAttrOptional3(DD) {}
-
- set htmlElemAttrOptional3(FORM) {ACTION= METHOD= ENCTYPE= }
- set htmlElemAttrChoices3(FORM) {METHOD=POST METHOD=GET}
- htmlSetAttrUsed 3 FORM {ACTION= METHOD= }
- set htmlElemAttrRequired3(TEXT) {NAME=}
- set htmlElemAttrOptional3(TEXT) {VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrNumber3(TEXT) {SIZE=1:i:n MAXLENGTH=1:i:n}
- htmlSetAttrUsed 3 TEXT {NAME= VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrRequired3(CHECKBOX) {NAME= VALUE=}
- set htmlElemAttrOptional3(CHECKBOX) {CHECKED}
- htmlSetAttrUsed 3 CHECKBOX {NAME= VALUE= CHECKED}
- set htmlElemAttrRequired3(RADIO) {NAME= VALUE=}
- set htmlElemAttrOptional3(RADIO) {CHECKED}
- htmlSetAttrUsed 3 RADIO {NAME= VALUE= CHECKED}
- set htmlElemAttrOptional3(SUBMIT) {NAME= VALUE=}
- htmlSetAttrUsed 3 SUBMIT {VALUE= }
- set htmlElemAttrOptional3(RESET) {VALUE= }
- htmlSetAttrUsed 3 RESET {VALUE= }
- set htmlElemAttrRequired3(PASSWORD) {NAME= }
- set htmlElemAttrOptional3(PASSWORD) {VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrNumber3(PASSWORD) {SIZE=1:i:n MAXLENGTH=1:i:n}
- htmlSetAttrUsed 3 PASSWORD {NAME= VALUE= SIZE= MAXLENGTH=}
- set htmlElemAttrRequired3(HIDDEN) {NAME= VALUE=}
- set htmlElemAttrOptional3(HIDDEN) {}
- set htmlElemAttrRequired3(IMAGE) {NAME= SRC=}
- set htmlElemAttrOptional3(IMAGE) {ALIGN=}
- set htmlElemAttrChoices3(IMAGE) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT}
- set htmlElemAttrRequired3(FILE) {NAME= }
- set htmlElemAttrOptional3(FILE) {}
- set htmlElemAttrRequired3(SELECT) {NAME= }
- set htmlElemAttrOptional3(SELECT) {SIZE= MULTIPLE}
- set htmlElemAttrNumber3(SELECT) {SIZE=1:i:n}
- htmlSetAttrUsed 3 SELECT {NAME= SIZE= MULTIPLE}
- set htmlElemAttrOptional3(OPTION) {VALUE= SELECTED}
- htmlSetAttrUsed 3 OPTION {SELECTED}
- set htmlElemAttrRequired3(TEXTAREA) {NAME= ROWS= COLS=}
- set htmlElemAttrOptional3(TEXTAREA) {}
- set htmlElemAttrNumber3(TEXTAREA) {ROWS=1:i:n COLS=1:i:n}
-
- set htmlElemAttrOptional3(TABLE) {BORDER= CELLSPACING= CELLPADDING= WIDTH=
- ALIGN=}
- set htmlElemAttrChoices3(TABLE) {ALIGN=LEFT ALIGN=CENTER ALIGN=RIGHT}
- set htmlElemAttrNumber3(TABLE) {BORDER=0:i:n CELLSPACING=0:i:n
- CELLPADDING=0:i:n WIDTH=1:i:%}
- htmlSetAttrUsed 3 TABLE {BORDER= CELLSPACING= CELLPADDING=}
- set htmlElemAttrOptional3(TD) {ALIGN= VALIGN= COLSPAN= ROWSPAN= NOWRAP}
- set htmlElemAttrChoices3(TD) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT
- VALIGN=BASELINE VALIGN=BOTTOM VALIGN=MIDDLE VALIGN=TOP }
- set htmlElemAttrNumber3(TD) {COLSPAN=1:i:n ROWSPAN=1:i:n}
- htmlSetAttrUsed 3 TD {ALIGN= VALIGN= COLSPAN= ROWSPAN= NOWRAP}
- set htmlElemAttrOptional3(TH) {ALIGN= VALIGN= COLSPAN= ROWSPAN= NOWRAP}
- set htmlElemAttrChoices3(TH) {ALIGN=LEFT ALIGN=CENTER ALIGN=RIGHT
- VALIGN=BASELINE VALIGN=BOTTOM VALIGN=MIDDLE VALIGN=TOP }
- set htmlElemAttrNumber3(TH) {COLSPAN=1:i:n ROWSPAN=1:i:n}
- htmlSetAttrUsed 3 TH {ALIGN= VALIGN= COLSPAN= ROWSPAN= NOWRAP }
- set htmlElemAttrOptional3(TR) {ALIGN= VALIGN= }
- set htmlElemAttrChoices3(TR) {ALIGN=CENTER ALIGN=RIGHT ALIGN=LEFT
- VALIGN=BASELINE VALIGN=BOTTOM VALIGN=MIDDLE VALIGN=TOP }
- htmlSetAttrUsed 3 TR {ALIGN= VALIGN=}
- set htmlElemAttrOptional3(CAPTION) {ALIGN=}
- set htmlElemAttrChoices3(CAPTION) {ALIGN=BOTTOM ALIGN=TOP }
- htmlSetAttrUsed 3 CAPTION {ALIGN=}
-
- set htmlElemAttrRequired3(MAP) {NAME=}
- set htmlElemAttrOptional3(MAP) {}
- set htmlElemAttrOptional3(AREA) {SHAPE= COORDS= HREF= NOHREF ALT=}
- set htmlElemAttrChoices3(AREA) {SHAPE=RECT SHAPE=CIRCLE SHAPE=POLY
- SHAPE=DEFAULT}
- htmlSetAttrUsed 3 AREA {SHAPE= COORDS= HREF= NOHREF}
-
- set htmlElemAttrRequired3(APPLET) {CODE= WIDTH= HEIGHT=}
- set htmlElemAttrOptional3(APPLET) {CODEBASE= HSPACE= VSPACE= ALIGN= NAME= ALT=}
- set htmlElemAttrChoices3(APPLET) {ALIGN=TOP ALIGN=MIDDLE ALIGN=BOTTOM
- ALIGN=LEFT ALIGN=RIGHT}
- set htmlElemAttrNumber3(APPLET) {VSPACE=0:i:n HSPACE=0:i:n WIDTH=1:i:n
- HEIGHT=1:i:n}
- htmlSetAttrUsed 3 APPLET {CODE= WIDTH= HEIGHT= CODEBASE= ALIGN= }
- set htmlElemAttrRequired3(PARAM) {NAME= VALUE=}
- set htmlElemAttrOptional3(PARAM) {}
-
- set htmlElemAttrRequired3(BASE) {HREF= }
- set htmlElemAttrOptional3(BASE) {}
- set htmlElemAttrOptional3(ISINDEX) {PROMPT=}
- set htmlElemAttrOptional3(LINK) {HREF= REL= REV= TITLE= ID=}
- htmlSetAttrUsed 3 LINK {HREF=}
- set htmlElemAttrRequired3(META) {HTTP-EQUIV= CONTENT=}
- set htmlElemAttrOptional3(META) {NAME= }
- }
-
-
- #
- # Character entities
- #
- proc htmlNewCharVar {var val} {
- global htmlSpecialCharacter
- global htmlCharacterSpecial
- set htmlSpecialCharacter($var) $val
- set htmlCharacterSpecial($val) $var
- }
-
- proc htmlNewCapCharVar {var men val} {
- global htmlSpecialCapCharacter
- global htmlCapCharacterSpecial
- global htmlCapCharSpecMenu
- set htmlSpecialCapCharacter($var) $val
- set htmlCapCharacterSpecial($val) $var
- set htmlCapCharSpecMenu($men) $val
- }
-
- htmlNewCharVar "ァ" szlig
- htmlNewCharVar "" agrave
- htmlNewCharVar "" aacute
- htmlNewCharVar "" acirc
- htmlNewCharVar "" atilde
- htmlNewCharVar "" auml
- htmlNewCharVar "" aring
- htmlNewCharVar "セ" aelig
- htmlNewCharVar "" ccedil
- htmlNewCharVar "" egrave
- htmlNewCharVar "" eacute
- htmlNewCharVar "" ecirc
- htmlNewCharVar "" euml
- htmlNewCharVar "" igrave
- htmlNewCharVar "" iacute
- htmlNewCharVar "" icirc
- htmlNewCharVar "" iuml
- htmlNewCharVar "eth" eth
- htmlNewCharVar "" ntilde
- htmlNewCharVar "" ograve
- htmlNewCharVar "" oacute
- htmlNewCharVar "" ocirc
- htmlNewCharVar "" otilde
- htmlNewCharVar "" ouml
- htmlNewCharVar "ソ" oslash
- htmlNewCharVar "" ugrave
- htmlNewCharVar "" uacute
- htmlNewCharVar "" ucirc
- htmlNewCharVar "" uuml
- htmlNewCharVar "yォ" yacute
- htmlNewCharVar "thorn" thorn
- htmlNewCharVar "リ" yuml
-
- htmlNewCapCharVar "ヒ" "ヒ" Agrave
- htmlNewCapCharVar "ç" "Aォ" Aacute
- htmlNewCapCharVar "å" "A^" Acirc
- htmlNewCapCharVar "フ" "フ" Atilde
- htmlNewCapCharVar "\" "\" Auml
- htmlNewCapCharVar "" "" Aring
- htmlNewCapCharVar "ョ" "ョ" Aelig
- htmlNewCapCharVar "" "" Ccedil
- htmlNewCapCharVar "é" "E`" Egrave
- htmlNewCapCharVar "" "" Eacute
- htmlNewCapCharVar "æ" "E^" Ecirc
- htmlNewCapCharVar "è" "Eャ" Euml
- htmlNewCapCharVar "í" "I`" Igrave
- htmlNewCapCharVar "ê" "Iォ" Iacute
- htmlNewCapCharVar "ë" "I^" Icirc
- htmlNewCapCharVar "ì" "Iャ" Iuml
- htmlNewCapCharVar "ETH" "ETH" ETH
- htmlNewCapCharVar "" "" Ntilde
- htmlNewCapCharVar "ñ" "O`" Ograve
- htmlNewCapCharVar "î" "Oォ" Oacute
- htmlNewCapCharVar "ï" "O^" Ocirc
- htmlNewCapCharVar "ヘ" "ヘ" Otilde
- htmlNewCapCharVar "
" "
" Ouml
- htmlNewCapCharVar "ッ" "ッ" Oslash
- htmlNewCapCharVar "ô" "U`" Ugrave
- htmlNewCapCharVar "ò" "Uォ" Uacute
- htmlNewCapCharVar "ó" "U^" Ucirc
- htmlNewCapCharVar "" "" Uuml
- htmlNewCapCharVar "Yォ" "Yォ" Yacute
- htmlNewCapCharVar "THORN" "THORN" THORN
-
- set htmlSpecialSymbCharacter(¥") quot
- set htmlSpecialSymbCharacter(ampersand) amp
- set htmlSpecialSymbCharacter([list less than]) lt
- set htmlSpecialSymbCharacter([list greater than]) gt
- set htmlSpecialSymbCharacter([list nonbreak space]) nbsp
- set htmlSpecialSymbCharacter(チ) "#161"
- set htmlSpecialSymbCharacter(「) "#162"
- set htmlSpecialSymbCharacter(」) "#163"
- set htmlSpecialSymbCharacter(currency) "#164"
- set htmlSpecialSymbCharacter(エ) "#165"
- set htmlSpecialSymbCharacter(、) "#167"
- set htmlSpecialSymbCharacter(ゥ) copy
- set htmlSpecialSymbCharacter(サ) "#170"
- set htmlSpecialSymbCharacter(ヌ) "#171"
- set htmlSpecialSymbCharacter(ィ) reg
- set htmlSpecialSymbCharacter(。) "#176"
- set htmlSpecialSymbCharacter(ア) "#177"
- set htmlSpecialSymbCharacter(オ) "#181"
- set htmlSpecialSymbCharacter(ヲ) "#182"
- set htmlSpecialSymbCharacter(middot) "#183"
- set htmlSpecialSymbCharacter(シ) "#186"
- set htmlSpecialSymbCharacter(ネ) "#187"
- set htmlSpecialSymbCharacter([list a quarter]) "#188"
- set htmlSpecialSymbCharacter([list a half]) "#189"
- set htmlSpecialSymbCharacter([list three quarters]) "#190"
- set htmlSpecialSymbCharacter(タ) "#191"
- set htmlSpecialSymbCharacter(times) "#215"
- set htmlSpecialSymbCharacter(ヨ) "#247"
-
- #
- # Colors for background, text and links
- #
-
- proc htmlNewColor {var val } {
- global htmlColorName
- global htmlColorNumber
- set htmlColorName($var) $val
- set htmlColorNumber($val) $var
- }
- htmlNewColor blue "#0000FF"
- htmlNewColor green "#00FF00"
- htmlNewColor black "#000000"
- htmlNewColor red "#FF0000"
- htmlNewColor yellow "#FFFF00"
- htmlNewColor white "#FFFFFF"
- htmlNewColor cyan "#00FFFF"
- htmlNewColor magenta "#FF00FF"
-
- # A list of colours
- set basicColors [lsort [array names htmlColorName]]
-
-
- #===============================================================================
- # Menu Processing
- #===============================================================================
-
- proc htmlMenuItem {menu item} {
- global htmlMenu HOME htmlElemProc
-
- switch -glob $menu {
- "・*" {
- switch $item {
- "New document" {htmlNewTemplate BODY}
- "Send file to browser" {htmlSendWindow}
- "Help" {edit -r -c "$HOME:Help:HTML Help"}
- "Palette" { float -m $htmlMenu -n HTML -z HTML }
- }
- }
- "Packages" {
- switch $item {
- "HTML 3.2" {htmlLoadPackage 3}
- "Extensions" {htmlLoadPackage 1}
- }
- }
- "HTML Utilities" {
- switch $item {
- "Select Container" {htmlBalance}
- "Select Opening" {htmlSelectOpening 0}
- "Untag" {htmlUnTag 0}
- "Untag and Select" {htmlUnTag 1}
- "Remove Opening" {htmlSelectOpening 1}
- "Change Container" {htmlChangeContainer}
- "Change Opening" {htmlChangeOpening}
- "Move files" {htmlMoveFiles}
- "Remove marks" {htmlTabDeleteAll}
- "Set Server URL" {htmlServerURL}
- }
- }
- "Colors" {
- switch $item {
- "Reveal color" {htmlRevealColor}
- "New color" {htmlAddNewColor}
- "Change color" {htmlChangeColor}
- "Remove colors" {htmlRemoveColors}
- }
- }
- "Character translation" {
- switch $item {
- "穴 -> HTML" {htmlCharacterstohtml}
- "HTML -> 穴" {htmltoCharacters}
- }
- }
- "URLs" {
- switch $item {
- "Add selection" {htmlSelToURL}
- "Add clipboard" {htmlScrapToURL}
- "Clean up" {htmlCleanUpCache URLs}
- "Clear" {htmlClearCache URLs}
- }
- }
- "Windows" {
- switch $item {
- "Clean up" {htmlCleanUpCache windows}
- "Clear" {htmlClearCache windows}
- }
- }
- "Footers" {
- switch $item {
- "New Footer" {htmlFooter}
- "Remove Footers" {htmlRemoveFooter}
- "Insert Footer" {htmlInsertFooter}
- }
- }
- "Check Links in" {
- switch $item {
- "home page" {htmlCheckLinks "home"}
- "folder" {htmlCheckLinks "folder"}
- "file" {htmlCheckLinks "file"}
- }
- }
- "Extend" {
- switch $item {
- "New element" {htmlCustomNewElem}
- "New attributes" {htmlCustomNewAttr}
- "New choices" {htmlCustomNewChoice}
- "Change key binding" {htmlCustomChangeKey}
- "Change type and layout" {htmlCustomChangeType}
- "Remove attributes" {htmlCustomRemoveAttrs}
- "Remove additions" {htmlCustomRemove}
- }
- }
- "Use Attributes" {
- htmlUseAttrs $item
- }
- "Headers" {
- switch $item {
- "Header1" {htmlBuildCRElem H1 1}
- "H1 no attr" {htmlBuildCRElem H1 1 NOATTR}
- "Header2" {htmlBuildCRElem H2 1}
- "H2 no attr" {htmlBuildCRElem H2 1 NOATTR}
- "Header3" {htmlBuildCRElem H3 1}
- "H3 no attr" {htmlBuildCRElem H3 1 NOATTR}
- "Header4" {htmlBuildCRElem H4 1}
- "H4 no attr" {htmlBuildCRElem H4 1 NOATTR}
- "Header5" {htmlBuildCRElem H5 1}
- "H5 no attr" {htmlBuildCRElem H5 1 NOATTR}
- "Header6" {htmlBuildCRElem H6 1}
- "H6 no attr" {htmlBuildCRElem H6 1 NOATTR}
- }
- }
- "Blocks and Dividers" {
- switch $item {
- "Insert line breaks" {htmlInsertLineBreaks}
- "Remove line breaks" {htmlRemoveLineBreaks}
- "Insert paragraphs" {htmlInsertParagraphs}
- "Paragraph" {htmlElemParagraph}
- "P no attr" {htmlElemParagraph NOATTR}
- "Division" {htmlBuildCR2Elem DIV}
- "DIV no attr" {htmlBuildCR2Elem DIV NOATTR}
- "Block quote" {htmlBuildCR2Elem BLOCKQUOTE}
- "Address" {htmlBuildCRElem ADDRESS}
- "Center" {htmlBuildCR2Elem CENTER}
- "Preformatted" {htmlBuildCR2Elem PRE}
- "Multi column" {htmlBuildCR2Elem MULTICOL}
- "Spacing" {htmlBuildOpening SPACER}
- "Line break" {htmlBuildOpening BR 0 1}
- "BR no attr" {htmlBuildOpening BR 0 1 NOATTR}
- "Horizontal rule" {htmlBuildOpening HR 1 1}
- "HR no attr" {htmlBuildOpening HR 1 1 NOATTR}
- "No linebreak" {htmlBuildElem NOBR}
- "Word break" {htmlBuildOpening WBR 0 1}
- }
- }
- "Styles" {
- switch $item {
- "Font" {htmlBuildElem FONT}
- "Basefont" {htmlBuildOpening BASEFONT 1 1}
- "Bold" {htmlBuildElem B}
- "Italic" {htmlBuildElem I}
- "Strike out" {htmlBuildElem STRIKE}
- "Underlined" {htmlBuildElem U}
- "Subscript" {htmlBuildElem SUB}
- "Superscript" {htmlBuildElem SUP}
- "Bigger" {htmlBuildElem BIG}
- "Smaller" {htmlBuildElem SMALL}
- "Emphasis" {htmlBuildElem EM}
- "Strong" {htmlBuildElem STRONG}
- "Definition" {htmlBuildElem DFN}
- "Code" {htmlBuildElem CODE}
- "Variable" {htmlBuildElem VAR}
- "Citation" {htmlBuildElem CITE}
- "Keyboard" {htmlBuildElem KBD}
- "Typewriter" {htmlBuildElem TT}
- "Sample" {htmlBuildElem SAMP}
- "Blinking" {htmlBuildElem BLINK}
- }
- }
- "Links" {
- switch $item {
- "Link or Anchor" {htmlBuildElem A}
- "Image" {htmlBuildOpening IMG}
- "Embed" {htmlBuildOpening EMBED}
- "No embed" {htmlBuildCR2Elem NOEMBED}
- }
- }
- "Plug-ins" {
- switch $item {
- "General" {htmlBuildOpening EMBED}
- "LiveAudio" {htmlBuildOpening EMBED 0 0 LIVEAUDIO}
- "LiveVideo" {htmlBuildOpening EMBED 0 0 LIVEVIDEO}
- "QuickTime Movie" {htmlBuildOpening EMBED 0 0 "QUICKTIME MOVIE"}
- "QuickTime VR" {htmlBuildOpening EMBED 0 0 "QUICKTIME VR"}
- "RealAudio" {htmlBuildOpening EMBED 0 0 REALAUDIO}
- "No embed" {htmlBuildCR2Elem NOEMBED}
- }
- }
- "Lists" {
- switch $item {
- "Make list" {htmlMakeList}
- "Bulleted" {htmlBuildList UL "LI IN UL" UL}
- "UL no attr" {htmlBuildList UL NOATTR NOATTR}
- "New bulleted item" {htmlElemListEntry "LI IN UL"}
- "Numbered" {htmlBuildList OL "LI IN OL" OL}
- "OL no attr" {htmlBuildList OL NOATTR NOATTR}
- "New numbered item" {htmlElemListEntry "LI IN OL"}
- "Directory" {htmlBuildList DIR LI}
- "Menu" {htmlBuildList MENU LI}
- "New list item" {htmlElemListEntry LI}
- "Discursive" {htmlBuildDiscList}
- "New discursive entry" {htmlElemDiscEntry}
- }
- }
- "Forms" {
- switch $item {
- "Form" {htmlBuildCR2Elem FORM}
- "Text" {htmlBuildInputElem TEXT}
- "Checkbox" {htmlBuildInputElem CHECKBOX}
- "Button" {htmlBuildInputElem BUTTON}
- "Radio" {htmlBuildInputElem RADIO}
- "Submit" {htmlBuildInputElem SUBMIT}
- "Reset" {htmlBuildInputElem RESET}
- "Password" {htmlBuildInputElem PASSWORD}
- "Hidden" {htmlBuildInputElem HIDDEN}
- "Image" {htmlBuildInputElem IMAGE}
- "File upload" {htmlBuildInputElem FILE}
- "Select" {htmlBuildCR2Elem SELECT}
- "Option" {htmlBuildOpening OPTION 1 0}
- "Textarea" {htmlBuildCRElem TEXTAREA}
- }
- }
- "Tables" {
- switch $item {
- "Table template" {htmlTableTemplate}
- "Tabs to Rows" {htmltabsToRows}
- "Rows to Tabs" {htmlrowsToTabs}
- Table {htmlBuildCR2Elem TABLE}
- Row {htmlBuildCR2Elem TR}
- "TR no attr" {htmlBuildCR2Elem TR NOATTR}
- Header {htmlBuildElem TH}
- "TH no attr" {htmlBuildElem TH NOATTR}
- Cell {htmlBuildElem TD}
- "TD no attr" {htmlBuildElem TD NOATTR}
- Caption {htmlBuildCRElem CAPTION}
- }
- }
- "Frames" {
- switch $item {
- "New doc. with frames" {htmlNewTemplate FRAMESET}
- Frameset {htmlBuildCR2Elem FRAMESET}
- Frame {htmlBuildOpening FRAME 0 1}
- "No frames" {htmlBuildCR2Elem NOFRAMES}
- }
- }
- "Image maps" {
- switch $item {
- Map {htmlBuildCR2Elem MAP}
- Area {htmlBuildOpening AREA 0 1}
- }
- }
- "Java" {
- switch $item {
- Applet {htmlBuildCR2Elem APPLET}
- Parameter {htmlBuildOpening PARAM 0 1}
- Script {htmlBuildCR2Elem SCRIPT}
- "No script" {htmlBuildCR2Elem NOSCRIPT}
- }
- }
- "Other" {
- switch $item {
- "Comment" {htmlElemComment}
- "Base" {htmlBuildOpening BASE 1 1}
- "Isindex" {htmlBuildOpening ISINDEX 1 1}
- "Link" {htmlBuildOpening LINK 1 1}
- "Meta" {htmlBuildOpening META 1 1}
- "Comment line" {htmlDividingLine}
- }
- }
- "Character Entities" {
- switch $item {
- "Add" {htmlAddCommonChars}
- "Default" {htmlDefaultCommonChars}
- "Clear" {htmlClearCommonChars}
- default {htmlInsertCharacter $item}
- }
- }
- "small chars" {
- switch $item {
- default {htmlInsertCharacter $item}
- }
- }
- "capital chars" {
- switch $item {
- default {htmlInsertCharacter $item}
- }
- }
- "other chars" {
- switch $item {
- default {htmlInsertCharacter $item}
- }
- }
- "Custom" {
- catch {eval $htmlElemProc([string toupper $item])}
- }
- }
- }
-
- #
- # The menu.
- #
- # This is built up with lappends because I want parts of it to be
- # dynamic, to depend on which elements have attributes defined on
- # them.
- #
- # <B = control <I = option <U = shift <O = command <S = dynamical
-
- proc htmlBuildMenu {} {
- global htmlCustomMenuList htmlPackageToUse modifiedModeVars
- global htmlMenu HTMLmodeVars htmlSpecialCharacter
- global htmlCapCharSpecMenu htmlSpecialSymbCharacter
- global htmlExtIsLoaded html32IsLoaded htmlElemKeyBinding
- global htmlShownWarning htmlElemAttrOptional1 htmlElemAttrOptional3
-
- set commonChars $HTMLmodeVars(commonChars)
- # htmlPackageToUse must be set here. It's used globally in many places.
- set htmlPackageToUse $HTMLmodeVars(htmlPackageToUse)
- # Check if user used HTML 2.0!
- if {[lsearch -exact {1 3} $htmlPackageToUse] < 0} {
- set htmlPackageToUse 3
- set HTMLmodeVars(htmlPackageToUse) 3
- lappend modifiedModeVars {htmlPackageToUse HTMLmodeVars}
- }
-
- if {$htmlPackageToUse == 1} {
- if {!$htmlExtIsLoaded} {
- htmlExtensions
- set htmlExtIsLoaded 1
- rename htmlExtensions ""
- }
- } else {
- if {!$html32IsLoaded} {
- html32
- set html32IsLoaded 1
- rename html32 ""
- }
- }
-
- # start empty
- set htmlMenuList {}
-
- lappend htmlMenuList "<O<U/SSend file to browser" "Help" "Palette"
-
- # Packages
- set htmlPackagesMenu [list menu -M HTML -p htmlMenuItem -m -n Packages ¥
- [list "HTML 3.2" "Extensions" ]]
- lappend htmlMenuList $htmlPackagesMenu
-
- #===============================================================================
- # Utilities
- #===============================================================================
-
- # Colors
- set htmlColorMenu [list menu -M HTML -p htmlMenuItem -m -n "Colors" ¥
- [list "<O<B<U/CReveal color" "New color" "Change color" "Remove colors"]]
- lappend tmpMenuList $htmlColorMenu
-
- # Character conversion
- set htmlConvertMenu [list menu -M HTML -p htmlMenuItem -m -n "Character translation" ¥
- [list "穴 -> HTML" "HTML -> 穴" ]]
- lappend tmpMenuList $htmlConvertMenu
-
- # URLs
- set htmlURLsMenu [list menu -M HTML -p htmlMenuItem -m -n "URLs" [list "Add selection" ¥
- "Add clipboard" "Clean up" "Clear"]]
- lappend tmpMenuList $htmlURLsMenu
-
- # Windows
- set htmlWinMenu [list menu -M HTML -p htmlMenuItem -m -n "Windows" [list ¥
- "Clean up" "Clear"]]
- lappend tmpMenuList $htmlWinMenu
-
- # Footers
- set htmlFooterMenu [list menu -M HTML -p htmlMenuItem -m -n "Footers" ¥
- [list "New Footer" "Remove Footers" "Insert Footer"]]
- lappend tmpMenuList $htmlFooterMenu
-
- # Check links
- set htmlCheckLinkMenu [list menu -M HTML -p htmlMenuItem -m -n "Check Links in" ¥
- [list "home page" "folder" "file"]]
- lappend tmpMenuList $htmlCheckLinkMenu
-
- # Extending HTML mode.
- if {$htmlPackageToUse == 1} {
- set htmlExtendMenu [list menu -M HTML -p htmlMenuItem -m -n "Extend" ¥
- [list "New element" "New attributes" "New choices" "Change key binding" ¥
- "Change type and layout" "Remove attributes" "Remove additions"]]
- lappend tmpMenuList $htmlExtendMenu
- }
-
- set htmlUtilitiesMenu [list menu -M HTML -p htmlMenuItem -m ¥
- -n "HTML Utilities" [concat $tmpMenuList ¥
- [list "(-" "<S<O/BSelect Container" "<S<O<I/BSelect Opening" ¥
- "<S<B/eUntag" "<S<B<I/eUntag and Select" "<B/fRemove Opening" ¥
- "<S<B/gChange Container" "<S<B<I/gChange Opening" "<O/cRemove marks" "(-" "Move files" ¥
- "(-" "Set Server URL"]]]
- lappend htmlMenuList $htmlUtilitiesMenu
-
-
- # Use Attributes
- # Dynamically-built list of elements whose default attributes can be selected
-
- foreach a [array names htmlElemAttrOptional$htmlPackageToUse] {
- if {[llength [set htmlElemAttrOptional${htmlPackageToUse}($a)]]} {lappend htmlPossibleToUse $a}
- }
- set htmlUseAttrsMenu [list menu -M HTML -p htmlMenuItem -m -n "Use Attributes" ¥
- [lsort $htmlPossibleToUse]]
- lappend htmlMenuList $htmlUseAttrsMenu
-
-
- # New document
- lappend htmlMenuList "(-" "<B<U<I/DNew document"
-
- # Header1, Header2...
- set htmlHeadersMenu [list menu -M HTML -p htmlMenuItem -m -n Headers ¥
- [list "<S<B<O/1Header1" "<S<B<I<O/1H1 no attr" ¥
- "<S<B<O/2Header2" "<S<B<I<O/2H2 no attr" ¥
- "<S<B<O/3Header3" "<S<B<I<O/3H3 no attr"¥
- "<S<B<O/4Header4" "<S<B<I<O/4H4 no attr"¥
- "<S<B<O/5Header5" "<S<B<I<O/5H5 no attr" ¥
- "<S<B<O/6Header6" "<S<B<I<O/6H6 no attr"]]
-
- lappend htmlMenuList $htmlHeadersMenu
-
-
- # Blocks and Dividers
- if {$htmlPackageToUse == 1} {
- set htmlBlocksMenu [list menu -M HTML -p htmlMenuItem -m -n "Blocks and Dividers" ¥
- [list "<E<SRemove line breaks" "<SInsert line breaks" ¥
- "Insert paragraphs" "(-" ¥
- "<S<U/bParagraph" "<S<U<I/bP no attr" ¥
- "<E<S<U<O/bDivision" "<S<U<I<O/bDIV no attr" ¥
- "<B<O/QBlock quote" "<B<O/SAddress" ¥
- "<B<O/CCenter" "<B<O/PPreformatted" "<B<O/XMulti column" "<B<O/ZSpacing" ¥
- "(-" "<S<O/bLine break" "<S<I<O/bBR no attr" ¥
- "<S<B<O/HHorizontal rule" "<S<B<I<O/HHR no attr" ¥
- "<B<O/BNo linebreak" "<B<O/WWord break"]]
- } else {
- set htmlBlocksMenu [list menu -M HTML -p htmlMenuItem -m -n "Blocks and Dividers" ¥
- [list "<E<SRemove line breaks" "<SInsert line breaks" ¥
- "Insert paragraphs" "(-" ¥
- "<S<U/bParagraph" "<S<U<I/bP no attr" ¥
- "<E<S<U<O/bDivision" "<S<U<I<O/bDIV no attr" ¥
- "<B<O/QBlock quote" "<B<O/SAddress" ¥
- "<B<O/CCenter" "<B<O/PPreformatted" ¥
- "(-" "<S<O/bLine break" "<S<I<O/bBR no attr" ¥
- "<S<B<O/HHorizontal rule" "<S<B<I<O/HHR no attr"]]
- }
-
- lappend htmlMenuList $htmlBlocksMenu
-
-
- # Styles
- if {$htmlPackageToUse ==1} {
- set htmlStylesMenu [list menu -M HTML -p htmlMenuItem -m -n Styles ¥
- [list "<B<I/FFont" "<B<I/NBasefont" "(-" "<B<I/BBold" "<B<I/IItalic" ¥
- "<B<I/-Strike out" "<B<I<O/-Underlined" "<B<I/.Superscript" "<B<I/,Subscript"¥
- "<O<B<I/.Bigger" "<O<B<I/,Smaller" "<B<I/TTypewriter" "<B<I/ZBlinking" ¥
- "(-" "<B<I/EEmphasis" "<B<I/SStrong" ¥
- "<B<I/DDefinition" "<B<I/CCode" "<B<I/VVariable" ¥
- "<B<I/XCitation" "<B<I/KKeyboard" ¥
- "<B<I/PSample"]]
- } else {
- set htmlStylesMenu [list menu -M HTML -p htmlMenuItem -m -n Styles ¥
- [list "<B<I/FFont" "(-" "<B<I/BBold" "<B<I/IItalic" ¥
- "<B<I/-Strike out" "<B<I<O/-Underlined" "<B<I/.Superscript" "<B<I/,Subscript"¥
- "<O<B<I/.Bigger" "<O<B<I/,Smaller" "<B<I/TTypewriter" "(-" "<B<I/EEmphasis"¥
- "<B<I/SStrong" "<B<I/DDefinition" "<B<I/CCode" "<B<I/VVariable" ¥
- "<B<I/XCitation" "<B<I/KKeyboard" ¥
- "<B<I/PSample" ]]
- }
-
- lappend htmlMenuList $htmlStylesMenu
-
-
- # Links
- set htmlLinksMenu [list menu -M HTML -p htmlMenuItem -m -n Links ¥
- [list "<B<O/ALink or Anchor" ¥
- "<B<O/IImage" ]]
-
- lappend htmlMenuList $htmlLinksMenu
-
- # Plug-ins
- if {$htmlPackageToUse == 1} {
- set htmlPluginMenu [list menu -M HTML -p htmlMenuItem -m -n Plug-ins ¥
- [list "<B<O/EGeneral" "LiveAudio" "LiveVideo" "QuickTime Movie" ¥
- "QuickTime VR" "RealAudio" (- "<B<O/NNo embed"]]
- lappend htmlMenuList $htmlPluginMenu
- }
-
- # Lists
- set htmlListsMenu [list menu -M HTML -p htmlMenuItem -m -n Lists ¥
- [list "Make list" "(-" "<S<B<O/UBulleted" "<S<B<I<O/UUL no attr" ¥
- "<B<I/UNew bulleted item" "<S<B<O/ONumbered" "<S<B<I<O/OOL no attr"¥
- "<B<I/ONew numbered item" "<B<O/DDirectory" ¥
- "<B<O/MMenu" "<B<I/LNew list item" "(-" ¥
- "<U<B<O/DDiscursive" "<B<I<O/LNew discursive entry"]]
-
- lappend htmlMenuList $htmlListsMenu
-
-
- # Forms
- if {$htmlPackageToUse == 1} {
- set htmlFormsMenu [list menu -M HTML -p htmlMenuItem -m -n Forms ¥
- [list "<B<U/FForm" "(-" "<B<U/TText" "<B<U/BCheckbox" "<B<U/NButton" ¥
- "<B<U/RRadio" "<B<U/SSubmit" ¥
- "<B<U/CReset" "<B<U/PPassword" "<B<U/HHidden" "<B<U/IImage" "<B<U/UFile upload" ¥
- "(-" "<B<I<U/SSelect" "<B<U/OOption" "<B<U<I/TTextarea"]]
- } else {
- set htmlFormsMenu [list menu -M HTML -p htmlMenuItem -m -n Forms ¥
- [list "<B<U/FForm" "(-" "<B<U/TText" "<B<U/BCheckbox" ¥
- "<B<U/RRadio" "<B<U/SSubmit" ¥
- "<B<U/CReset" "<B<U/PPassword" "<B<U/HHidden" "<B<U/IImage" "<B<U/UFile upload" ¥
- "(-" "<B<I<U/SSelect" "<B<U/OOption" "<B<U<I/TTextarea"]]
- }
-
- lappend htmlMenuList $htmlFormsMenu
-
-
- # Tables
- set htmlTablesMenu [list menu -M HTML -p htmlMenuItem -m -n Tables ¥
- [list "Table template" "<E<SRows to Tabs" "<STabs to Rows" "(-" ¥
- "<U<O/TTable" "<S<U<O/RRow" "<S<U<I<O/RTR no attr" ¥
- "<S<U<O/HHeader" "<S<U<I<O/HTH no attr" ¥
- "<S<U<O/DCell" "<S<U<I<O/DTD no attr" "<U<O/CCaption"]]
- lappend htmlMenuList $htmlTablesMenu
-
-
- # Frames
- if {$htmlPackageToUse == 1} {
- set htmlFramesMenu [list menu -M HTML -p htmlMenuItem -m -n Frames ¥
- [list "<B<U<I/FNew doc. with frames" "<B<U<I/OFrameset" ¥
- "<B<U<I/RFrame" "<B<U<I/NNo frames"]]
- lappend htmlMenuList $htmlFramesMenu
- }
-
-
- # Client-side image maps
- set htmlImageMenu [list menu -M HTML -p htmlMenuItem -m -n "Image maps" ¥
- [list "<B<U/MMap" "<B<U/AArea"]]
- lappend htmlMenuList $htmlImageMenu
-
-
- # Java
- if {$htmlPackageToUse == 1} {
- set htmlJavaMenu [list menu -M HTML -p htmlMenuItem -m -n "Java" ¥
- [list "<U<I<O/JApplet" "<U<I<O/PParameter" "<U<I<O/SScript" "<U<I<O/NNo script"]]
- lappend htmlMenuList $htmlJavaMenu
- } else {
- set htmlJavaMenu [list menu -M HTML -p htmlMenuItem -m -n "Java" ¥
- [list "<U<I<O/JApplet" "<U<I<O/PParameter"]]
- lappend htmlMenuList $htmlJavaMenu
- }
-
- # Other stuff, miscellaneous
- set htmlOtherMenu [list menu -M HTML -p htmlMenuItem -m -n "Other" ¥
- [list "<B<U<I/CComment" ¥
- "<B<U<I/BBase" "<B<U<I/IIsindex" "<B<U<I/LLink" "<B<U<I/MMeta" ¥
- "Comment line"]]
- lappend htmlMenuList $htmlOtherMenu
-
- # Allow user to insert custom menu items
-
- if {$htmlPackageToUse == 1 && [info exists htmlElemKeyBinding]} {
- foreach elem [lsort [array names htmlElemKeyBinding]] {
- lappend customMenuList "$htmlElemKeyBinding($elem)[string range $elem 0 0][string tolower [string range $elem 1 end]]"
- }
- set htmlCustomMenu [list menu -M HTML -p htmlMenuItem -m -n "Custom" $customMenuList]
- lappend htmlMenuList $htmlCustomMenu
- }
-
- # Show alert if user uses old way of defining custom elements.
- if {[info exists htmlCustomMenuList]} {htmlNewElemVar}
-
- # Character entities
- foreach a [array names htmlSpecialCharacter] {
- lappend htmlCharacters $a
- }
- foreach a [array names htmlCapCharSpecMenu] {
- lappend htmlCapCharacters $a
- }
- foreach a [array names htmlSpecialSymbCharacter] {
- lappend htmlSymbCharacters $a
- }
-
- set htmlSmallCharsMenu [list menu -M HTML -p htmlMenuItem -m -n "small chars" ¥
- [lsort $htmlCharacters ]]
- set htmlCapCharsMenu [list menu -M HTML -p htmlMenuItem -m -c -n "capital chars" ¥
- [lsort $htmlCapCharacters ]]
- set htmlSymbCharsMenu [list menu -M HTML -p htmlMenuItem -m -n "other chars" ¥
- [lsort $htmlSymbCharacters ]]
- set tmp $commonChars
- if {[llength $commonChars]} {lappend tmp "(-"}
- lappend tmp Add Default Clear $htmlSmallCharsMenu $htmlCapCharsMenu $htmlSymbCharsMenu
- set htmlCharsMenu [list menu -M HTML -p htmlMenuItem -m -n "Character Entities" $tmp]
- lappend htmlMenuList $htmlCharsMenu
-
-
-
- # Put it all together
- menu -M HTML -m -p htmlMenuItem -n $htmlMenu $htmlMenuList
- insertMenu $htmlMenu
- if {$htmlPackageToUse == 1} {
- markMenuItem -m {Packages} {Extensions} 1
- } else {
- markMenuItem -m {Packages} {HTML 3.2} 1
- }
- if {[info exists htmlShownWarning]} {enableMenuItem "HTML Utilities" Extend off}
- if {$HTMLmodeVars(useBigWindows)} {
- enableMenuItem $htmlMenu "Use Attributes" off
- }
- }
-
-
- #===============================================================================
- # Key Bindings
- #===============================================================================
-
- proc htmlBindKeys {} {
- global HTMLmodeVars
-
- catch {deleteModeBindings HTML}
-
- # tabs to tabmarks (・)
- bind '¥t' htmlTabNext HTML
- bind '¥t' <s> htmlTabPrev HTML
-
- bind ',' <zso> {htmlInsertCharacter "less than"} HTML
- bind '.' <zso> {htmlInsertCharacter "greater than"} HTML
- bind '7' <zso> {htmlInsertCharacter ampersand} HTML
-
- # bindings for JavaScript
- bind '¥{' <s> electricLeft HTML
- bind '¥}' <s> electricRight HTML
-
- # Comment line
- bind 'l' <C> htmlDividingLine HTML
- }
-
- # Unbinding of keys not used in the smaller packages.
- proc htmlUnbindKeys {} {
- global htmlPackageToUse htmlElemKeyBinding
-
- if {$htmlPackageToUse == 3} {
- unbind 'f' <zso> {} HTML
- unbind 'o' <zso> {} HTML
- unbind 'r' <zso> {} HTML
- unbind 'n' <zso> {} HTML
- unbind 'e' <zc> {} HTML
- unbind 'n' <zc> {} HTML
- foreach elem [array names htmlElemKeyBinding] {
- set keystr $htmlElemKeyBinding($elem)
- if {[string length $keystr]} {
- set key [string tolower [string range $keystr [expr [string length $keystr] - 1] end]]
- set mods ""
- foreach m [split [string range $keystr 1 [expr [string length $keystr] - 3]] < ] {
- if {$m == "B"} {append mods z}
- if {$m == "I"} {append mods o}
- if {$m == "U"} {append mods s}
- if {$m == "O"} {append mods c}
- }
- catch {unbind '$key' <$mods> {} HTML}
- }
- }
- }
- }
-