diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-08-13 21:11:10 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-08-13 21:11:10 -0700 | 
| commit | 8b50dfe1e9a8be7b8d2a7c69b25bc04babfc1c0c (patch) | |
| tree | d1dd0d6272788ee903936f3dce87ef06b5873edc /ext/fg/js | |
| parent | a202817b987e0af82607d814f775bde26947747a (diff) | |
unify files
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/source-element.js | 77 | ||||
| -rw-r--r-- | ext/fg/js/source.js (renamed from ext/fg/js/source-range.js) | 60 | 
2 files changed, 60 insertions, 77 deletions
| diff --git a/ext/fg/js/source-element.js b/ext/fg/js/source-element.js deleted file mode 100644 index a8101382..00000000 --- a/ext/fg/js/source-element.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2016  Alex Yatskov <alex@foosoft.net> - * Author: Alex Yatskov <alex@foosoft.net> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - - -class TextSourceElement { -    constructor(element, content='') { -        this.element = element; -        this.content = content; -    } - -    clone() { -        return new TextSourceElement(this.element, this.content); -    } - -    text() { -        return this.content; -    } - -    setEndOffset(length) { -        switch (this.element.nodeName) { -            case 'BUTTON': -                this.content = this.element.innerHTML; -                break; -            case 'IMG': -                this.content = this.element.getAttribute('alt'); -                break; -            default: -                this.content = this.element.value; -                break; -        } - -        this.content = this.content || ''; -        this.content = this.content.substring(0, length); - -        return this.content.length; -    } - -    setStartOffset(length) { -        return 0; -    } - -    containsPoint(point) { -        const rect = this.getRect(); -        return point.x >= rect.left && point.x <= rect.right; -    } - -    getRect() { -        return this.element.getBoundingClientRect(); -    } - -    select() { -        // NOP -    } - -    deselect() { -        // NOP -    } - -    equals(other) { -        return other.element === this.element && other.content === this.content; -    } -} diff --git a/ext/fg/js/source-range.js b/ext/fg/js/source.js index fa73b0a4..210dda12 100644 --- a/ext/fg/js/source-range.js +++ b/ext/fg/js/source.js @@ -174,3 +174,63 @@ class TextSourceRange {          return state.remainder > 0;      }  } + + +class TextSourceElement { +    constructor(element, content='') { +        this.element = element; +        this.content = content; +    } + +    clone() { +        return new TextSourceElement(this.element, this.content); +    } + +    text() { +        return this.content; +    } + +    setEndOffset(length) { +        switch (this.element.nodeName) { +            case 'BUTTON': +                this.content = this.element.innerHTML; +                break; +            case 'IMG': +                this.content = this.element.getAttribute('alt'); +                break; +            default: +                this.content = this.element.value; +                break; +        } + +        this.content = this.content || ''; +        this.content = this.content.substring(0, length); + +        return this.content.length; +    } + +    setStartOffset(length) { +        return 0; +    } + +    containsPoint(point) { +        const rect = this.getRect(); +        return point.x >= rect.left && point.x <= rect.right; +    } + +    getRect() { +        return this.element.getBoundingClientRect(); +    } + +    select() { +        // NOP +    } + +    deselect() { +        // NOP +    } + +    equals(other) { +        return other.element === this.element && other.content === this.content; +    } +} |