vexflow
Version:
A JavaScript library for rendering music notation and guitar tablature.
83 lines (82 loc) • 2.87 kB
TypeScript
import { Fraction } from './fraction';
import { NoteMetrics } from './note';
import { Tickable } from './tickable';
export interface TickContextMetrics extends NoteMetrics {
totalLeftPx: number;
totalRightPx: number;
}
export interface TickContextOptions {
tickID: number;
}
/**
* TickContext formats abstract tickable objects, such as notes, chords, tabs, etc.
*/
export declare class TickContext {
protected readonly tickID: number;
protected readonly tickables: Tickable[];
protected readonly tickablesByVoice: Record<string, Tickable>;
protected currentTick: Fraction;
protected maxTicks: Fraction;
protected padding: number;
protected xBase: number;
protected x: number;
protected xOffset: number;
protected notePx: number;
protected glyphPx: number;
protected leftDisplacedHeadPx: number;
protected rightDisplacedHeadPx: number;
protected modLeftPx: number;
protected modRightPx: number;
protected totalLeftPx: number;
protected totalRightPx: number;
protected maxTickable?: Tickable;
protected minTicks?: Fraction;
protected minTickable?: Tickable;
tContexts: TickContext[];
protected preFormatted: boolean;
protected postFormatted: boolean;
protected width: number;
protected formatterMetrics: {
freedom: {
left: number;
right: number;
};
};
static getNextContext(tContext: TickContext): TickContext | undefined;
constructor(options?: TickContextOptions);
getTickID(): number;
getX(): number;
setX(x: number): this;
getXBase(): number;
setXBase(xBase: number): void;
getXOffset(): number;
setXOffset(xOffset: number): void;
getWidth(): number;
setPadding(padding: number): this;
getMaxTicks(): Fraction;
getMinTicks(): Fraction | undefined;
getMaxTickable(): Tickable | undefined;
getMinTickable(): Tickable | undefined;
getTickables(): Tickable[];
/**
* Introduced on 2020-04-17 as getTickablesForVoice(voiceIndex).
* https://github.com/0xfe/vexflow/blame/dc97b0cc5bb93171c0038638c34362dc958222ca/src/tickcontext.js#L63
* Renamed on 2021-08-05 to getTickableForVoice(voiceIndex). Method renamed to singular, since it returns one Tickable.
*/
getTickableForVoice(voiceIndex: number): Tickable;
getTickablesByVoice(): Record<string, Tickable>;
getCenterAlignedTickables(): Tickable[];
/** Gets widths context, note and left/right modifiers for formatting. */
getMetrics(): TickContextMetrics;
getCurrentTick(): Fraction;
setCurrentTick(tick: Fraction): void;
addTickable(tickable: Tickable, voiceIndex?: number): this;
preFormat(): this;
postFormat(): this;
getFormatterMetrics(): {
freedom: {
left: number;
right: number;
};
};
}