import _WidgetBase = require("../_WidgetBase"); import _Container = require("../_Container"); import _HasDropDown = require("../_HasDropDown"); import { _WidgetBaseConstructor } from "../_WidgetBase"; import { NodeOrString } from "dojo/interfaces"; import Button = require("./Button"); interface DropDownButton extends Button, _Container, _HasDropDown { baseClass: string; templateString: string; /** * Overrides _TemplatedMixin#_fillContent(). * My inner HTML possibly contains both the button label and/or a drop down widget, like * push me ... */ _fillContent(): void; startup(): void; /** * Returns whether or not we are loaded - if our dropdown has an href, * then we want to check that. */ isLoaded(): boolean; /** * Default implementation assumes that drop down already exists, * but hasn't loaded it's data (ex: ContentPane w/href). * App must override if the drop down is lazy-created. */ loadDropDown(callback: () => void): void; /** * Overridden so that focus is handled by the _HasDropDown mixin, not by * the _FormWidget mixin. */ isFocusable(): boolean; } interface DropDownButtonConstructor extends _WidgetBaseConstructor> { new (params: Object, srcNodeRef: NodeOrString): DropDownButton; } declare const DropDownButton: DropDownButtonConstructor; export = DropDownButton;