about summary refs log tree commit diff stats
path: root/wiki/lib/scripts/textselection.js
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/lib/scripts/textselection.js')
-rw-r--r--wiki/lib/scripts/textselection.js152
1 files changed, 0 insertions, 152 deletions
diff --git a/wiki/lib/scripts/textselection.js b/wiki/lib/scripts/textselection.js
deleted file mode 100644
index 16874ba..0000000
--- a/wiki/lib/scripts/textselection.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Text selection related functions.
- */
-
-/**
- * selection prototype
- *
- * Object that capsulates the selection in a textarea. Returned by DWgetSelection.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function selection_class(){
-    this.start     = 0;
-    this.end       = 0;
-    this.obj       = null;
-    this.scroll    = 0;
-    this.fix       = 0;
-
-    this.getLength = function(){
-        return this.end - this.start;
-    };
-
-    this.getText = function(){
-        return (!this.obj) ? '' : this.obj.value.substring(this.start,this.end);
-    };
-}
-
-/**
- * Get current selection/cursor position in a given textArea
- *
- * @link   http://groups.drupal.org/node/1210
- * @author Andreas Gohr <andi@splitbrain.org>
- * @link   http://linebyline.blogspot.com/2006/11/textarea-cursor-position-in-internet.html
- * @returns object - a selection object
- */
-function DWgetSelection(textArea) {
-    var sel = new selection_class();
-
-    textArea.focus();
-    sel.obj   = textArea;
-    sel.start  = textArea.selectionStart;
-    sel.end    = textArea.selectionEnd;
-    sel.scroll = textArea.scrollTop;
-    return sel;
-}
-
-/**
- * Set the selection
- *
- * You need to get a selection object via DWgetSelection() first, then modify the
- * start and end properties and pass it back to this function.
- *
- * @link http://groups.drupal.org/node/1210
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param {selection_class} selection  a selection object as returned by DWgetSelection()
- */
-function DWsetSelection(selection){
-    selection.obj.setSelectionRange(selection.start, selection.end);
-    if(selection.scroll) selection.obj.scrollTop = selection.scroll;
-}
-
-/**
- * Inserts the given text at the current cursor position or replaces the current
- * selection
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param {string}  text           the new text to be pasted
- * @param {selection_class}  selection     selection object returned by DWgetSelection
- * @param {int}     opts.startofs  number of charcters at the start to skip from new selection
- * @param {int}     opts.endofs    number of characters at the end to skip from new selection
- * @param {boolean} opts.nosel     set true if new text should not be selected
- */
-function pasteText(selection,text,opts){
-    if(!opts) opts = {};
-    // replace the content
-
-    selection.obj.value =
-        selection.obj.value.substring(0, selection.start) + text +
-        selection.obj.value.substring(selection.end, selection.obj.value.length);
-
-    // set new selection
-    if (is_opera) {
-        // Opera replaces \n by \r\n when inserting text.
-        selection.end = selection.start + text.replace(/\r?\n/g, '\r\n').length;
-    } else {
-        selection.end = selection.start + text.length;
-    }
-
-
-    // modify the new selection if wanted
-    if(opts.startofs) selection.start += opts.startofs;
-    if(opts.endofs)   selection.end   -= opts.endofs;
-
-    // no selection wanted? set cursor to end position
-    if(opts.nosel) selection.start = selection.end;
-
-    DWsetSelection(selection);
-}
-
-
-/**
- * Format selection
- *
- * Apply tagOpen/tagClose to selection in textarea, use sampleText instead
- * of selection if there is none.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function insertTags(textAreaID, tagOpen, tagClose, sampleText){
-    var txtarea = jQuery('#' + textAreaID)[0];
-
-    var selection = DWgetSelection(txtarea);
-    var text = selection.getText();
-    var opts;
-
-    // don't include trailing space in selection
-    if(text.charAt(text.length - 1) == ' '){
-        selection.end--;
-        text = selection.getText();
-    }
-
-    if(!text){
-        // nothing selected, use the sample text and select it
-        text = sampleText;
-        opts = {
-            startofs: tagOpen.length,
-            endofs: tagClose.length
-        };
-    }else{
-        // place cursor at the end
-        opts = {
-            nosel: true
-        };
-    }
-
-    // surround with tags
-    text = tagOpen + text + tagClose;
-
-    // do it
-    pasteText(selection,text,opts);
-}
-
-/**
- * Wraps around pasteText() for backward compatibility
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function insertAtCarret(textAreaID, text){
-    var txtarea = jQuery('#' + textAreaID)[0];
-    var selection = DWgetSelection(txtarea);
-    pasteText(selection,text,{nosel: true});
-}