In templated widgets, "containerNode" is set via a
data-dojo-attach-point assignment.

containerNode must be defined for any widget that accepts innerHTML
(like ContentPane or BorderContainer or even Button), and conversely
is null for widgets that don't, like TextBox.

dir

Bi-directional support, as defined by the HTML DIR
attribute. Either left-to-right "ltr" or right-to-left "rtl". If undefined, widgets renders in page's
default direction.

domNode

This is our visible representation of the widget! Other DOM
Nodes may by assigned to other properties, usually through the
template system's data-dojo-attach-point syntax, but the domNode
property is the canonical "top level" node in widget UI.

focused

This widget or a widget it contains has focus, or is "active" because
it was recently clicked.

id

A unique, opaque ID string that can be assigned by users or by the
system. If the developer passes an ID which is known not to be
unique, the specified ID is ignored and the system-generated ID is
used instead.

isLayoutContainer

Indicates that this widget is going to call resize() on its
children widgets, setting their size, when they become visible.

lang

Rarely used. Overrides the default Dojo locale used to render this widget,
as defined by the HTML LANG attribute.
Value must be among the list of locales specified during by the Dojo bootstrap,
formatted according to RFC 3066 (like en-us).

ownerDocument

The document this widget belongs to. If not specified to constructor, will default to
srcNodeRef.ownerDocument, or if no sourceRef specified, then to dojo/_base/window::doc

resources

srcNodeRef

pointer to original DOM node

style

HTML style attributes as cssText string or name/value hash

textDir

Bi-directional support, the main variable which is responsible for the direction of the text.
The text direction can be different than the GUI direction by using this parameter in creation
of a widget.

Allowed values:

"ltr"

"rtl"

"auto" - contextual the direction of a text defined by first strong letter.

By default is as the page direction.

title

HTML title attribute.

For form widgets this specifies a tooltip to display when hovering over
the widget (just like the native HTML title attribute).

For TitlePane or for when this widget is a child of a TabContainer, AccordionContainer,
etc., it's used to specify the tab label, accordion pane title, etc.

tooltip

When this widget's title attribute is used to for a tab label, accordion pane title, etc.,
this specifies the tooltip to appear when the mouse is hovered over that text.

Methods

_changeAttrValue ( name , value
)

Internal helper for directly changing an attribute value.

Parameters

Name

Summary

Type

Usage

name

The property to set.

String

required

value

The value to set in the property.

Mixed

required

_get ( name , names
)

Private function that does a get based off a hash of names

Parameters

Name

Summary

Type

Usage

name

undefined

required

names

Hash of names of custom attributes

undefined

required

_onBlur ( )

This is where widgets do processing for when they stop being active,
such as changing CSS classes. See onBlur() for more details.

_onFocus ( )

This is where widgets do processing for when they are active,
such as changing CSS classes. See onFocus() for more details.

_onMap ( type
)

Maps on() type parameter (ex: "mousemove") to method name (ex: "onMouseMove").
If type is a synthetic event like touch.press then returns undefined.

Parameters

Name

Summary

Type

Usage

type

String|Function

required

_onShow ( )

Internal method called when this widget is made visible.
See onShow for details.

_set ( name , value
)

Helper function to set new value for specified attribute, and call handlers
registered with watch() if the value has changed.

Parameters

Name

Summary

Type

Usage

name

String

required

value

anything

required

_setFocusedAttr ( val
)

Parameters

Name

Summary

Type

Usage

val

undefined

required

_setOwnerDocumentAttr ( val
)

Parameters

Name

Summary

Type

Usage

val

undefined

required

_setStyleAttr ( value
)

Sets the style attribute of the widget according to value,
which is either a hash like {height: "5px", width: "3px"}
or a plain string

Parameters

Name

Summary

Type

Usage

value

String||Object

required

_setupChild ( child
)

Common setup for initial children and children which are added after startup

Parameters

Name

Summary

Type

Usage

child

dijit/_WidgetBase

required

addChild ( child , insertIndex
)

Parameters

Name

Summary

Type

Usage

