pxt-core
Version:
Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors
85 lines (84 loc) • 5.5 kB
TypeScript
/// <reference path="../../localtypings/pxteditor.d.ts" />
import { IframeDriver } from "./iframeDriver";
declare const MessageReceivedEvent = "message";
declare const MessageSentEvent = "sent";
export interface IframeWorkspaceStatus {
projects: pxt.workspace.Project[];
editor?: pxt.editor.EditorSyncState;
controllerId?: string;
}
export interface IFrameWorkspaceHost {
saveProject(project: pxt.workspace.Project): Promise<void>;
getWorkspaceProjects(): Promise<IframeWorkspaceStatus>;
resetWorkspace(): Promise<void>;
onWorkspaceLoaded?(): Promise<void>;
}
/**
* Manages communication with the editor iframe.
*/
export declare class EditorDriver extends IframeDriver {
iframe: HTMLIFrameElement;
host?: IFrameWorkspaceHost;
constructor(iframe: HTMLIFrameElement, host?: IFrameWorkspaceHost);
switchEditorLanguage(lang: "typescript" | "blocks" | "python"): Promise<void>;
setLanguageRestriction(restriction: pxt.editor.LanguageRestriction): Promise<void>;
startSimulator(): Promise<void>;
stopSimulator(unload?: boolean): Promise<void>;
restartSimulator(): Promise<void>;
hideSimulator(): Promise<void>;
showSimulator(): Promise<void>;
setSimulatorFullscreen(on: boolean): Promise<void>;
closeFlyout(): Promise<void>;
unloadProject(): Promise<void>;
saveProject(): Promise<void>;
compile(): Promise<void>;
undo(): Promise<void>;
redo(): Promise<void>;
setHighContrast(on: boolean): Promise<void>;
showThemePicker(): Promise<void>;
toggleHighContrast(): Promise<void>;
toggleGreenScreen(): Promise<void>;
toggleAccessibleBlocks(): Promise<void>;
toggleSloMo(intervalSpeed?: number): Promise<void>;
setSloMoEnabled(enabled: boolean, intervalSpeed?: number): Promise<void>;
printProject(): Promise<void>;
getInfo(): Promise<pxt.editor.InfoMessage>;
newProject(options: pxt.editor.ProjectCreationOptions): Promise<void>;
importProject(project: pxt.workspace.Project, filters?: pxt.editor.ProjectFilters, searchBar?: boolean): Promise<void>;
importExternalProject(project: pxt.workspace.Project): Promise<string>;
openHeader(headerId: string): Promise<void>;
shareHeader(headerId: string, projectName: string): Promise<pxt.editor.ShareData>;
startActivity(activityType: "tutorial" | "example" | "recipe", path: string, title?: string, previousProjectHeaderId?: string, carryoverPreviousCode?: boolean): Promise<void>;
importTutorial(markdown: string): Promise<void>;
pair(): Promise<void>;
decompileToBlocks(ts: string, snippetMode?: boolean, layout?: pxt.editor.BlockLayout): Promise<pxt.editor.EditorMessageRenderBlocksResponse>;
decompileToPython(ts: string): Promise<string>;
renderXml(xml: string): Promise<any>;
renderByBlockId(blockId: string): Promise<any>;
getToolboxCategories(advanced?: boolean): Promise<pxt.editor.ToolboxCategoryDefinition[]>;
getBlockAsText(blockId: string): Promise<pxt.editor.BlockAsText | undefined>;
runValidatorPlan(validatorPlan: pxt.blocks.ValidatorPlan, planLib: pxt.blocks.ValidatorPlan[]): Promise<pxt.blocks.EvaluationResult>;
saveLocalProjectsToCloud(headerIds: string[]): Promise<pxt.editor.EditorMessageSaveLocalProjectsToCloudResponse>;
convertCloudProjectsToLocal(userId: string): Promise<void>;
requestProjectCloudStatus(headerIds: string[]): Promise<void>;
precacheTutorial(data: pxt.github.GHTutorialResponse): Promise<void>;
setColorTheme(colorThemeId: string, savePreference: boolean): Promise<void>;
addEventListener(event: typeof MessageSentEvent, handler: (ev: pxt.editor.EditorMessage) => void): void;
addEventListener(event: typeof MessageReceivedEvent, handler: (ev: pxt.editor.EditorMessage) => void): void;
addEventListener(event: "event", handler: (ev: pxt.editor.EditorMessageEventRequest) => void): void;
addEventListener(event: "simevent", handler: (ev: pxt.editor.EditorSimulatorEvent) => void): void;
addEventListener(event: "tutorialevent", handler: (ev: pxt.editor.EditorMessageTutorialEventRequest) => void): void;
addEventListener(event: "workspacesave", handler: (ev: pxt.editor.EditorWorkspaceSaveRequest) => void): void;
addEventListener(event: "workspaceevent", handler: (ev: pxt.editor.EditorWorkspaceEvent) => void): void;
addEventListener(event: "workspacereset", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void;
addEventListener(event: "workspacesync", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void;
addEventListener(event: "workspaceloaded", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void;
addEventListener(event: "workspacediagnostics", handler: (ev: pxt.editor.EditorWorkspaceDiagnostics) => void): void;
addEventListener(event: "editorcontentloaded", handler: (ev: pxt.editor.EditorContentLoadedRequest) => void): void;
addEventListener(event: "projectcloudstatus", handler: (ev: pxt.editor.EditorMessageProjectCloudStatus) => void): void;
addEventListener(event: "serviceworkerregistered", handler: (ev: pxt.editor.EditorMessageServiceWorkerRegisteredRequest) => void): void;
sendMessage(message: pxt.editor.EditorMessageRequest): Promise<pxt.editor.EditorMessageResponse>;
protected handleMessage(event: MessageEvent): void;
protected handleWorkspaceSync(event: pxt.editor.EditorWorkspaceSyncRequest | pxt.editor.EditorWorkspaceSaveRequest): Promise<void>;
}
export {};