File:  [LON-CAPA] / loncom / html / htmlarea / popups / Attic / old_insert_image.html
Revision 1.1: download - view: text, annotated - select for diffs
Wed Feb 18 08:07:16 2004 UTC (20 years, 6 months ago) by www
Branches: MAIN
CVS tags: version_2_5_X, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, HEAD
Install HTMLArea

    1: <!-- based on insimage.dlg -->
    2: 
    3: <!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML 3.2//EN">
    4: <HTML  id=dlgImage STYLE="width: 432px; height: 194px; ">
    5: <HEAD>
    6: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    7: <meta http-equiv="MSThemeCompatible" content="Yes">
    8: <TITLE>Insert Image</TITLE>
    9: <style>
   10:   html, body, button, div, input, select, fieldset { font-family: MS Shell Dlg; font-size: 8pt; position: absolute; };
   11: </style>
   12: <SCRIPT defer>
   13: 
   14: function _CloseOnEsc() {
   15:   if (event.keyCode == 27) { window.close(); return; }
   16: }
   17: 
   18: function _getTextRange(elm) {
   19:   var r = elm.parentTextEdit.createTextRange();
   20:   r.moveToElementText(elm);
   21:   return r;
   22: }
   23: 
   24: window.onerror = HandleError
   25: 
   26: function HandleError(message, url, line) {
   27:   var str = "An error has occurred in this dialog." + "\n\n"
   28:   + "Error: " + line + "\n" + message;
   29:   alert(str);
   30:   window.close();
   31:   return true;
   32: }
   33: 
   34: function Init() {
   35:   var elmSelectedImage;
   36:   var htmlSelectionControl = "Control";
   37:   var globalDoc = window.dialogArguments;
   38:   var grngMaster = globalDoc.selection.createRange();
   39:   
   40:   // event handlers  
   41:   document.body.onkeypress = _CloseOnEsc;
   42:   btnOK.onclick = new Function("btnOKClick()");
   43: 
   44:   txtFileName.fImageLoaded = false;
   45:   txtFileName.intImageWidth = 0;
   46:   txtFileName.intImageHeight = 0;
   47: 
   48:   if (globalDoc.selection.type == htmlSelectionControl) {
   49:     if (grngMaster.length == 1) {
   50:       elmSelectedImage = grngMaster.item(0);
   51:       if (elmSelectedImage.tagName == "IMG") {
   52:         txtFileName.fImageLoaded = true;
   53:         if (elmSelectedImage.src) {
   54:           txtFileName.value          = elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/, "$1");  // fix placeholder src values that editor converted to abs paths
   55:           txtFileName.intImageHeight = elmSelectedImage.height;
   56:           txtFileName.intImageWidth  = elmSelectedImage.width;
   57:           txtVertical.value          = elmSelectedImage.vspace;
   58:           txtHorizontal.value        = elmSelectedImage.hspace;
   59:           txtBorder.value            = elmSelectedImage.border;
   60:           txtAltText.value           = elmSelectedImage.alt;
   61:           selAlignment.value         = elmSelectedImage.align;
   62:         }
   63:       }
   64:     }
   65:   }
   66:   txtFileName.value = txtFileName.value || "http://";
   67:   txtFileName.focus();
   68: }
   69: 
   70: function _isValidNumber(txtBox) {
   71:   var val = parseInt(txtBox);
   72:   if (isNaN(val) || val < 0 || val > 999) { return false; }
   73:   return true;
   74: }
   75: 
   76: function btnOKClick() {
   77:   var elmImage;
   78:   var intAlignment;
   79:   var htmlSelectionControl = "Control";
   80:   var globalDoc = window.dialogArguments;
   81:   var grngMaster = globalDoc.selection.createRange();
   82:   
   83:   // error checking
   84: 
   85:   if (!txtFileName.value || txtFileName.value == "http://") { 
   86:     alert("Image URL must be specified.");
   87:     txtFileName.focus();
   88:     return;
   89:   }
   90:   if (txtHorizontal.value && !_isValidNumber(txtHorizontal.value)) {
   91:     alert("Horizontal spacing must be a number between 0 and 999.");
   92:     txtHorizontal.focus();
   93:     return;
   94:   }
   95:   if (txtBorder.value && !_isValidNumber(txtBorder.value)) {
   96:     alert("Border thickness must be a number between 0 and 999.");
   97:     txtBorder.focus();
   98:     return;
   99:   }
  100:   if (txtVertical.value && !_isValidNumber(txtVertical.value)) {
  101:     alert("Vertical spacing must be a number between 0 and 999.");
  102:     txtVertical.focus();
  103:     return;
  104:   }
  105: 
  106:   // delete selected content and replace with image
  107:   if (globalDoc.selection.type == htmlSelectionControl && !txtFileName.fImageLoaded) {
  108:     grngMaster.execCommand('Delete');
  109:     grngMaster = globalDoc.selection.createRange();
  110:   }
  111:     
  112:   idstr = "\" id=\"556e697175657e537472696e67";     // new image creation ID
  113:   if (!txtFileName.fImageLoaded) {
  114:     grngMaster.execCommand("InsertImage", false, idstr);
  115:     elmImage = globalDoc.all['556e697175657e537472696e67'];
  116:     elmImage.removeAttribute("id");
  117:     elmImage.removeAttribute("src");
  118:     grngMaster.moveStart("character", -1);
  119:   } else {
  120:     elmImage = grngMaster.item(0);
  121:     if (elmImage.src != txtFileName.value) {
  122:       grngMaster.execCommand('Delete');
  123:       grngMaster = globalDoc.selection.createRange();
  124:       grngMaster.execCommand("InsertImage", false, idstr);
  125:       elmImage = globalDoc.all['556e697175657e537472696e67'];
  126:       elmImage.removeAttribute("id");
  127:       elmImage.removeAttribute("src");
  128:       grngMaster.moveStart("character", -1);
  129:       txtFileName.fImageLoaded = false;
  130:     }
  131:     grngMaster = _getTextRange(elmImage);
  132:   }
  133: 
  134:   if (txtFileName.fImageLoaded) {
  135:     elmImage.style.width = txtFileName.intImageWidth;
  136:     elmImage.style.height = txtFileName.intImageHeight;
  137:   }
  138: 
  139:   if (txtFileName.value.length > 2040) {
  140:     txtFileName.value = txtFileName.value.substring(0,2040);
  141:   }
  142:   
  143:   elmImage.src = txtFileName.value;
  144:   
  145:   if (txtHorizontal.value != "") { elmImage.hspace = parseInt(txtHorizontal.value); }
  146:   else                           { elmImage.hspace = 0; }
  147: 
  148:   if (txtVertical.value != "") { elmImage.vspace = parseInt(txtVertical.value); }
  149:   else                         { elmImage.vspace = 0; }
  150:   
  151:   elmImage.alt = txtAltText.value;
  152: 
  153:   if (txtBorder.value != "") { elmImage.border = parseInt(txtBorder.value); }
  154:   else                       { elmImage.border = 0; }
  155: 
  156:   elmImage.align = selAlignment.value;
  157:   grngMaster.collapse(false);
  158:   grngMaster.select();
  159:   window.close();
  160: }
  161: </SCRIPT>
  162: </HEAD>
  163: <BODY id=bdy onload="Init()" style="background: threedface; color: windowtext;" scroll=no>
  164: 
  165: <DIV id=divFileName style="left: 0.98em; top: 1.2168em; width: 7em; height: 1.2168em; ">Image URL:</DIV>
  166: <INPUT ID=txtFileName type=text style="left: 8.54em; top: 1.0647em; width: 21.5em;height: 2.1294em; " tabIndex=10 onfocus="select()">
  167: 
  168: <DIV id=divAltText style="left: 0.98em; top: 4.1067em; width: 6.58em; height: 1.2168em; ">Alternate Text:</DIV>
  169: <INPUT type=text ID=txtAltText tabIndex=15 style="left: 8.54em; top: 3.8025em; width: 21.5em; height: 2.1294em; " onfocus="select()">
  170: 
  171: <FIELDSET id=fldLayout style="left: .9em; top: 7.1em; width: 17.08em; height: 7.6em;">
  172: <LEGEND id=lgdLayout>Layout</LEGEND>
  173: </FIELDSET>
  174: 
  175: <FIELDSET id=fldSpacing style="left: 18.9em; top: 7.1em; width: 11em; height: 7.6em;">
  176: <LEGEND id=lgdSpacing>Spacing</LEGEND>
  177: </FIELDSET>
  178: 
  179: <DIV id=divAlign style="left: 1.82em; top: 9.126em; width: 4.76em; height: 1.2168em; ">Alignment:</DIV>
  180: <SELECT size=1 ID=selAlignment tabIndex=20 style="left: 10.36em; top: 8.8218em; width: 6.72em; height: 1.2168em; ">
  181: <OPTION id=optNotSet value=""> Not set </OPTION>
  182: <OPTION id=optLeft value=left> Left </OPTION>
  183: <OPTION id=optRight value=right> Right </OPTION>
  184: <OPTION id=optTexttop value=textTop> Texttop </OPTION>
  185: <OPTION id=optAbsMiddle value=absMiddle> Absmiddle </OPTION>
  186: <OPTION id=optBaseline value=baseline SELECTED> Baseline </OPTION>
  187: <OPTION id=optAbsBottom value=absBottom> Absbottom </OPTION>
  188: <OPTION id=optBottom value=bottom> Bottom </OPTION>
  189: <OPTION id=optMiddle value=middle> Middle </OPTION>
  190: <OPTION id=optTop value=top> Top </OPTION>
  191: </SELECT>
  192: 
  193: <DIV id=divHoriz style="left: 19.88em; top: 9.126em; width: 4.76em; height: 1.2168em; ">Horizontal:</DIV>
  194: <INPUT ID=txtHorizontal style="left: 24.92em; top: 8.8218em; width: 4.2em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=25 onfocus="select()">
  195: 
  196: <DIV id=divBorder style="left: 1.82em; top: 12.0159em; width: 8.12em; height: 1.2168em; ">Border Thickness:</DIV>
  197: <INPUT ID=txtBorder style="left: 10.36em; top: 11.5596em; width: 6.72em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=21 onfocus="select()">
  198: 
  199: <DIV id=divVert style="left: 19.88em; top: 12.0159em; width: 3.64em; height: 1.2168em; ">Vertical:</DIV>
  200: <INPUT ID=txtVertical style="left: 24.92em; top: 11.5596em; width: 4.2em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=30 onfocus="select()">
  201: 
  202: <BUTTON ID=btnOK style="left: 31.36em; top: 1.0647em; width: 7em; height: 2.2em; " type=submit tabIndex=40>OK</BUTTON>
  203: <BUTTON ID=btnCancel style="left: 31.36em; top: 3.6504em; width: 7em; height: 2.2em; " type=reset tabIndex=45 onClick="window.close();">Cancel</BUTTON>
  204: 
  205: </BODY>
  206: </HTML>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>