child

dijit/_WidgetBase

required

insertIndex

Integer

optional

applyTextDir ( element , text
)

The function overridden in the _BidiSupport module,
originally used for setting element.dir according to this.textDir.
In this case does nothing.

Parameters

Name

Summary

Type

Usage

element

DOMNode

required

text

String

required

attr ( name , value
)

Set or get properties on a widget instance.

Parameters

Name

Summary

Type

Usage

name

The property to get or set. If an object is passed here and not
a string, its keys are used as names of attributes to be set
and the value of the object as values to set in the widget.

String|Object

required

value

Optional. If provided, attr() operates as a setter. If omitted,
the current value of the named property is returned.

Object

optional

buildRendering ( )

connect ( obj , event , method
)

Deprecated, will be removed in 2.0, use this.own(on(...)) or this.own(aspect.after(...)) instead.

Connects specified obj/event to specified method of this object
and registers for disconnect() on widget destroy.

Provide widget-specific analog to dojo.connect, except with the
implicit use of this widget as the target object.
Events connected with this.connect are disconnected upon
destruction.

Hash of initialization parameters for widget, including scalar values (like title, duration etc.)
and functions, typically callbacks like onClick.
The hash can contain any of the widget's properties, excluding read-only properties.

Object|null

required

srcNodeRef

If a srcNodeRef (DOM node) is specified:

use srcNodeRef.innerHTML as my contents

if this is a behavioral widget then apply behavior to that srcNodeRef

otherwise, replace srcNodeRef with my generated DOM tree

DOMNode|String

optional

defer ( fcn , delay
)

Wrapper to setTimeout to avoid deferred functions executing
after the originating widget has been destroyed.
Returns an object handle with a remove method (that returns null) (replaces clearTimeout).

Parameters

Name

Summary

Type

Usage

fcn

undefined

required

delay

undefined

required

destroy ( preserveDom
)

Destroy this widget, but not its descendants.
This method will, however, destroy internal widgets such as those used within a template.

Parameters

Name

Summary

Type

Usage

preserveDom

If true, this method will leave the original DOM structure alone.
Note: This will not yet work with _Templated widgets

Boolean

required

destroyDescendants ( preserveDom
)

Recursively destroy the children of this widget and their
descendants.

Parameters

Name

Summary

Type

Usage

preserveDom

If true, the preserveDom attribute is passed to all descendant
widget's .destroy() method. Not for use with _Templated
widgets.

Boolean

optional

destroyRecursive ( preserveDom
)

Destroy this widget and its descendants

Parameters

Name

Summary

Type

Usage

preserveDom

If true, this method will leave the original DOM structure
alone of descendant Widgets. Note: This will NOT work with
dijit._Templated widgets.

Boolean

optional

destroyRendering ( preserveDom
)

Destroys the DOM nodes associated with this widget

Parameters

Name

Summary

Type

Usage

preserveDom

If true, this method will leave the original DOM structure alone
during tear-down. Note: this will not work with _Templated
widgets yet.

Boolean

optional

disconnect ( handle
)

Deprecated, will be removed in 2.0, use handle.remove() instead.

Disconnects handle created by connect.

Parameters

Name

Summary

Type

Usage

handle

undefined

required

emit ( type , eventObj , callbackArgs
)

Used by widgets to signal that a synthetic event occurred, ex:

myWidget.emit("attrmodified-selectedChildWidget", {}).

Emits an event on this.domNode named type.toLowerCase(), based on eventObj.
Also calls onType() method, if present, and returns value from that method.
By default passes eventObj to callback, but will pass callbackArgs instead, if specified.
Modifies eventObj by adding missing parameters (bubbles, cancelable, widget).

Parameters

Name

Summary

Type

Usage

type

String

required

eventObj

Object

optional

callbackArgs

Array

optional

get ( name
)

Get a property from a widget.

Parameters

Name

Summary

Type

Usage

name

The property to get.

undefined

required

getChildren ( )

Returns all the widgets contained by this, i.e., all widgets underneath this.containerNode.
Does not return nested widgets, nor widgets that are part of this widget's template.

