Introduction

This is documentation for taskbar widget.

Options

Option name and values Description
Option name:
autoHide

Default value:
false

Allowed values:
false, true

Autohide is a feature that allows hiding of a taskbar when it's not needed.

Taskbar will be visible when user moves mouse to the edge of the screen, or mouse hovers over a taskbar, or interaction is in progress (like draggable, resizable, or sortable), or when taskbar has an opened element (a menu, or the datepicker). Otherwise, taskbar will start hiding after a certain period of time, configured in durations.autoHideDelay option, with a animation length configured in durations.autoHideHide. When mouse pointer is moved to browser window edge, taskbar will start showing with an animation length configured in durations.autoHideShow.

Taskbar with autoHide set to true are not counted in when windowsContainment is calculated, because, for the most time, they are not visible.

Related options:
durations.autoHideDelay
durations.autoHideHide
durations.autoHideShow

Related events:
autoHideStart
autoHideProgress
autoHideStop

Related methods:
show
hide

Related demo:
Taskbar autoHide

Option name:
buttons

Default value:
null

Allowed values:
null
object

This option holds custom buttons that can be inserted into the taskbar. Custom buttons can be hold in two containers: user buttons container and system buttons container. User buttons container is a container after start buttons container, but before window buttons container, and the system buttons container is the last one (looking from left—in horizontal taskbar, and looking from top—in vertical taskbars).

This option only holds buttons config. Buttons order is configured in buttonsOrder and systemButtonsOrder options. Buttons can by configured only once, and then inserted or removed into both containers multiple times. Buttons can be changed after initialization. See related demo for details.

After buttons is first prepended, an $element property is added to it, representing jQuery object of button. Handlers can be binded to this object.

It's recommended for this object keys not to be numeric.

Related options:
buttonsOrder
systemButtonsOrder

Related demo:
Taskbar buttons

Option name:
buttonsOrder

Default value:
[]

Allowed values:
array of keys from buttons option

Array of strings coresponding to keys in buttons option, or to the names of system buttons. See the default value of systemButtonsOrder for full list of system buttons.

Buttons, both custom and system, present in this array will be visible. Buttons not present will not be visible.

Related options:
buttons
systemButtonsOrder

Related demo:
Taskbar buttons

Option name:
buttonsTooltips

Default value:
false

Allowed values:
false
true

Whether to show jQuery UI Tooltip on button's hover. This applies to start buttons, custom buttons, window buttons and system buttons.

Option name:
clock

Default value:
false

Allowed values:
false
true

Native button that display current time.

Time format and clock tooltip date format is configured per language, using clockDateFormat and clockTimeFormat keys in localization option for every language.

Available formats for clockTimeFormat can be found here.

Available formats for clockDateFormat can be found here. Date formatting depends on jQuery UI Datepicker localization files.

Clock can have datepicker, configured in clockShowDatepicker option.

Clock is probably reduntant, but useful for application that are designed to be used in fullscreen mode.

Related options:
clockShowDatepicker
buttonsOrder
systemButtonsOrder

Related demo:
Taskbar system buttons

Option name:
clockShowDatepicker

Default value:
true

Allowed values:
false
true

Whether to show datepicker when clock button is clicked. Setting this option to true will have no visible effect if no clock is present in the taskbar, either when clock option is set to false, or when both buttonsOrder and systemButtonsOrder does not contain clock.

Datepicker has no real function other than presenting dates.

Option name:
debug

Default value:
{
	environment: true,
	options: true,
	localization: true
}

Allowed values:
object with keys exactly as shown above

This is a object holding settings for debug functionality. Every key in this object is responsible for a one type of messages. See detailed options for more information.

It's recommended to have debug turned on in development mode. This way at least some problems can by identified early on.

Details:
debug.environment
debug.options
debug.localization

Related event:
debugLogAdd

Option name:
debug.environment

Default value:
true

Allowed values:
false
true

This option is responsible for debug messages related to environment. Things like missing jQuery plugins and missing stylesheets are in this category.

Related event:
debugLogAdd

Option name:
debug.options

Default value:
true

Allowed values:
false
true

This option is responsible for debug related to options being passed to both taskbar and window instances. Things like invalid option values and unknown options and events will be reported when debug.options if set to true.

Related event:
debugLogAdd

Option name:
debug.localization

Default value:
true

Allowed values:
false
true

This option is responsible for reporting missing translations and missing languages. Have it on when you're using built-in internationalization capabilities to make sure translation are thorough.

Related event:
debugLogAdd

Option name:
draggable

Default value:
false

Allowed values:
false
true
"horizontal"
"vertical"
"orientation"

Whether a taskbar should be draggable. Taskbar cannot be dragged freely. It can be dropped only on main window edges. Other options, draggableBetweenEdges and dropOnExisting has effect on behaviour configured via this option.

false means that taskbar is not draggable.

true means that taskbar is draggable.

"horizontal" means that taskbar is draggable, but only horizontally—from top edge to bottom edge and vice versa, and optionally between edges.

"vertical" means that taskbar is draggable, but only vertically—from left to right edge and vice versa, and optionally between edges.

"vertical" means that taskbar is draggable, but only within the current orientation that's been set via API, and optionally between edges.

Related options:
draggableBetweenEdges
dropOnExisting
resolveCollisions

Related events:
dragStart
drag
dragStop

Related demo:
Draggable taskbars

Option name:
draggableBetweenEdges

Default value:
true

Allowed values:
false
true

Whether a taskbar can be dragged along the current main window edge it's sticking to.

User will see difference beetwen false and true settings if horizontal taskbar has horizontalWidth set to something other than 100%, or vertical taskbar has verticalHeight set to something other than 100%. When the longer taskbar edge is 100%, this option has no visible effect.

Related options:
draggable
dropOnExisting
resolveCollisions

Related events:
dragStart
drag
dragStop

Related demo:
Taskbars draggable between edges

