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[]) { 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 defaultBasicRowMarginHeight = this.getDefaultBasicRowMarginHeight()
const tdGap = tdPadding * 2 const tdGap = tdPadding * 2
const canvas = document.createElement('canvas') const canvas = document.createElement('canvas')
@ -668,6 +668,11 @@ export class Draw {
element.width = elementWidth element.width = elementWidth
metrics.width = elementWidth metrics.width = elementWidth
metrics.height = height * scale 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 { } else {
// 设置上下标真实字体尺寸 // 设置上下标真实字体尺寸
const size = element.size || this.options.defaultSize const size = element.size || this.options.defaultSize
@ -814,6 +819,8 @@ export class Draw {
) { ) {
this.textParticle.complete() this.textParticle.complete()
this.checkboxParticle.render(ctx, element, x, y + offsetY) this.checkboxParticle.render(ctx, element, x, y + offsetY)
} else if (element.type === ElementType.TAB) {
this.textParticle.complete()
} else { } else {
this.textParticle.record(ctx, element, x, y + offsetY) this.textParticle.record(ctx, element, x, y + offsetY)
} }

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

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

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

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

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

Loading…
Cancel
Save