[ Index ] |
|
Code source de Seagull 0.6.1 |
1 /** 2 * $RCSfile: editor_plugin_src.js,v $ 3 * $Revision: 1.8 $ 4 * $Date: 2006/02/06 20:02:38 $ 5 * 6 * Moxiecode DHTML Windows script. 7 * 8 * @author Moxiecode 9 * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved. 10 */ 11 12 // Patch openWindow, closeWindow TinyMCE functions 13 14 var TinyMCE_InlinePopupsPlugin = { 15 getInfo : function() { 16 return { 17 longname : 'Inline Popups', 18 author : 'Moxiecode Systems', 19 authorurl : 'http://tinymce.moxiecode.com', 20 infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_inlinepopups.html', 21 version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion 22 }; 23 } 24 }; 25 26 tinyMCE.addPlugin("inlinepopups", TinyMCE_InlinePopupsPlugin); 27 28 // Patch openWindow, closeWindow TinyMCE functions 29 30 TinyMCE_Engine.prototype.orgOpenWindow = TinyMCE_Engine.prototype.openWindow; 31 32 TinyMCE_Engine.prototype.openWindow = function(template, args) { 33 // Does the caller support inline 34 if (args['inline'] != "yes" || tinyMCE.isOpera || tinyMCE.getParam("plugins").indexOf('inlinepopups') == -1) { 35 mcWindows.selectedWindow = null; 36 args['mce_inside_iframe'] = false; 37 this.orgOpenWindow(template, args); 38 return; 39 } 40 41 var url, resizable, scrollbars; 42 43 args['mce_inside_iframe'] = true; 44 tinyMCE.windowArgs = args; 45 46 if (template['file'].charAt(0) != '/' && template['file'].indexOf('://') == -1) 47 url = tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + "/" + template['file']; 48 else 49 url = template['file']; 50 51 if (!(width = parseInt(template['width']))) 52 width = 320; 53 54 if (!(height = parseInt(template['height']))) 55 height = 200; 56 57 resizable = (args && args['resizable']) ? args['resizable'] : "no"; 58 scrollbars = (args && args['scrollbars']) ? args['scrollbars'] : "no"; 59 60 height += 18; 61 62 // Replace all args as variables in URL 63 for (var name in args) { 64 if (typeof(args[name]) == 'function') 65 continue; 66 67 url = tinyMCE.replaceVar(url, name, escape(args[name])); 68 } 69 70 var elm = document.getElementById(this.selectedInstance.editorId + '_parent'); 71 var pos = tinyMCE.getAbsPosition(elm); 72 73 // Center div in editor area 74 pos.absLeft += Math.round((elm.firstChild.clientWidth / 2) - (width / 2)); 75 pos.absTop += Math.round((elm.firstChild.clientHeight / 2) - (height / 2)); 76 77 mcWindows.open(url, mcWindows.idCounter++, "modal=yes,width=" + width+ ",height=" + height + ",resizable=" + resizable + ",scrollbars=" + scrollbars + ",statusbar=" + resizable + ",left=" + pos.absLeft + ",top=" + pos.absTop); 78 }; 79 80 TinyMCE_Engine.prototype.orgCloseWindow = TinyMCE_Engine.prototype.closeWindow; 81 82 TinyMCE_Engine.prototype.closeWindow = function(win) { 83 if (mcWindows.selectedWindow != null) 84 mcWindows.selectedWindow.close(); 85 else 86 this.orgCloseWindow(win); 87 }; 88 89 TinyMCE_Engine.prototype.setWindowTitle = function(win_ref, title) { 90 for (var n in mcWindows.windows) { 91 var win = mcWindows.windows[n]; 92 if (typeof(win) == 'function') 93 continue; 94 95 if (win_ref.name == win.id + "_iframe") 96 window.frames[win.id + "_iframe"].document.getElementById(win.id + '_title').innerHTML = title; 97 } 98 }; 99 100 // * * * * * TinyMCE_Windows classes below 101 102 // Windows handler 103 function TinyMCE_Windows() { 104 this.settings = new Array(); 105 this.windows = new Array(); 106 this.isMSIE = (navigator.appName == "Microsoft Internet Explorer"); 107 this.isGecko = navigator.userAgent.indexOf('Gecko') != -1; 108 this.isSafari = navigator.userAgent.indexOf('Safari') != -1; 109 this.isMac = navigator.userAgent.indexOf('Mac') != -1; 110 this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1); 111 this.action = "none"; 112 this.selectedWindow = null; 113 this.lastSelectedWindow = null; 114 this.zindex = 100; 115 this.mouseDownScreenX = 0; 116 this.mouseDownScreenY = 0; 117 this.mouseDownLayerX = 0; 118 this.mouseDownLayerY = 0; 119 this.mouseDownWidth = 0; 120 this.mouseDownHeight = 0; 121 this.idCounter = 0; 122 }; 123 124 TinyMCE_Windows.prototype.init = function(settings) { 125 this.settings = settings; 126 127 if (this.isMSIE) 128 this.addEvent(document, "mousemove", mcWindows.eventDispatcher); 129 else 130 this.addEvent(window, "mousemove", mcWindows.eventDispatcher); 131 132 this.addEvent(document, "mouseup", mcWindows.eventDispatcher); 133 134 this.doc = document; 135 }; 136 137 TinyMCE_Windows.prototype.getParam = function(name, default_value) { 138 var value = null; 139 140 value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name]; 141 142 // Fix bool values 143 if (value == "true" || value == "false") 144 return (value == "true"); 145 146 return value; 147 }; 148 149 TinyMCE_Windows.prototype.eventDispatcher = function(e) { 150 e = typeof(e) == "undefined" ? window.event : e; 151 152 if (mcWindows.selectedWindow == null) 153 return; 154 155 // Switch focus 156 if (mcWindows.isGecko && e.type == "mousedown") { 157 var elm = e.currentTarget; 158 159 for (var n in mcWindows.windows) { 160 var win = mcWindows.windows[n]; 161 162 if (win.headElement == elm || win.resizeElement == elm) { 163 win.focus(); 164 break; 165 } 166 } 167 } 168 169 switch (e.type) { 170 case "mousemove": 171 mcWindows.selectedWindow.onMouseMove(e); 172 break; 173 174 case "mouseup": 175 mcWindows.selectedWindow.onMouseUp(e); 176 break; 177 178 case "mousedown": 179 mcWindows.selectedWindow.onMouseDown(e); 180 break; 181 182 case "focus": 183 mcWindows.selectedWindow.onFocus(e); 184 break; 185 } 186 }; 187 188 TinyMCE_Windows.prototype.addEvent = function(obj, name, handler) { 189 if (this.isMSIE) 190 obj.attachEvent("on" + name, handler); 191 else 192 obj.addEventListener(name, handler, true); 193 }; 194 195 TinyMCE_Windows.prototype.cancelEvent = function(e) { 196 if (this.isMSIE) { 197 e.returnValue = false; 198 e.cancelBubble = true; 199 } else 200 e.preventDefault(); 201 }; 202 203 TinyMCE_Windows.prototype.parseFeatures = function(opts) { 204 // Cleanup the options 205 opts = opts.toLowerCase(); 206 opts = opts.replace(/;/g, ","); 207 opts = opts.replace(/[^0-9a-z=,]/g, ""); 208 209 var optionChunks = opts.split(','); 210 var options = new Array(); 211 212 options['left'] = "10"; 213 options['top'] = "10"; 214 options['width'] = "300"; 215 options['height'] = "300"; 216 options['resizable'] = "yes"; 217 options['minimizable'] = "yes"; 218 options['maximizable'] = "yes"; 219 options['close'] = "yes"; 220 options['movable'] = "yes"; 221 options['statusbar'] = "yes"; 222 options['scrollbars'] = "auto"; 223 options['modal'] = "no"; 224 225 if (opts == "") 226 return options; 227 228 for (var i=0; i<optionChunks.length; i++) { 229 var parts = optionChunks[i].split('='); 230 231 if (parts.length == 2) 232 options[parts[0]] = parts[1]; 233 } 234 235 options['left'] = parseInt(options['left']); 236 options['top'] = parseInt(options['top']); 237 options['width'] = parseInt(options['width']); 238 options['height'] = parseInt(options['height']); 239 240 return options; 241 }; 242 243 TinyMCE_Windows.prototype.open = function(url, name, features) { 244 this.lastSelectedWindow = this.selectedWindow; 245 246 var win = new TinyMCE_Window(); 247 var winDiv, html = "", id; 248 var imgPath = this.getParam("images_path"); 249 250 features = this.parseFeatures(features); 251 252 // Create div 253 id = "mcWindow_" + name; 254 win.deltaHeight = 18; 255 256 if (features['statusbar'] == "yes") { 257 win.deltaHeight += 13; 258 259 if (this.isMSIE) 260 win.deltaHeight += 1; 261 } 262 263 width = parseInt(features['width']); 264 height = parseInt(features['height'])-win.deltaHeight; 265 266 if (this.isMSIE) 267 width -= 2; 268 269 // Setup first part of window 270 win.id = id; 271 win.url = url; 272 win.name = name; 273 win.features = features; 274 this.windows[name] = win; 275 276 iframeWidth = width; 277 iframeHeight = height; 278 279 // Create inner content 280 html += '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'; 281 html += '<html>'; 282 html += '<head>'; 283 html += '<title>Wrapper iframe</title>'; 284 html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 285 html += '<link href="' + this.getParam("css_file") + '" rel="stylesheet" type="text/css" />'; 286 html += '</head>'; 287 html += '<body onload="parent.mcWindows.onLoad(\'' + name + '\');">'; 288 289 html += '<div id="' + id + '_container" class="mceWindow">'; 290 html += '<div id="' + id + '_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">'; 291 html += ' <div id="' + id + '_title" class="mceWindowTitle"'; 292 html += ' onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;"></div>'; 293 html += ' <div class="mceWindowHeadTools">'; 294 html += ' <a href="javascript:parent.mcWindows.windows[\'' + name + '\'].close();" target="_self" onmousedown="return false;" class="mceWindowClose"><img border="0" src="' + imgPath + '/window_close.gif" /></a>'; 295 // html += ' <a href="javascript:mcWindows.windows[\'' + name + '\'].maximize();" target="_self" onmousedown="return false;" class="mceWindowMaximize"></a>'; 296 // html += ' <a href="javascript:mcWindows.windows[\'' + name + '\'].minimize();" target="_self" onmousedown="return false;" class="mceWindowMinimize"></a>'; 297 html += ' </div>'; 298 html += '</div><div id="' + id + '_body" class="mceWindowBody" style="width: ' + width + 'px; height: ' + height + 'px;">'; 299 html += '<iframe id="' + id + '_iframe" name="' + id + '_iframe" frameborder="0" width="' + iframeWidth + '" height="' + iframeHeight + '" src="' + url + '" class="mceWindowBodyIframe" scrolling="' + features['scrollbars'] + '"></iframe></div>'; 300 301 if (features['statusbar'] == "yes") { 302 html += '<div id="' + id + '_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">'; 303 304 if (features['resizable'] == "yes") { 305 if (this.isGecko) 306 html += '<div id="' + id + '_resize" class="mceWindowResize"><div style="background-image: url(\'' + imgPath + '/window_resize.gif\'); width: 12px; height: 12px;"></div></div>'; 307 else 308 html += '<div id="' + id + '_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();" border="0" src="' + imgPath + '/window_resize.gif" /></div>'; 309 } 310 311 html += '</div>'; 312 } 313 314 html += '</div>'; 315 316 html += '</body>'; 317 html += '</html>'; 318 319 // Create iframe 320 this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html); 321 }; 322 323 // Blocks the document events by placing a image over the whole document 324 TinyMCE_Windows.prototype.setDocumentLock = function(state) { 325 if (state) { 326 var elm = document.getElementById('mcWindowEventBlocker'); 327 if (elm == null) { 328 elm = document.createElement("div"); 329 330 elm.id = "mcWindowEventBlocker"; 331 elm.style.position = "absolute"; 332 elm.style.left = "0"; 333 elm.style.top = "0"; 334 335 document.body.appendChild(elm); 336 } 337 338 elm.style.display = "none"; 339 340 var imgPath = this.getParam("images_path"); 341 var width = document.body.clientWidth; 342 var height = document.body.clientHeight; 343 344 elm.style.width = width; 345 elm.style.height = height; 346 elm.innerHTML = '<img src="' + imgPath + '/spacer.gif" width="' + width + '" height="' + height + '" />'; 347 348 elm.style.zIndex = mcWindows.zindex-1; 349 elm.style.display = "block"; 350 } else { 351 var elm = document.getElementById('mcWindowEventBlocker'); 352 353 if (mcWindows.windows.length == 0) 354 elm.parentNode.removeChild(elm); 355 else 356 elm.style.zIndex = mcWindows.zindex-1; 357 } 358 }; 359 360 // Gets called when wrapper iframe is initialized 361 TinyMCE_Windows.prototype.onLoad = function(name) { 362 var win = mcWindows.windows[name]; 363 var id = "mcWindow_" + name; 364 var wrapperIframe = window.frames[id + "_iframe"].frames[0]; 365 var wrapperDoc = window.frames[id + "_iframe"].document; 366 var doc = window.frames[id + "_iframe"].document; 367 var winDiv = document.getElementById("mcWindow_" + name + "_div"); 368 var realIframe = window.frames[id + "_iframe"].frames[0]; 369 370 // Set window data 371 win.id = "mcWindow_" + name; 372 win.winElement = winDiv; 373 win.bodyElement = doc.getElementById(id + '_body'); 374 win.iframeElement = doc.getElementById(id + '_iframe'); 375 win.headElement = doc.getElementById(id + '_head'); 376 win.titleElement = doc.getElementById(id + '_title'); 377 win.resizeElement = doc.getElementById(id + '_resize'); 378 win.containerElement = doc.getElementById(id + '_container'); 379 win.left = win.features['left']; 380 win.top = win.features['top']; 381 win.frame = window.frames[id + '_iframe'].frames[0]; 382 win.wrapperFrame = window.frames[id + '_iframe']; 383 win.wrapperIFrameElement = document.getElementById(id + "_iframe"); 384 385 // Add event handlers 386 mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher); 387 388 if (win.resizeElement != null) 389 mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher); 390 391 if (mcWindows.isMSIE) { 392 mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher); 393 mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher); 394 } else { 395 mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher); 396 mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher); 397 mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher); 398 } 399 400 for (var i=0; i<window.frames.length; i++) { 401 if (!window.frames[i]._hasMouseHandlers) { 402 if (mcWindows.isMSIE) { 403 mcWindows.addEvent(window.frames[i].document, "mousemove", mcWindows.eventDispatcher); 404 mcWindows.addEvent(window.frames[i].document, "mouseup", mcWindows.eventDispatcher); 405 } else { 406 mcWindows.addEvent(window.frames[i], "mousemove", mcWindows.eventDispatcher); 407 mcWindows.addEvent(window.frames[i], "mouseup", mcWindows.eventDispatcher); 408 } 409 410 window.frames[i]._hasMouseHandlers = true; 411 } 412 } 413 414 if (mcWindows.isMSIE) { 415 mcWindows.addEvent(win.frame.document, "mousemove", mcWindows.eventDispatcher); 416 mcWindows.addEvent(win.frame.document, "mouseup", mcWindows.eventDispatcher); 417 } else { 418 mcWindows.addEvent(win.frame, "mousemove", mcWindows.eventDispatcher); 419 mcWindows.addEvent(win.frame, "mouseup", mcWindows.eventDispatcher); 420 mcWindows.addEvent(win.frame, "focus", mcWindows.eventDispatcher); 421 } 422 423 // Dispatch open window event 424 var func = this.getParam("on_open_window", ""); 425 if (func != "") 426 eval(func + "(win);"); 427 428 win.focus(); 429 430 if (win.features['modal'] == "yes") 431 mcWindows.setDocumentLock(true); 432 }; 433 434 TinyMCE_Windows.prototype.createFloatingIFrame = function(id_prefix, left, top, width, height, html) { 435 var iframe = document.createElement("iframe"); 436 var div = document.createElement("div"); 437 438 width = parseInt(width); 439 height = parseInt(height)+1; 440 441 // Create wrapper div 442 div.setAttribute("id", id_prefix + "_div"); 443 div.setAttribute("width", width); 444 div.setAttribute("height", (height)); 445 div.style.position = "absolute"; 446 div.style.left = left + "px"; 447 div.style.top = top + "px"; 448 div.style.width = width + "px"; 449 div.style.height = (height) + "px"; 450 div.style.backgroundColor = "white"; 451 div.style.display = "none"; 452 453 if (this.isGecko) { 454 iframeWidth = width + 2; 455 iframeHeight = height + 2; 456 } else { 457 iframeWidth = width; 458 iframeHeight = height + 1; 459 } 460 461 // Create iframe 462 iframe.setAttribute("id", id_prefix + "_iframe"); 463 iframe.setAttribute("name", id_prefix + "_iframe"); 464 iframe.setAttribute("border", "0"); 465 iframe.setAttribute("frameBorder", "0"); 466 iframe.setAttribute("marginWidth", "0"); 467 iframe.setAttribute("marginHeight", "0"); 468 iframe.setAttribute("leftMargin", "0"); 469 iframe.setAttribute("topMargin", "0"); 470 iframe.setAttribute("width", iframeWidth); 471 iframe.setAttribute("height", iframeHeight); 472 // iframe.setAttribute("src", "../jscripts/tiny_mce/blank.htm"); 473 // iframe.setAttribute("allowtransparency", "false"); 474 iframe.setAttribute("scrolling", "no"); 475 iframe.style.width = iframeWidth + "px"; 476 iframe.style.height = iframeHeight + "px"; 477 iframe.style.backgroundColor = "white"; 478 div.appendChild(iframe); 479 480 document.body.appendChild(div); 481 482 // Fixed MSIE 5.0 issue 483 div.innerHTML = div.innerHTML; 484 485 if (this.isSafari) { 486 // Give Safari some time to setup 487 window.setTimeout(function() { 488 doc = window.frames[id_prefix + '_iframe'].document; 489 doc.open(); 490 doc.write(html); 491 doc.close(); 492 }, 10); 493 } else { 494 doc = window.frames[id_prefix + '_iframe'].window.document; 495 doc.open(); 496 doc.write(html); 497 doc.close(); 498 } 499 500 div.style.display = "block"; 501 502 return div; 503 }; 504 505 // Window instance 506 function TinyMCE_Window() { 507 }; 508 509 TinyMCE_Window.prototype.focus = function() { 510 if (this != mcWindows.selectedWindow) { 511 this.winElement.style.zIndex = ++mcWindows.zindex; 512 mcWindows.lastSelectedWindow = mcWindows.selectedWindow; 513 mcWindows.selectedWindow = this; 514 } 515 }; 516 517 TinyMCE_Window.prototype.minimize = function() { 518 }; 519 520 TinyMCE_Window.prototype.maximize = function() { 521 522 }; 523 524 TinyMCE_Window.prototype.startResize = function() { 525 mcWindows.action = "resize"; 526 }; 527 528 TinyMCE_Window.prototype.startMove = function(e) { 529 mcWindows.action = "move"; 530 }; 531 532 TinyMCE_Window.prototype.close = function() { 533 if (this.frame && this.frame['tinyMCEPopup']) 534 this.frame['tinyMCEPopup'].restoreSelection(); 535 536 if (mcWindows.lastSelectedWindow != null) 537 mcWindows.lastSelectedWindow.focus(); 538 539 var mcWindowsNew = new Array(); 540 for (var n in mcWindows.windows) { 541 var win = mcWindows.windows[n]; 542 if (typeof(win) == 'function') 543 continue; 544 545 if (win.name != this.name) 546 mcWindowsNew[n] = win; 547 } 548 549 mcWindows.windows = mcWindowsNew; 550 551 // alert(mcWindows.doc.getElementById(this.id + "_iframe")); 552 553 var e = mcWindows.doc.getElementById(this.id + "_iframe"); 554 e.parentNode.removeChild(e); 555 556 var e = mcWindows.doc.getElementById(this.id + "_div"); 557 e.parentNode.removeChild(e); 558 559 mcWindows.setDocumentLock(false); 560 }; 561 562 TinyMCE_Window.prototype.onMouseMove = function(e) { 563 var scrollX = 0;//this.doc.body.scrollLeft; 564 var scrollY = 0;//this.doc.body.scrollTop; 565 566 // Calculate real X, Y 567 var dx = e.screenX - mcWindows.mouseDownScreenX; 568 var dy = e.screenY - mcWindows.mouseDownScreenY; 569 570 switch (mcWindows.action) { 571 case "resize": 572 width = mcWindows.mouseDownWidth + (e.screenX - mcWindows.mouseDownScreenX); 573 height = mcWindows.mouseDownHeight + (e.screenY - mcWindows.mouseDownScreenY); 574 575 width = width < 100 ? 100 : width; 576 height = height < 100 ? 100 : height; 577 578 this.wrapperIFrameElement.style.width = width+2; 579 this.wrapperIFrameElement.style.height = height+2; 580 this.wrapperIFrameElement.width = width+2; 581 this.wrapperIFrameElement.height = height+2; 582 this.winElement.style.width = width; 583 this.winElement.style.height = height; 584 585 height = height - this.deltaHeight; 586 587 this.containerElement.style.width = width; 588 589 this.iframeElement.style.width = width; 590 this.iframeElement.style.height = height; 591 this.bodyElement.style.width = width; 592 this.bodyElement.style.height = height; 593 this.headElement.style.width = width; 594 //this.statusElement.style.width = width; 595 596 mcWindows.cancelEvent(e); 597 break; 598 599 case "move": 600 this.left = mcWindows.mouseDownLayerX + (e.screenX - mcWindows.mouseDownScreenX); 601 this.top = mcWindows.mouseDownLayerY + (e.screenY - mcWindows.mouseDownScreenY); 602 this.winElement.style.left = this.left + "px"; 603 this.winElement.style.top = this.top + "px"; 604 605 mcWindows.cancelEvent(e); 606 break; 607 } 608 }; 609 610 function debug(msg) { 611 document.getElementById('debug').value += msg + "\n"; 612 } 613 614 TinyMCE_Window.prototype.onMouseUp = function(e) { 615 mcWindows.action = "none"; 616 }; 617 618 TinyMCE_Window.prototype.onFocus = function(e) { 619 // Gecko only handler 620 var winRef = e.currentTarget; 621 622 for (var n in mcWindows.windows) { 623 var win = mcWindows.windows[n]; 624 if (typeof(win) == 'function') 625 continue; 626 627 if (winRef.name == win.id + "_iframe") { 628 win.focus(); 629 return; 630 } 631 } 632 }; 633 634 TinyMCE_Window.prototype.onMouseDown = function(e) { 635 var elm = mcWindows.isMSIE ? this.wrapperFrame.event.srcElement : e.target; 636 637 var scrollX = 0;//this.doc.body.scrollLeft; 638 var scrollY = 0;//this.doc.body.scrollTop; 639 640 mcWindows.mouseDownScreenX = e.screenX; 641 mcWindows.mouseDownScreenY = e.screenY; 642 mcWindows.mouseDownLayerX = this.left; 643 mcWindows.mouseDownLayerY = this.top; 644 mcWindows.mouseDownWidth = parseInt(this.winElement.style.width); 645 mcWindows.mouseDownHeight = parseInt(this.winElement.style.height); 646 647 if (this.resizeElement != null && elm == this.resizeElement.firstChild) 648 this.startResize(e); 649 else 650 this.startMove(e); 651 652 mcWindows.cancelEvent(e); 653 }; 654 655 // Global instance 656 var mcWindows = new TinyMCE_Windows(); 657 658 // Initialize windows 659 mcWindows.init({ 660 images_path : tinyMCE.baseURL + "/plugins/inlinepopups/images", 661 css_file : tinyMCE.baseURL + "/plugins/inlinepopups/css/inlinepopup.css" 662 });
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Mar 30 01:27:52 2007 | par Balluche grâce à PHPXref 0.7 |