getCommands ( )

Get commands with confirmation.

getDescendants ( )

Returns all the widgets contained by this, i.e., all widgets underneath this.containerNode.
This method should generally be avoided as it returns widgets declared in templates, which are
supposed to be internal/hidden, but it's left here for back-compat reasons.

getIndexInParent ( )

Returns the index of this widget within its container parent.
It returns -1 if the parent does not exist, or if the parent
is not a dijit._Container

getIndexOfChild ( child
)

Gets the index of the child in this container or -1 if not found

Parameters

Name

Summary

Type

Usage

child

dijit/_WidgetBase

required

getNextSibling ( )

Returns null if this is the last child of the parent,
otherwise returns the next element sibling to the "right".

getParent ( )

Returns the parent widget of this widget

getPreviousSibling ( )

Returns null if this is the first child of the parent,
otherwise returns the next element sibling to the "left".

getTextDir ( text , originalDir
)

Return direction of the text.
The function overridden in the _BidiSupport module,
its main purpose is to calculate the direction of the
text, if was defined by the programmer through textDir.

Return this widget's explicit or implicit orientation (true for LTR, false for RTL)

layout ( )

Widgets override this method to size and position their contents/children.
When this is called this._contentBox is guaranteed to be set (see resize()).

This is called after startup(), and also when the widget's size has been
changed.

on ( type , func
)

Parameters

Name

Summary

Type

Usage

type

protected

String|Function

required

func

Function

required

onBlur ( )

Called when the widget stops being "active" because
focus moved to something outside of it, or the user
clicked somewhere outside of it, or the widget was
hidden.

onClick ( event
)

Connect to this function to receive notifications of mouse click events.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onClose ( )

Called when this widget is being displayed as a popup (ex: a Calendar popped
up from a DateTextBox), and it is hidden.
This is called from the dijit.popup code, and should not be called directly.

Also used as a parameter for children of dijit/layout/StackContainer or subclasses.
Callback if a user tries to close the child. Child will be closed if this function returns true.

onDblClick ( event
)

Connect to this function to receive notifications of mouse double click events.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onFocus ( )

Called when the widget becomes "active" because
it or a widget inside of it either has focus, or has recently
been clicked.

onHide ( )

Called when another widget becomes the selected pane in a
dijit/layout/TabContainer, dijit/layout/StackContainer,
dijit/layout/AccordionContainer, etc.

Also called to indicate hide of a dijit.Dialog, dijit.TooltipDialog, or dijit.TitlePane.

onKeyDown ( event
)

Connect to this function to receive notifications of keys being pressed down.

Parameters

Name

Summary

Type

Usage

event

key Event

undefined

required

onKeyPress ( event
)

Connect to this function to receive notifications of printable keys being typed.

Parameters

Name

Summary

Type

Usage

event

key Event

undefined

required

onKeyUp ( event
)

Connect to this function to receive notifications of keys being released.

Parameters

Name

Summary

Type

Usage

event

key Event

undefined

required

onMouseDown ( event
)

Connect to this function to receive notifications of when the mouse button is pressed down.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onMouseEnter ( event
)

Connect to this function to receive notifications of when the mouse moves onto this widget.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onMouseLeave ( event
)

Connect to this function to receive notifications of when the mouse moves off of this widget.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onMouseMove ( event
)

Connect to this function to receive notifications of when the mouse moves over nodes contained within this widget.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onMouseOut ( event
)

Connect to this function to receive notifications of when the mouse moves off of nodes contained within this widget.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onMouseOver ( event
)

Connect to this function to receive notifications of when the mouse moves onto nodes contained within this widget.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onMouseUp ( event
)

Connect to this function to receive notifications of when the mouse button is released.

Parameters

Name

Summary

Type

Usage

event

mouse Event

undefined

required

onShow ( )

Called when this widget becomes the selected pane in a
dijit/layout/TabContainer, dijit/layout/StackContainer,
dijit/layout/AccordionContainer, etc.

