goban
Version:
[](https://opensource.org/licenses/Apache-2.0)
136 lines (135 loc) • 5.14 kB
TypeScript
import { JGOF } from "../engine/formats/JGOF";
import { AdHocFormat } from "../engine/formats/AdHocFormat";
import { GobanConfig } from "../GobanBase";
import { GobanEngine } from "../engine";
import { MoveTree } from "../engine/MoveTree";
import { MoveTreePenMarks } from "../engine/MoveTree";
import { MessageID } from "../engine/messages";
import { Goban, GobanMetrics, GobanSelectedThemes } from "./Goban";
export interface CanvasRendererGobanConfig extends GobanConfig {
board_div?: HTMLElement;
title_div?: HTMLElement;
move_tree_container?: HTMLElement;
last_move_opacity?: number;
}
interface ViewPortInterface {
offset_x: number;
offset_y: number;
minx: number;
miny: number;
maxx: number;
maxy: number;
}
export interface GobanCanvasInterface {
engine: GobanEngine;
move_tree_container?: HTMLElement;
clearAnalysisDrawing(): void;
drawPenMarks(pen_marks: MoveTreePenMarks): void;
enablePen(): void;
disablePen(): void;
setByoYomiLabel(label: string): void;
setLastMoveOpacity(opacity: number): void;
move_tree_bindCanvasEvents(canvas: HTMLCanvasElement): void;
move_tree_redraw(no_warp?: boolean): void;
setMoveTreeContainer(container: HTMLElement): void;
showMessage(message_id_or_error: MessageID, parameters?: {
[key: string]: any;
}, timeout?: number): void;
clearMessage(): void;
drawSquare(i: number, j: number): void;
destroy(): void;
}
export declare class GobanCanvas extends Goban implements GobanCanvasInterface {
engine: GobanEngine;
private board;
private __set_board_height;
private __set_board_width;
private ready_to_draw;
private message_div?;
private message_td?;
private message_text?;
private message_timeout?;
private shadow_layer?;
private shadow_ctx?;
private handleShiftKey;
private last_move_opacity;
move_tree_container?: HTMLElement;
private move_tree_inner_container?;
private move_tree_canvas?;
private __borders_initialized;
private autoplaying_puzzle_move;
private byoyomi_label;
private ctx;
private current_pen_mark?;
private labeling_mode?;
private last_label_position;
private last_pen_position?;
protected metrics: GobanMetrics;
private drawing_enabled;
private pen_ctx?;
private pen_layer?;
protected title_div?: HTMLElement;
private themes;
private theme_black;
private theme_black_stones;
private theme_black_text_color;
private theme_blank_text_color;
private theme_board;
private theme_faded_line_color;
private theme_faded_star_color;
private theme_line_color;
private theme_star_color;
private theme_stone_radius;
private theme_white;
private theme_white_stones;
private theme_white_text_color;
constructor(config: CanvasRendererGobanConfig, preloaded_data?: AdHocFormat | JGOF);
setLastMoveOpacity(opacity: number): void;
enablePen(): void;
disablePen(): void;
destroy(): void;
private detachShadowLayer;
private attachShadowLayer;
private detachPenCanvas;
private attachPenCanvas;
private bindPointerBindings;
clearAnalysisDrawing(): void;
private xy2pen;
private pen2xy;
private setPenStyle;
private onPenStart;
private onPenMove;
drawPenMarks(pen_marks: MoveTreePenMarks): void;
private onTap;
private onMouseMove;
private onMouseOut;
protected enableDrawing(): void;
protected disableDrawing(): void;
setByoYomiLabel(label: string): void;
drawSquare(i: number, j: number): void;
private __drawSquare;
private drawingHash;
redraw(force_clear?: boolean): void;
showMessage(message_id_or_error: MessageID, parameters?: {
[key: string]: any;
}, timeout?: number): void;
clearMessage(): void;
protected setTheme(themes: GobanSelectedThemes, dont_redraw: boolean): void;
private onLabelingStart;
private onLabelingMove;
protected setTitle(title: string): void;
protected watchSelectedThemes(cb: (themes: GobanSelectedThemes) => void): {
remove: () => any;
};
setMoveTreeContainer(container: HTMLElement): void;
move_tree_redraw(no_warp?: boolean): void;
move_tree_bindCanvasEvents(canvas: HTMLCanvasElement): void;
protected computeThemeStoneRadius(): number;
move_tree_drawStone(ctx: CanvasRenderingContext2D, node: MoveTree, active_path_number: number, viewport: ViewPortInterface): void;
move_tree_drawRecursive(ctx: CanvasRenderingContext2D, node: MoveTree, active_path_number: number, viewport: ViewPortInterface): void;
move_tree_hilightNode(ctx: CanvasRenderingContext2D, node: MoveTree, color: string, viewport: ViewPortInterface): void;
move_tree_drawPath(ctx: CanvasRenderingContext2D, node: MoveTree, viewport: ViewPortInterface): void;
move_tree_drawIsoBranchTo(ctx: CanvasRenderingContext2D, from_node: MoveTree, to_node: MoveTree, viewport: ViewPortInterface): void;
move_tree_recursiveDrawPath(ctx: CanvasRenderingContext2D, node: MoveTree, viewport: ViewPortInterface): void;
}
export {};