Option name:
dropOnExisting

Default value:
false

Allowed values:
false
true

Whether a taskbar can be dropped on a windows edge that has a taskbar already. It's not recommended to set this option to true, as it could be later hard to detect for user that he moved one taskbar over another.

With this option set to true, and with default equal z-indexes, a taskbar that was once covered will be invisible until taskbar on top of it is moved away. Also, with this option set to true and with default equal z-indexes, a taskbar can be dragged onto another and immediately disappear when dropped, because DOM position of taskbar it is dropped on gives it the higher priority in CSS stack.

Related options:
draggable
draggableBetweenEdges
resolveCollisions

Option name:
durations

Default value:
{
	buttonsTooltipsHide : true,
	buttonsTooltipsShow : true,
	autoHideDelay       : 1200,
	autoHideHide        : "slow",
	autoHideShow        : "fast"
},

Allowed values:
object with keys exactly as shown above

This is a object holding various animation durations. Every key in this object is responsible for duration of one particular animation. See detailed options for more information.

Note: Changing duration when animation is in progress will not change duration of this animation. This is the intended behaviour. If you need to end animation immediately, use show, or hide methods with a parameter false.

Details:
durations.buttonsTooltipsHide
durations.buttonsTooltipsShow
durations.autoHideDelay
durations.autoHideHide
durations.autoHideShow

Option name:
durations.buttonsTooltipsHide

Default value:
true

Allowed values:
valid value for jQuery UI Tooltip's "hide" options
false for no animation

This duration will be propagated to tooltips hide option.

Option name:
durations.buttonsTooltipsShow

Default value:
true

Allowed values:
valid value for jQuery UI Tooltip's "show" options
false for no animation

This duration will be propagated to tooltips show option.

Option name:
durations.autoHideDelay

Default value:
1200

Allowed values:
valid jQuery animation
false for no animation

This is a delay between the last action that clears a taskbar for autohide and an actual autohide start.

Related demo:
Taskbar autoHide

Option name:
durations.autoHideHide

Default value:
"slow"

Allowed values:
valid jQuery animation
false for no animation

This is a speed of autohide hidding.

Related method:
hide

Related demo:
Taskbar autoHide

Option name:
durations.autoHideShow

Default value:
"fast"

Allowed values:
valid jQuery animation
false for no animation

This is a speed of autohide showing.

Related method:
show

Related demo:
Taskbar autoHide

Option name:
fallbackLanguage

Default value:
"en"

Allowed values:
any key from localization option

When looking for translations, first a dictionary for language passed in language option will be checked, but when this fails, this option will be used as language to search for translations.

Related options:
language
languages

Option name:
icons

Default value:
{
	clock                : null,
	languageSelect       : null,
	menuWindowClose      : "ui-icon-closethick",
	minimizeAll          : "ui-icon-minusthick",
	networkMonitorOffline: "ui-icon-alert",
	networkMonitorOnline : "ui-icon-signal",
	startButton          : null,
	startButtonSet       : "ui-icon-circle-triangle",
	toggleFullscreenOff  : "ui-icon-arrow-4-diag",
	toggleFullscreenOn   : "ui-icon-arrow-4-diag"
}

Allowed values:
object with keys exactly as shown above

Details:
icons.clock
icons.languageSelect
icons.menuWindowClose
icons.minimizeAll
icons.networkMonitorOffline
icons.networkMonitorOnline
icons.startButton
icons.startButtonSet
icons.toggleFullscreenOff
icons.toggleFullscreenOn

Related demos:
Icons
famfamfam iconset

Option name:
icons.clock

Default value:
null

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for clock button.

This option will have no visible effect if clock option is set to false.

Option name:
icons.languageSelect

Default value:
null

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for languageSelect button.

This option will have no visible effect if languageSelect option is set to false.

Option name:
icons.menuWindowClose

Default value:
"ui-icon-closethick"

Allowed values:
valid jQuery icon value
any custom class name that adds icon

This icon will be used for window group menus close button.

Related demo:
Window groups

Option name:
icons.minimizeAll

Default value:
"ui-icon-minusthick"

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for minimizeAll button.

This option will have no visible effect if minimizeAll option is set to false.

Option name:
icons.networkMonitorOffline

Default value:
"ui-icon-alert"

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for networkMonitor button, when current connection state is offline.

This option will have no visible effect if networkMonitor option is set to false.

Option name:
icons.networkMonitorOnline

Default value:
"ui-icon-signal"

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for networkMonitor button, when current connection state is online.

This option will have no visible effect if networkMonitor option is set to false.

Option name:
icons.startButton

Default value:
null

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for all start buttons in a taskbar. If this option is not null, it will be used for start buttons icon. Otherwise, icons.startButtonSet will be used.

This option will have no visible effect if there are no start buttons, either none are prepended to taskbar, or startButtons option is set to false.

Option name:
icons.startButtonSet

Default value:
"ui-icon-circle-triangle"

Allowed values:
"ui-icon-arrow-1"
"ui-icon-arrow-2"
"ui-icon-arrowrefresh-1"
"ui-icon-arrowreturn-1"
"ui-icon-arrowreturnthick-1"
"ui-icon-arrowstop-1"
"ui-icon-arrowthick-1"
"ui-icon-arrowthick-2"
"ui-icon-arrowthickstop-1"
"ui-icon-carat-1"
"ui-icon-carat-2"
"ui-icon-circle-triangle"
"ui-icon-triangle-1"
"ui-icon-triangle-2"

Icon set for all start buttons in a taskbar. This option will only be used if icons.startButtonSet is set to null.

If this option is in effect, depending on taskbar edge, different icon will be used for start menus. Button arrow will always point toward the center of window.

Horizontal taskbar with horizontalStick set to "bottom left" will have, for example, "ui-icon-triangle-2-n" icon set to start buttons, and a vertical taskbar with verticalStick set to "top right" will have, for example, "ui-icon-carat-2-w" icon set to start buttons.

