smoosic
Version:
<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [application](https://smoosic.github.i
74 lines • 3.31 kB
TypeScript
import { SuiMapper, SuiRendererBase } from './mapper';
import { StrokeInfo } from './svgHelpers';
import { SmoSelection, SmoSelector, ModifierTab } from '../../smo/xform/selections';
import { SmoScore } from '../../smo/data/score';
import { SvgBox, KeyEvent } from '../../smo/data/common';
import { SuiScroller } from './scroller';
import { SmoNote } from '../../smo/data/note';
import { SmoMeasure } from '../../smo/data/measure';
/**
* SuiTracker
* A tracker maps the UI elements to the logical elements ,and allows the user to
* move through the score and make selections, for navigation and editing.
* @category SuiRender
*/
export declare class SuiTracker extends SuiMapper {
idleTimer: number;
musicCursorGlyph: SVGSVGElement | null;
static get strokes(): Record<string, StrokeInfo>;
constructor(renderer: SuiRendererBase, scroller: SuiScroller);
get renderElement(): Element;
get score(): SmoScore | null;
getIdleTime(): number;
getSelectedModifier(): ModifierTab | null;
getSelectedModifiers(): ModifierTab[];
static serializeEvent(evKey: KeyEvent | null): any;
advanceModifierSelection(score: SmoScore, keyEv: KeyEvent | null): void;
static stringifyBox(box: SvgBox): string;
_getOffsetSelection(offset: number): SmoSelector;
getSelectedGraceNotes(): ModifierTab[];
isGraceNoteSelected(): boolean;
_growGraceNoteSelections(offset: number): void;
get autoPlay(): boolean;
growSelectionRight(): void;
_growSelectionRight(skipPlay: boolean): number;
moveHome(score: SmoScore, evKey: KeyEvent): void;
moveEnd(score: SmoScore, evKey: KeyEvent): void;
growSelectionRightMeasure(): void;
growSelectionLeft(): number;
moveSelectionRight(skipPlay: boolean): void;
moveSelectionLeft(): void;
moveSelectionLeftMeasure(): void;
moveSelectionRightMeasure(): void;
_moveSelectionMeasure(offset: number): void;
_moveStaffOffset(offset: number): void;
removePitchSelection(): void;
_moveSelectionPitch(index: number): void;
moveSelectionPitchUp(): void;
moveSelectionPitchDown(): void;
moveSelectionUp(): void;
moveSelectionDown(): void;
containsArtifact(): boolean;
_replaceSelection(nselector: SmoSelector, skipPlay: boolean): void;
getFirstMeasureOfSelection(): SmoMeasure | null;
getSelectedMeasures(): SmoSelection[];
_addSelection(selection: SmoSelection): void;
_selectFromToInStaff(score: SmoScore, sel1: SmoSelection, sel2: SmoSelection): void;
_selectBetweenSelections(score: SmoScore, s1: SmoSelection, s2: SmoSelection): void;
selectSuggestion(score: SmoScore, ev: KeyEvent): void;
_setModifierAsSuggestion(artifact: ModifierTab): void;
_setArtifactAsSuggestion(artifact: SmoSelection): void;
_highlightModifier(): void;
_highlightPitchSelection(note: SmoNote, index: number): void;
_highlightActiveVoice(selection: SmoSelection): void;
selectActiveVoice(): void;
highlightSelection(): void;
/**
* Boxes are divided up into lines/systems already. But we need
* to put the correct box on the correct page.
* @param boxes
*/
drawSelectionRects(boxes: SvgBox[]): void;
_drawRect(pBox: SvgBox | SvgBox[], strokeName: string): void;
}
//# sourceMappingURL=tracker.d.ts.map