Also called to indicate display of a dijit.Dialog, dijit.TooltipDialog, or dijit.TitlePane.

own ( )

Track specified handles and remove/destroy them when this instance is destroyed, unless they were
already removed/destroyed manually.

placeAt ( reference , position
)

Place this widget somewhere in the DOM based
on standard domConstruct.place() conventions.

Parameters

Name

Summary

Type

Usage

reference

Widget, DOMNode, or id of widget or DOMNode

String|DomNode|_Widget

required

position

If reference is a widget (or id of widget), and that widget has an ".addChild" method,
it will be called passing this widget instance into that method, supplying the optional
position index passed. In this case position (if specified) should be an integer.

If reference is a DOMNode (or id matching a DOMNode but not a widget),
the position argument can be a numeric index or a string
"first", "last", "before", or "after", same as dojo/dom-construct::place().

String|Int

optional

Examples

// create a Button with no srcNodeRef, and place it in the body:
var button = new Button({ label:"click" }).placeAt(win.body());
// now, 'button' is still the widget reference to the newly created button
button.on("click", function(e){ console.log('click'); }));

// create a button out of a node with id="src" and append it to id="wrapper":
var button = new Button({},"src").placeAt("wrapper");

// place a new button as the first element of some div
var button = new Button({ label:"click" }).placeAt("wrapper","first");

// create a contentpane and add it to a TabContainer
var tc = dijit.byId("myTabs");
new ContentPane({ href:"foo.html", title:"Wow!" }).placeAt(tc)

postCreate ( )

postMixInProperties ( )

Called after the parameters to the widget have been read-in,
but before the widget template is instantiated. Especially
useful to set properties that are referenced in the widget
template.

removeChild ( child
)

Parameters

Name

Summary

Type

Usage

child

dijit/_WidgetBase

required

resize ( changeSize , resultSize
)

Call this to resize a widget, or after its size has changed.

Parameters

Name

Summary

Type

Usage

changeSize

Sets the widget to this margin-box size and position.
May include any/all of the following properties:

{w: int, h: int, l: int, t: int}

Object

optional

resultSize

The margin-box size of this widget after applying changeSize (if
changeSize is specified). If caller knows this size and
passes it in, we don't need to query the browser to get the size.

{w: int, h: int}

Object

optional

set ( name , value
)

Set a property on a widget

Parameters

Name

Summary

Type

Usage

name

The property to set.

undefined

required

value

The value to set in the property.

undefined

required

setAttribute ( attr , value
)

Deprecated. Use set() instead.

Parameters

Name

Summary

Type

Usage

attr

String

required

value

anything

required

startup ( )

Called after all the widgets have been instantiated and their
dom nodes have been inserted somewhere under win.doc.body.

Widgets should override this method to do any initialization
dependent on other widgets existing, and then call
this superclass method to finish things off.

startup() in subclasses shouldn't do anything
size related because the size of the widget hasn't been set yet.

subscribe ( t , method
)

Deprecated, will be removed in 2.0, use this.own(topic.subscribe()) instead.

Subscribes to the specified topic and calls the specified method
of this object and registers for unsubscribe() on widget destroy.

Provide widget-specific analog to dojo.subscribe, except with the
implicit use of this widget as the target object.

Parameters

Name

Summary

Type

Usage

t

The topic

String

required

method

The callback

Function

required

Examples

var btn = new Button();
// when /my/topic is published, this button changes its label to
// be the parameter of the topic.
btn.subscribe("/my/topic", function(v){
this.set("label", v);
});

Unsubscribes handle created by this.subscribe.
Also removes handle from this widget's list of subscriptions

Parameters

Name

Summary

Type

Usage

handle

Object

required

watch ( name , callback
)

Watches a property for changes

Parameters

Name

Summary

Type

Usage

name

Indicates the property to watch. This is optional (the callback may be the
only parameter), and if omitted, all the properties will be watched

String

optional

callback

The function to execute when the property changes. This will be called after
the property has been changed. The callback will be called with the |this|
set to the instance, the first argument as the name of the property, the
second argument as the old value and the third argument as the new value.