This option will have no visible effect if there are no start buttons, either none are prepended to taskbar, or startButtons option is set to false.

Option name:
icons.toggleFullscreenOff

Default value:
"ui-icon-arrow-4-diag"

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for toggleFullscreen button, when browser is not in fullscreen mode.

This option will have no visible effect if toggleFullscreen option is set to false.

Option name:
icons.toggleFullscreenOn

Default value:
"ui-icon-arrow-4-diag"

Allowed values:
valid jQuery icon value
any custom class name that adds icon

Icon for toggleFullscreen button, when browser is in fullscreen mode.

This option will have no visible effect if toggleFullscreen option is set to false.

Option name:
horizontalRowHeight

Default value:
"auto"

Allowed values:
"auto" (recommended)
integer

Total height, including borders, of a single taskbar row, when orientation is set to "horizontal".

It's recommended for this option to be set to "auto", as it gives good and consistent effects with different jQuery UI Themes, but integer value is also supported.

Related options:
horizontalRows
horizontalRowsMax
horizontalRowsMin
horizontaltick
horizontalWidth

Option name:
horizontalRows

Default value:
1

Allowed values:
integer

Number of rows when orientation is set to "horizontal". Value can be changed by user if resizable is set to true and user resizes taskbar.

Related options:
horizontalRowHeight
horizontalRowsMax
horizontalRowsMin
horizontaltick
horizontalWidth

Option name:
horizontalRowsMax

Default value:
2

Allowed values:
integer

Maximum number of rows when orientation is set to "horizontal".

This will have effect on resizable.

Related options:
horizontalRowHeight
horizontalRows
horizontalRowsMin
horizontaltick
horizontalWidth

Option name:
horizontalRowsMin

Default value:
1

Allowed values:
integer

Minimum number of rows when orientation is set to "horizontal".

This will have effect on resizable.

Related options:
horizontalRowHeight
horizontalRows
horizontalRowsMax
horizontaltick
horizontalWidth

Option name:
horizontalStick

Default value:
"bottom left"

Allowed values:
"bottom left"
"bottom right"
"top left"
"top right"

Edges to which taskbar will stick when orientation is set to "horizontal".

This option will have no effect when horizontalWidth is set to "100%".

Related options:
draggableBetweenEdges
horizontalRowHeight
horizontalRows
horizontalRowsMax
horizontalRowsMin
horizontalWidth

Related demo:
Taskbars draggable between edges

Option name:
horizontalWidth

Default value:
"100%"

Allowed values:
percent, for example "80%"
integer (for pixels)

Taskbar width when in horizontal mode.

Percentage values (always as string, for example "80%") and integers are supported.

Integer value for this option is not recommended, because your users can have all the different screen resolution.

Related options:
draggableBetweenEdges
horizontalRowHeight
horizontalRows
horizontalRowsMax
horizontalRowsMin
horizontaltick
verticalHeight

Related demo:
Taskbars draggable between edges

Option name:
language

Default value:
"en"

Allowed values:
any key from localization option object

Main language from which all translations will be taken. This language will be used for all taskbar translations and translation for all windows bound to this taskbar.

Note: rebinding window to another taskbar via the taskbar window option changes it translations (like buttons or confirm close) to those of new taskbar.

Related options:
fallbackLanguage
languages
localization

Option name:
languages

Default value:
[ "en" ]

Allowed values:
array containing some or all keys from localization option

Languages available for languageSelect widget.

Values in this array has to match keys in localization option object.

Note: Having only one item in this array does not disable languageSelect option. Passing an empty array does, however.

Related options:
fallbackLanguage
language
languageSelect

Related event:
languageChange

Option name:
languageSelect

Default value:
false

Allowed values:
false
true

System button that will let user change language to one of the languages passed in languages option.

Related options:
language
languages

Related event:
languageChange

Related demo:
Taskbar system buttons

Option name:
localization

Default value:
{}

Allowed values:
object

This option hold all localizations. This option is extended by every language file added to Simone. See translations documentation for more details on how this works.

Related option:
language

Related event:
languageChange

Option name:
menuAutoOpenOnBrowse

Default value:
true

Allowed values:
false
true

When set to true, hovering over taskbar button that have menu or datepicker connected to it will open that menu or datepicker, if a menu or datepicker is already opened on that taskbar.

When set to false, only clicking a button with a connected menu or datepicker shows that connected element.

Related demo:
Taskbar "menuAutoOpenOnBrowse" option

Option name:
minimizeAll

Default value:
true

Allowed values:
false
true

System button that allow to minimize all windows, and therefore exposing the viewport. Internally, clicking this button call minimizeAll method.

Related option:
minimizeAllHoverOpaqueWindows

Related method:
minimizeAll

Option name:
minimizeAllHoverOpaqueWindows

Default value:
true

Allowed values:
false
true

Setting this option to true will change the opacity of all windows when minimizeAll button is hovered by user.

Settings this option to false will have generate no effect when minimizeAll button is hovered by user.

Opacity used in this effect can be changed. Styling guide has a section regarding this.

Related demo:
Basic – basic functionality covers this effect

Option name:
networkMonitor

Default value:
false

Allowed values:
false
true

System button that is connected to browser navigator.onLine property and document.ononline/document.onoffline events.

If navigator.onLine is undefined, this button will not be shown, even if networkMonitor is set to true.

Note: Some browsers implement an API that this button is using incorrectly. See this page for details.

Related demo:
Taskbar system buttons

Option name:
orientation

Default value:
"horizontal"

Allowed values:
"horizontal"
"vertical"

Tells taskbar to stretch either horizontally or vertically. Horizontal taskbar will stretch on bottom or top edge of the main window. Vertical taskbar will strech on or right edge of the main window.

