85 lines
2.4 KiB
JavaScript
85 lines
2.4 KiB
JavaScript
/*
|
|
Copyright (c) 2004-2006, The Dojo Foundation
|
|
All Rights Reserved.
|
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the
|
|
modified BSD license. For more information on Dojo licensing, see:
|
|
|
|
http://dojotoolkit.org/community/licensing.shtml
|
|
*/
|
|
|
|
dojo.provide("dojo.widget.html.TaskBar");
|
|
dojo.provide("dojo.widget.html.TaskBarItem");
|
|
|
|
dojo.require("dojo.widget.*");
|
|
dojo.require("dojo.widget.FloatingPane");
|
|
dojo.require("dojo.widget.HtmlWidget");
|
|
dojo.require("dojo.event");
|
|
|
|
// Icon associated w/a floating pane
|
|
dojo.widget.html.TaskBarItem = function(){
|
|
dojo.widget.TaskBarItem.call(this);
|
|
dojo.widget.HtmlWidget.call(this);
|
|
}
|
|
dojo.inherits(dojo.widget.html.TaskBarItem, dojo.widget.HtmlWidget);
|
|
|
|
dojo.lang.extend(dojo.widget.html.TaskBarItem, {
|
|
// constructor arguments
|
|
iconSrc: '',
|
|
caption: 'Untitled',
|
|
window: null,
|
|
templatePath: dojo.uri.dojoUri("src/widget/templates/HtmlTaskBarItemTemplate.html"),
|
|
templateCssPath: dojo.uri.dojoUri("src/widget/templates/HtmlTaskBar.css"),
|
|
|
|
fillInTemplate: function() {
|
|
if ( this.iconSrc != '' ) {
|
|
var img = document.createElement("img");
|
|
img.src = this.iconSrc;
|
|
this.domNode.appendChild(img);
|
|
}
|
|
this.domNode.appendChild(document.createTextNode(this.caption));
|
|
dojo.html.disableSelection(this.domNode);
|
|
},
|
|
|
|
postCreate: function() {
|
|
this.window=dojo.widget.getWidgetById(this.windowId);
|
|
this.window.explodeSrc = this.domNode;
|
|
dojo.event.connect(this.window, "destroy", this, "destroy")
|
|
},
|
|
|
|
onClick: function() {
|
|
this.window.show();
|
|
}
|
|
});
|
|
|
|
// Collection of widgets in a bar, like Windows task bar
|
|
dojo.widget.html.TaskBar = function(){
|
|
|
|
dojo.widget.html.FloatingPane.call(this);
|
|
dojo.widget.TaskBar.call(this);
|
|
this._addChildStack = [];
|
|
}
|
|
|
|
dojo.inherits(dojo.widget.html.TaskBar, dojo.widget.html.FloatingPane);
|
|
|
|
dojo.lang.extend(dojo.widget.html.TaskBar, {
|
|
|
|
resizable: false,
|
|
titleBarDisplay: "none",
|
|
|
|
addChild: function(child) {
|
|
if(!this.containerNode){
|
|
this._addChildStack.push(child);
|
|
}else if(this._addChildStack.length > 0){
|
|
var oarr = this._addChildStack;
|
|
this._addChildStack = [];
|
|
dojo.lang.forEach(oarr, this.addChild, this);
|
|
}
|
|
var tbi = dojo.widget.createWidget("TaskBarItem",
|
|
{ windowId: child.widgetId,
|
|
caption: child.title,
|
|
iconSrc: child.iconSrc
|
|
});
|
|
dojo.widget.html.TaskBar.superclass.addChild.call(this,tbi);
|
|
}
|
|
});
|