Merge pull request #62 from Hufe921/feature/tab

feat:add tab particle
pr675
Hufe 4 years ago committed by GitHub
commit 266d3701e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -513,7 +513,7 @@ export class Draw {
}
private _computeRowList(innerWidth: number, elementList: IElement[]) {
const { defaultSize, defaultRowMargin, scale, tdPadding } = this.options
const { defaultSize, defaultRowMargin, scale, tdPadding, defaultTabWidth } = this.options
const defaultBasicRowMarginHeight = this.getDefaultBasicRowMarginHeight()
const tdGap = tdPadding * 2
const canvas = document.createElement('canvas')
@ -668,6 +668,11 @@ export class Draw {
element.width = elementWidth
metrics.width = elementWidth
metrics.height = height * scale
} else if (element.type === ElementType.TAB) {
metrics.width = defaultTabWidth * scale
metrics.height = defaultSize * scale
metrics.boundingBoxDescent = 0
metrics.boundingBoxAscent = metrics.height
} else {
// 设置上下标真实字体尺寸
const size = element.size || this.options.defaultSize
@ -814,6 +819,8 @@ export class Draw {
) {
this.textParticle.complete()
this.checkboxParticle.render(ctx, element, x, y + offsetY)
} else if (element.type === ElementType.TAB) {
this.textParticle.complete()
} else {
this.textParticle.record(ctx, element, x, y + offsetY)
}

@ -1,5 +1,5 @@
import { ElementType } from '../..'
import { NBSP, ZERO } from '../../dataset/constant/Common'
import { ZERO } from '../../dataset/constant/Common'
import { EDITOR_ELEMENT_COPY_ATTR } from '../../dataset/constant/Element'
import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
import { MouseEventButton } from '../../dataset/enum/Event'
@ -454,7 +454,10 @@ export class CanvasEvent {
} else if (evt.key === KeyMap.ESC) {
this.clearPainterStyle()
} else if (evt.key === KeyMap.TAB) {
this.input(NBSP.repeat(4))
this.draw.insertElementList([{
type: ElementType.TAB,
value: ''
}])
evt.preventDefault()
}
}

@ -9,5 +9,6 @@ export enum ElementType {
PAGE_BREAK = 'pageBreak',
CONTROL = 'control',
CHECKBOX = 'checkbox',
LATEX = 'latex'
LATEX = 'latex',
TAB = 'tab'
}

@ -55,6 +55,7 @@ export default class Editor {
defaultSize: 16,
defaultRowMargin: 1,
defaultBasicRowMarginHeight: 8,
defaultTabWidth: 32,
width: 794,
height: 1123,
scale: 1,

@ -12,6 +12,7 @@ export interface IEditorOption {
defaultSize?: number;
defaultBasicRowMarginHeight?: number;
defaultRowMargin?: number;
defaultTabWidth?: number;
width?: number;
height?: number;
scale?: number;

@ -281,6 +281,9 @@ elementList.push(...<IElement[]>[{
// 模拟结尾文本
elementList.push(...[{
value: '',
type: ElementType.TAB
}, {
value: 'E',
size: 16
}, {

Loading…
Cancel
Save