Both settings implements some of the taskbar features differently. For example, horizontal taskbar with multiple rows will have buttons in each row, while vertical taskbar will always have button in one column. Window buttons on horizontal taskbar will be resized to fit their container, where on vertical taskbar a scrollbar will be used when there are too many buttons.

Related demo:
Draggable taskbars

Option name:
propagateWindowBlur

Default value:
false

Allowed values:
false
true

Whether window blur event should propagate to windows binded to taskbar, and blur the window being currently on top.

Related demo:
Taskbar "propagateWindowBlur" option

Option name:
resizable

Default value:
false

Allowed values:
false
true

Determines if taskbar is resizable.

Taskbar cannot by resized freely. It can only be resized by a row, if orientation is set to "horizontal", or by a column, if orientation is set to "vertical".

Resizable is constrained by horizontalRowsMin and horizontalRowsMax options when taskbar is in horizontal mode, and by verticalColumnsMin and verticaColumnsMax options when taskbar is in vertical mode.

Related option:
resizableHandleOverflow

Related demo:
Resizable taskbars

Option name:
resizableHandleOverflow

Default value:
2

Allowed values:
integer

How much pixels on each side will the resizable handle have. This value is also used for autoHide to define the space on which user can hover to start showing taskbar.

It's recommended not to change this value, because it's optimal from UX point of view. Values >=4 would render windows that stick to a taskbar unresizable on the edge touching taskbar. Values lower than 1 are not supported and will be corrected to 1.

Related option:
resizable

Option name:
resolveCollisions

Default value:
true

Allowed values:
false
true

Should the colliding taskbar be resized to not cover one another, or should no action be taken when taskbar overlap each other.

Related option:
dropOnExisting

Option name:
startButtons

Default value:
true

Allowed values:
false
true

Whether or not start buttons should be visible.

By default, taskbar has no start menus and they ought to be created. See related demo for code examples on how to build and manipulate start buttons and start menus.

Related demo:
Taskbar start buttons

Option name:
systemButtonsOrder

Default value:
[ "languageSelect", "networkMonitor", "toggleFullscreen", "clock", "minimizeAll" ]

Allowed values:
array containing system buttons names and optionally keys from buttons option

Array of strings corresponding to keys in buttons option or to the names of system buttons. See the default value of this option for full list of system buttons.

Buttons, both custom and system, present in this array will be visible. Buttons not present will not be visible.

Related options:
buttons
buttonsOrder

Related demos:
Taskbar buttons
Taskbar system buttons

Option name:
toggleFullscreen

Default value:
false

Allowed values:
false
true

Native button connected to browser fullscreen API.

If fullscreen API is not available in the browser, this button will not be shown, even if toggleFullscreen is set to true.

When this button is clicked by user (note: this action cannot be triggered programmatically), a fullscreen is requested (when browser is not in fullscreen mode), or fullscreen exit is requested (when browser is in fullscreen mode). Requesting fullscreen mode does not necessary means that browser will go fullscreen, and requesting fullscreen does not necessary means that browser will leave fullscreen.

This button will also hold current fullscreen mode status.

See this page for list of browsers implementing fullscreen API.

Related events:
beforeRequestFullscreen
requestFullscreen

Related demo:
Taskbar system buttons

Option name:
windowButtonsIconsOnly

Default value:
false

Allowed values:
false
true

Should the window buttons have only icons, or should icons and labels by used on window buttons.

Related demo:
Taskbar "windowButtonsIconsOnly" option

Option name:
verticalColumns

Default value:
1

Allowed values:
integer

Number of columns when orientation is set to "vertical". Value can be changed by user if resizable is set to true and user resizes taskbar.

Related options:
verticalColumnsMax
verticalColumnsMin
verticalColumnsWidth
verticalHeight
verticalStick

Option name:
verticalColumnsMax

Default value:
2

Allowed values:
integer

Maximum number of columns when orientation is set to "vertical".

This will have effect on resizable.

Related options:
verticalColumns
verticalColumnsMin
verticalColumnsWidth
verticalHeight
verticalStick

Option name:
verticalColumnsMin

Default value:
1

Allowed values:
integer

Minimum number of columns when orientation is set to "vertical".

This will have effect on resizable.

Related options:
verticalColumns
verticalColumnsMax
verticalColumnsWidth
verticalHeight
verticalStick

Option name:
verticalColumnWidth

Default value:
100

Allowed values:
percent, for example "10%"
integer (for pixels)

Total width, including borders, of a single taskbar column, when orientation is set to "vertical".

Related options:
verticalColumns
verticalColumnsMax
verticalColumnsMin
verticalHeight
verticalStick

Related demo:
Smooth resizable on vertical taskbar

Option name:
verticalHeight

Default value:
"100%"

Allowed values:
percent, for example "80%"
integer (for pixels)

Taskbar height when in horizontal mode.

Percentage values (always as string, for example "80%") and integers are supported.

Integer value for this option is not recommended, because your users can have all the different screen resolutions.

Related options:
verticalColumns
verticalColumnsMax
verticalColumnsMin
verticalColumnsWidth
verticalStick

Related demo:
Taskbars draggable between edges

Option name:
verticalStick

Default value:
"top right"

Allowed values:
"bottom left"
"bottom right"
"top left"
"top right"

Edges to which taskbar will stick when orientation is set to "horizontal".

This option will have no effect when verticalHeight is set to "100%".

Related options:
verticalColumns
verticalColumnsMax
verticalColumnsMin
verticalColumnsWidth
verticalHeight

Related demo:
Taskbars draggable between edges

Option name:
viewportMargins

Default value:
{
	top   : [ 0, "correct" ],
	right : [ 0, "correct" ],
	bottom: [ 0, "correct" ],
	left  : [ 0, "correct" ]
}

Allowed values:
Object with structure as shown above

This option is used for changing window containment size. By default, all space that's not taken by taskbars is available to windows. However, this space can be shrinked, for example, to make space for top bar or other elements on the page.

This option is a object with four keys, one for every edge. Each edge is then an array with two values. First value is an integer, a pixel value of how much space on that edge should be taken from windows containment. Second values describes how should containment on that edge act in relation to taskbars on that edge. Four values are supported:

  • "correct" means that if any taskbar is present on a given edge, containment resulting from that taskbar will be used instead of given integer.
  • "correctDown" means that if any taskbar is present on a given edge, containment resulting from that taskbar will be used instead of given integer, but only if taskbar would take less space than the integer specified.
  • "correctUp" means that if any taskbar is present on a given edge, containment resulting from that taskbar will be used instead of given integer, but only if taskbar would take more space than the integer specified.
  • "correctNone" means that the integer setting is final and cannot be change by taskbar on a given edge.

Related option:
windowsContainment

Related demo:
Taskbar "viewportMargins" option

Option name:
windowButtonsSortable

Default value:
true

Allowed values:
false
true

Whether or not the taskbar window buttons are sortable by the user, using jQuery UI Sortable.

Buttons are sortable within a single taskbar only.

Related demo:
Sortable window buttons

Option name:
windowsContainment

Default value:
"viewport"

Allowed values:
"viewport"
"visible"

Defines containment for all windows binded to taskbar. Two values are possible:

  • "viewport" means that existing taskbars (with autoHide set to false) will define boundaries in which windows will exist.
  • "visible" means that existing taskbars (with autoHide set to false) will define boundaries in which windows draggable handle will be accessible, giving ability to move it almost out of sight, but not to a point where is becomes unusable.

Related option:
viewportMargins

Window widget will inherit it's containment from this option, if window's containment option is set to "inherit", which is by default.

Related demos:
Containments – difference between both settings
Taskbar "viewportMargins" option

Option name:
windowsInitialZIndex

Default value:
100

Allowed values:
integer

Initial z-index of windows bound to taskbar. If you want to change this option's value and you have multiple taskbars on one page, it's highly recommended that you change value for all current and future instances at once, for example, by calling the following code:

// true passed as a first param is an instruction to propagate
// options to instances, that is, an already created taskbars
$.simone.taskbarSetup( true, {
	windowsInitialZIndex: 3000
});

Scenarios where taskbars does not have the save value of this option were not tested.

Tip: to change taskbar's z-index, use CSS.

Events

Event name and UI object Description
Event name:
every event

Every UI object contains:
{
	// widget instance; it's the same
	// object jQuery widget instance()
	// method returns since jQuery 1.11
	instance  : { ... },
	// jQuery object containing taskbar
	taskbar   : $taskbar,
}

In addition to event-specific properties, every UI object contains $taskbar and instance properties, as shown on the left.

instance is a jQuery UI taskbar widget instance. It's the same object that jQuery UI instance() method return since jQuery UI 1.11.

$taskbar is a jQuery object fo DOM element on which taskbar() was called.

Event name:
autoHideStart

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// jQuery object containing handle,
	// one on which mouseenter triggers
	// taskbar show() when it's is hidden
	handle    : $handle,
	// whether it's hide that started
	hide      : true,
	// is it a quick hide? can only be
	// true if triggerApi is true
	quick     : false,
	// whether it's show that started
	show      : false,
	// was this triggered by API, either
	// hide or show method,
	// or comes from user
	triggerApi: false
}

Triggered when auto hide move starts. It is triggered when taskbar starts hiding and when taskbar starts showing. ui.hide tells which one it is.

Event name:
autoHideProgress

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object containing handle,
	// one on which mouseenter triggers
	// taskbar show() when it's is hidden
	handle    : $handle,
	// jQuery object containing taskbar
	taskbar   : $taskbar,
	// whether it's hide that started
	hide      : true,
	// widget instance
	instance  : [ object ],
	// whether it's show that started
	show      : false,
	// was this triggered by API, either
	// hide or show method,
	// or comes from user
	triggerApi: true
}

Triggered when auto hide move is in progress. It is triggered when taskbar starts hiding and when taskbar starts showing. ui.hide tells which one it is.

This event is triggered during animation, so it can trigger only once or twice, or not trigger at all. Don't put any crucial code inside this event—the kind that has to be executed—or put it again in autoHideStart or autoHideStop event handlers.

Event name:
autoHideStop

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object containing handle,
	// one on which mouseenter triggers
	// taskbar show() when it's is hidden
	handle    : $handle,
	// whether it's hide that started
	hide      : false,
	// is it a quick hide? can only be
	// true if triggerApi is true
	quick     : true,
	// whether it's show that started
	show      : true,
	// was this triggered by API, either
	// hide or show method,
	// or comes from user
	triggerApi: false
}

Triggered when auto hide move stops. It is triggered when taskbar stops hiding and when taskbar stops showing. ui.hide tells which one it is.

Event name:
create

Cancelable: no

Example UI object (in addition to what every event UI object has):
{}

This event if triggered when taskbar widget is successfully created.

This event if triggered only once, when widget has been fully created. For refreshes of taskbar, refer to beforeRefresh and refresh events.

This event will not be triggered if widget creation failed. If that happens, set debug.environment to true and check the output of debugLogAdd event.

Event name:
debugLogAdd

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// natural text message,
	// communicating what went wrong
	message: "...",
	// error level:
	// 0 - error
	// 1 - warning
	// 2 - notice
	level: 1,
	levelName: "warning",
	// error type:
	// 0 - environment
	// 1 - localization
	// 2 - options
	type: 2,
	typeName: "options",
	// could be taskbar or window
	$target: $target
}

Triggered when message is added to debug log.

When this event is cancelled, no message will be added to console.

Setting any of debug object properties to false does not prevent this event, it does however prevent console output.

You can change error level (although it's not recommended, because ui.level = 0 means something is wrong with your code):

$( ".taskbar" ).taskbar( "option", "debugLogAdd", function ( event, ui ) {
	ui.level = ! ui.level ? 1 : ui.level;
});


ui.level can be also changed for other levels, so for example, certain warnings can be upgraded to more severe.

ui.level === 0 will call console.error.

ui.level === 1 will call console.warning.

ui.level === 2 will call console.log.

User's interactions with taskbar can trigger debug messages, for example, when user performs action that require the use of i18n, but language or key in dictionary is missing.

Related options:
debug
debug.environment
debug.localization
debug.options

Event name:
bind

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// window that was bound
	$window: $window,
}

Triggered when window is bound to taskbar.

Event name:
unbind

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// window that was unbound
	$window: $window,
}

Triggered when window is unbound from taskbar.

Event name:
dragStart

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 400,
	},
	// taskbar original offset
	originalOffset: {
		left  : 0,
		top   : 300,
	},
	// taskbar original position
	originalPosition: {
		left  : 0,
		top   : 400,
	},
	// taskbar current position
	position: {
		left  : 0,
		top   : 400,
	}
}

Triggered when taskbar draggable starts.

This event caries properties from ui object of jQuery UI Draggable start event.

Original draggable start event object is passed.

Related demo:
Taskbar's draggable events

Event name:
drag

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 38,
		top   : 456,
	},
	// taskbar original offset
	originalOffset: {
		left  : 0,
		top   : 300,
	},
	// taskbar original position
	originalPosition: {
		left  : 0,
		top   : 300,
	},
	// taskbar current position
	position: {
		left  : 38,
		top   : 456,
	}
}

Triggered when taskbar draggable in in progress.

This event caries properties from ui object of jQuery UI Draggable drag event.

Original draggable drag event object is passed.

Related demo:
Taskbar's draggable events

Event name:
dragStop

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 862,
		top   : 304,
	},
	// taskbar original offset
	originalOffset: {
		left  : 0,
		top   : 300,
	},
	// taskbar original position
	originalPosition: {
		left  : 1240,
		top   : 29,
	},
	// taskbar current position
	position: {
		left  : 862,
		top   : 204,
	}
}

Triggered when taskbar draggable stops.

This event caries properties from ui object of jQuery UI Draggable stop event.

Original draggable stop event object is passed.

Related demo:
Taskbar's draggable events

Event name:
beforeDrop

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// edge on which taskbar
	// is being dropped
	edge: "left",
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 259
	},
	// taskbar current orientation
	orientation: "vertical",
	// original edge from which
	// taskbar was dragged
	originalEdge: "right",
	// taskbar original orientation
	originalOrientation: "vertical",
	// taskbar original stick,
	// for current orientation
	originalStick: "top right",
	// taskbar current position
	position: {
		left  : 0,
		top   : 159
	},
	// taskbar current stick
	stick: "top left"
}

Triggered before taskbar draggable handler is dropped on droppable.

If this event is canceled, taskbar will not be moved from it's original position.

If this event is cancelled, drop event will not trigger for current drag.

This event caries properties from jQuery UI Droppable drop event.

Related demo:
Taskbar's draggable events

Event name:
drop

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// edge on which taskbar
	// is being dropped
	edge: "left",
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 259
	},
	// taskbar current orientation
	orientation: "vertical",
	// original edge from which
	// taskbar was dragged
	originalEdge: "right",
	// taskbar original orientation
	originalOrientation: "vertical",
	// taskbar original stick,
	// for current orientation
	originalStick: "top right",
	// taskbar current position
	position: {
		left  : 0,
		top   : 159
	},
	// taskbar current stick
	stick: "top left"
}

Triggered after taskbar draggable handler is dropped on droppable.

This event will not be triggered if beforeDrop event was cancelled.

This event caries properties from jQuery UI Droppable drop event.

Related demo:
Taskbar's draggable events

Event name:
beforeDroppableOver

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// edge on which taskbar
	// is being dropped
	edge: "left",
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 259
	},
	// taskbar current orientation
	orientation: "vertical",
	// original edge from which
	// taskbar was dragged
	originalEdge: "right",
	// taskbar original orientation
	originalOrientation: "vertical",
	// taskbar current position
	position: {
		left  : 0,
		top   : 159
	}
}

Triggered before draggable helper enters droppable area.

If this event is canceled, taskbar droppable will not be highlighted.

If this event is cancelled, droppableOver event will not trigger this time.

This event caries properties from jQuery UI Droppable over event.

Related demo:
Taskbar's draggable events

Event name:
droppableOver

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// edge on which taskbar
	// is being dropped
	edge: "left",
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 259
	},
	// taskbar current orientation
	orientation: "vertical",
	// original edge from which
	// taskbar was dragged
	originalEdge: "right",
	// taskbar original orientation
	originalOrientation: "vertical",
	// taskbar current position
	position: {
		left  : 0,
		top   : 159
	}
}

Triggered after draggable helper enters droppable area.

This event will not be triggered if beforeDroppableOver event was cancelled.

This event caries properties from jQuery UI Droppable over event.

Related demo:
Taskbar's draggable events

Event name:
beforeDroppableOut

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// edge on which taskbar
	// is being dropped
	edge: "left",
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 259
	},
	// taskbar current orientation
	orientation: "vertical",
	// original edge from which
	// taskbar was dragged
	originalEdge: "right",
	// taskbar original orientation
	originalOrientation: "vertical",
	// taskbar current position
	position: {
		left  : 0,
		top   : 159
	}
}

Triggered before draggable helper leaves droppable area.

This event caries properties from jQuery UI Droppable out event.

Related demo:
Taskbar's draggable events

Event name:
droppableOut

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// edge on which taskbar
	// is being dropped
	edge: "left",
	// jQuery object containing
	// draggable helper
	helper    : $helper,
	// taskbar current offset
	offset: {
		left  : 0,
		top   : 259
	},
	// taskbar current orientation
	orientation: "vertical",
	// original edge from which
	// taskbar was dragged
	originalEdge: "right",
	// taskbar original orientation
	originalOrientation: "vertical",
	// taskbar current position
	position: {
		left  : 0,
		top   : 159
	}
}

Triggered after draggable helper leaves droppable area.

This event caries properties from jQuery UI Droppable out event.

Related demo:
Taskbar's draggable events

Event name:
elementOpen

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// the element itself,
	// like menu of datepicker
	$element: $element,
	// button that was used
	// for opening the element
	$button: $button
}

Triggered when element, like start menu, or window group menu, or datepicker, is opened.

When this event is cancelled, element will not be opened.

Related demo:
Taskbar subordinates events

Event name:
elementClose

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// the element itself,
	// like menu of datepicker
	$element: $element,
	// button that was used
	// for opening the element
	$button: $button,
	// whether the element was closed
	// by opening other element on that
	// taskbar
	ui.closeByOpen: true
}

Triggered when element, like start menu, or window group menu, or datepicker, is closed.

When this event is cancelled, element will not be closed.

Related demo:
Taskbar subordinates events

Event name:
languageChange

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// current language
	ui.language: "pl",
	// previous language
	ui.originalLanguage: "en"
}

Triggered when taskbar language change.

Related demo:
Taskbar "languageChange" event

Event name:
menuItemBlur

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object of button
	// connected to menu
	// the item is child of
	$button: $button,
	// jQuery object of menu that
	// blurred item is child of
	$menu: $menu,
	// jQuery object of item itself
	$item: $item,
	ui.closeByOpen: true
}

Triggered when menu element from start menu, window group menu, or language select menu, is blurred.

Related demo:
Taskbar subordinates events

Event name:
menuItemFocus

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// jQuery object of button
	// connected to menu
	// the item is child of
	$button: $button,
	// jQuery object of menu that
	// focused item is child of
	$menu: $menu,
	// jQuery object of item itself
	$item: $item,
	ui.closeByOpen: true
}

Triggered when menu element from start menu, window group menu, or language select menu, is focused.

Related demo:
Taskbar subordinates events

Event name:
beforeRefresh

Cancelable: yes (although not recommended)

Example UI object (in addition to what every event UI object has):
{}

Triggered before full refresh is performed on a taskbar.

This event can be triggered in many different scenarios, as full refresh is required by many option setters. Main window resize and other taskbar's collision resolving can trigger refresh too.

This event is cancellable, but cancelling it is not recommended unless you're sure what you're doing.

Related method:
refresh

Event name:
refresh

Cancelable: no

Example UI object (in addition to what every event UI object has):
{}

Triggered after full refresh is performed on a taskbar.

This event can be triggered in many different scenarios, as full refresh is required by many option setters. Main window resize and other taskbar's collision resolving can trigger refresh too.

Related method:
refresh

Event name:
beforeRequestFullscreen

Cancelable: yes

Example UI object (in addition to what every event UI object has):
{
	// whether browser is currently
	// in fullscreen mode
	fullscreenEnabled: false
}

Triggered before fullscreen enter or fullscreen leave is requested from the browser.

Current fullscreen state is stored in ui.fullscreenEnabled property, and the opposite state is requested.

Note: there is no API method for entering and leaving fullscreen, because it cannot be triggered programmatically.

Event name:
requestFullscreen

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// whether browser is currently
	// in fullscreen mode
	fullscreenEnabled: false
	// whether browser was in
	// fullscreen mode before
	// the request
	fullscreenEnabledBefore: true
}

Triggered after fullscreen enter or fullscreen leave is requested from the browser.

Current fullscreen state is stored in ui.fullscreenEnabled property. State from before request was made is stored in ui.fullscreenEnabledBefore property.

Note: there is no API method for entering and leaving fullscreen, because it cannot be triggered programmatically.

Event name:
resizeStart

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// current number of rows
	// or columns, depending
	// on orientation
	gridPosition: 1,
	// item being resized
	// instead of taskbar
	helper: $helper,
	// current orientation,
	// "horizontal" or "vertical"
	orientation: "horizontal",
	// number of rows or columns
	// on resize start
	originalGridPosition: 1,
	originalSizeAxis: 35,
	sizeAxis: 35
}

Triggered when taskbar resize starts.

ui.sizeAxis and ui.originalSizeAxis will have the same value, and also ui.gridPosition and ui.originalGridPosition will have the same value. Those values are present for consistency with resize and resizeStop.

This event caries properties from ui object of jQuery UI Resizable start event.

Original resizable start event object is passed.

Event name:
resize

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// current number of rows
	// or columns, depending
	// on orientation
	gridPosition: 1,
	// item being resized
	// instead of taskbar
	helper: $helper,
	// current orientation,
	// "horizontal" or "vertical"
	orientation: "horizontal",
	// number of rows or columns
	// on resize start
	originalGridPosition: 2,
	originalSizeAxis: 70,
	sizeAxis: 35
}

Triggered during taskbar resize, when helper actually changes it size.

This event caries properties from ui object of jQuery UI Resizable resize event.

Original resizable resize event object is passed.

Event name:
resizeStop

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// current number of rows
	// or columns, depending
	// on orientation
	gridPosition: 1,
	// item being resized
	// instead of taskbar
	helper: $helper,
	// current orientation,
	// "horizontal" or "vertical"
	orientation: "horizontal",
	// number of rows or columns
	// on resize start
	originalGridPosition: 2,
	originalSizeAxis: 70,
	sizeAxis: 35
}

Triggered when taskbar resize stops.

This event caries properties from ui object of jQuery UI Resizable stop event.

Original resizable stop event object is passed.

Event name:
sortableStart

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// clone of original button
	helper: $helper,
	// original button
	item: $item,
	// current helper offset
	offset: {
		left: 893,
		top: 461
	},
	// helper offset at
	// sortable start
	originalOffset: {
		left: 893,
		top: 461
	},
	// helper position at
	// sortable start
	originalPosition: {
		left: 642,
		top: 2
	},
	// sortable placeholder
	placeholder: $placeholder,
	// current helper position
	position: {
		left: 642,
		top: 2
	},
	// sender - currently null,
	// because connected sortable
	// is not supported
	sender: null,
}

Triggered when sortable starts.

Related demo:
Taskbar sortable events

Event name:
sortableSort

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// clone of original button
	helper: $helper,
	// original button
	item: $item,
	// current helper offset
	offset: {
		left: 780,
		top: 461
	},
	// helper offset at
	// sortable start
	originalOffset: {
		left: 893,
		top: 461
	},
	// helper position at
	// sortable start
	originalPosition: {
		left: 642,
		top: 2
	},
	// sortable placeholder
	placeholder: $placeholder,
	// current helper position
	position: {
		left: 519,
		top: 2
	},
	// sender - currently null,
	// because connected sortable
	// is not supported
	sender: null,
}

Triggered when sortable is in progress.

Related demo:
Taskbar sortable events

Event name:
sortableChange

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// clone of original button
	helper: $helper,
	// original button
	item: $item,
	// current helper offset
	offset: {
		left: 780,
		top: 461
	},
	// helper offset at
	// sortable start
	originalOffset: {
		left: 893,
		top: 461
	},
	// helper position at
	// sortable start
	originalPosition: {
		left: 642,
		top: 2
	},
	// sortable placeholder
	placeholder: $placeholder,
	// current helper position
	position: {
		left: 519,
		top: 2
	},
	// sender - currently null,
	// because connected sortable
	// is not supported
	sender: null,
}

Triggered when sortable items position changes.

Related demo:
Taskbar sortable events

Event name:
sortableStop

Cancelable: no

Example UI object (in addition to what every event UI object has):
{
	// clone of original button
	helper: $helper,
	// original button
	item: $item,
	// current helper offset
	offset: {
		left: 780,
		top: 461
	},
	// helper offset at
	// sortable start
	originalOffset: {
		left: 893,
		top: 461
	},
	// helper position at
	// sortable start
	originalPosition: {
		left: 642,
		top: 2
	},
	// sortable placeholder
	placeholder: $placeholder,
	// current helper position
	position: {
		left: 519,
		top: 2
	},
	// sender - currently null,
	// because connected sortable
	// is not supported
	sender: null,
}

Triggered when sortable stops.

Related demo:
Taskbar sortable events

Methods

Method name Description
Method name:
blurWindows

Parameters:
none

Blurs active window, regardless of taskbar it's bound to.

Method name:
button

Parameter:
jQuery object of window instance (mandatory)

Returns button connected to a window instance passed in first parameter, or empty jQuery object if passed value was not a jQuery object of valid window instance.

Method name:
destroy

Parameters:
none

Removes the taskbar functionality completely. This will return the element back to its pre-init state.

Method name:
hide

Parameter:
durations (optionally)

Starts hidding taskbar, with an optional duration.

If no duration is passed, current value of durations.autoHideHide is used.

Method name:
hideSubordinates

Parameters:
none

Hides all subordinate elements of taskbar, like menus or datepicker.

Method name:
i18n

Parameters:
key (mandatory),
values (optional),
language (optional)

Return string from dictionary, based on key.

Optionally, a values can be passed as second parameter:

$( ".taskbar" ).taskbar( "i18n", "closeAll", { process: "Timeschedule" });

Assuming that closeAll value is "Are you sure want to close all windows opened by :process?", this method result will be "Are you sure want to close all windows opened by Timeschedule?"

Optionally, language can be passed as third parameter, so, assuming that current taskbar language is English, the following code:

$( ".taskbar" ).taskbar( "i18n", "minimize", {}, "pl" );

will return "Minimalizuj".

Method name:
instance

Parameters:
none

Available since jQuery UI 1.11.

Retrieves the taskbar's instance object. If the element does not have an associated instance, undefined is returned.

Unlike other widget methods, instance() is safe to call on any element after the dialog plugin has loaded.

Method name:
minimizeAll

Parameters:
none

Minimizes all windows, of all taskbars.

Related option:
minimizeAll

Method name:
option

Parameters:
option name (mandatory)
option value (optional)

Serves as getter or a setter for options.

When only option name is passed, this method act as getter.

 // initialize taskbar with default settings
$( ".taskbar" ).taskbar();

// languageSelect will be false, because that's the default option value
var languageSelect = $( ".taskbar" ).taskbar( "option", "languageSelect" );

When option name and option value is passed, a new option value is set.

 // initialize taskbar with default settings
$( ".taskbar" ).taskbar();

// languageSelect will from now on be true
$( ".taskbar" ).taskbar( "option", "languageSelect", true );

Alternatively, an object can be passed as option name, acting as a setter:

$( ".taskbar" ).taskbar( "option", {
	orientation: "horizontal",
	autoHide: false
});

This will set both orientation and autoHide options.

Method name:
refresh

Parameters:
none

Refreshes taskbar, rebuilding it in practice.

This method should be called after new menus are inserted into taskbar or after unused menus are removed. Adding or removing "simone-menu-hidden" class from start menu falls into this category too.

Related events:
beforeRefresh
refresh

Method name:
show

Parameter:
durations (optionally)

Start showing taskbar, with an optional duration.

If no duration is passed, current value of durations.autoHideShow is used.

Method name:
taskbarSetup

Parameters:
options (mandatory)
propagateToInstances (optional, passed as first parameter if used)

Changes the default taskbar setup, and optionally propagate changes to existing taskbar instances. See related demo for details on usage.

Related demo:
$.simone.taskbarSetup and $.simone.windowSetup methods

Method name:
windows

Parameters:
none

Returns all windows bound to taskbar.

This method return elements on which window() method was called, not the widgets.

Method name:
widget

Parameters:
none

Returns element on which taskbar() method was called.