pxt-core
Version:
Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors
46 lines (45 loc) • 1.9 kB
TypeScript
/// <reference path="../../pxtlib.d.ts" />
import * as Blockly from "blockly";
import { FieldCustom, FieldCustomOptions } from "./field_utils";
export interface FieldTextDropdownOptions extends FieldCustomOptions {
values?: string;
data?: string;
}
export declare class BaseFieldTextDropdown extends Blockly.FieldTextInput {
protected menuGenerator_: any[];
static DROPDOWN_SVG_DATAURI: string;
/** A reference to the currently selected menu item. */
private selectedMenuItem;
/** The dropdown menu. */
protected menu_: Blockly.Menu | null;
/** SVG based arrow element. */
private svgArrow;
/** A cache of the most recently generated options. */
private generatedOptions;
protected dropDownOpen_: boolean;
private menuItems;
private lastHighlightedMenuElement;
private inputKeydownHandler;
private dropdownKeydownHandler;
constructor(text: string, menuGenerator_: any[], opt_validator?: Blockly.FieldValidator);
initView(): void;
private inputKeydownListener;
private dropdownKeydownListener;
protected showEditor_(e?: Event, quietInput?: boolean): void;
doValueUpdate_(newValue: string): void;
getOptions(useCache?: boolean): Blockly.MenuOption[];
isOptionListDynamic(): boolean;
getFieldDescription(): string;
protected dropdownDispose_(): void;
private dropdownCreate;
showDropdown_(e?: MouseEvent): void;
protected updateSize_(margin?: number): void;
private positionSVGArrow;
protected createSVGArrow(): void;
private handleMenuActionEvent;
protected onItemSelected_(menu: Blockly.Menu, menuItem: Blockly.MenuItem): void;
}
export declare class FieldTextDropdown extends BaseFieldTextDropdown implements FieldCustom {
isFieldCustom_: boolean;
constructor(text: string, options: FieldTextDropdownOptions, opt_validator?: Blockly.FieldValidator);
}