r1513 - branches/bxe_2_0/js

[email protected] Wed, 27 Sep 2006 14:28:08 +0200 (CEST)
Newsgroups gmane.editors.bitflux.cvs
Message-ID <[email protected]>
Author: chregu
Date: Wed Sep 27 14:28:07 2006
New Revision: 1513

Modified:
   branches/bxe_2_0/js/widget.js
Log:
first part of
Insert inline erfolgt nicht an Cursor-Position, sondern  zu Beginn des Parent-Elements
#40


Modified: branches/bxe_2_0/js/widget.js
==============================================================================
--- branches/bxe_2_0/js/widget.js	(original)
+++ branches/bxe_2_0/js/widget.js	Wed Sep 27 14:28:07 2006
@@ -859,14 +859,14 @@
 		var sub = widget.SubPopup;
 		sub.removeAllMenuItems();
 		sub.setTitle(bxe_i18n.getText("Insert"));
-		sub.appendAllowedChildren(widget.AppendToNode);
+		sub.appendAllowedChildren(widget.AppendToNode, true);
 	});
 	}
 	
 }
 
 
-Widget_MenuPopup.prototype.appendAllowedChildren = function( node) {
+Widget_MenuPopup.prototype.appendAllowedChildren = function( node, afterCursor) {
 	var ac = node.XMLNode.allowedChildren;
 	function nodeSort(a,b) {
 		if (a.nodeName > b.nodeName) {
@@ -890,9 +890,31 @@
 					
 				var menui = this.addMenuItem(ac[i].vdom.bxeName.replace(/ /g,STRING_NBSP), function(e) { 
 					var widget = e.currentTarget.Widget;
-					eDOMEventCall("appendChildNode",document,{"atStart": true, "appendToNode": widget.AppendToNode, "localName":widget.InsertLocalName,"namespaceURI":widget.InsertNamespaceURI})
-				
+					if (afterCursor) {
+						sel = window.getSelection();
+						var _p = sel.anchorNode;
+						if (_p.nodeType != 1) {
+							_p = _p.parentNode;
+						}
+						_p = _p.XMLNode._node;
+						while (_p && _p != widget.AppendToNode._node) {
+							if (_p.XMLNode) {
+								var _p2 = _p;
+							}
+							_p = _p.parentNode;
+						}
+						if (_p2) {
+							eDOMEventCall("appendNode",document,{"appendToNode": _p2.XMLNode, "localName":widget.InsertLocalName,"namespaceURI":widget.InsertNamespaceURI})
+						}
+					} 
+					if (!afterCursor || !_p2) 
+					{
+						eDOMEventCall("appendChildNode",document,{"atStart": true, "appendToNode": widget.AppendToNode, "localName":widget.InsertLocalName,"namespaceURI":widget.InsertNamespaceURI})
+					}
+					
 				}, _helptext);
+				
+				
 				menui.InsertLocalName = ac[i].localName;
 				menui.InsertNamespaceURI = ac[i].namespaceURI;
 				menui.AppendToNode = node.XMLNode;
-- 
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs