📄 toolbar.js
字号:
/* 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.Toolbar");dojo.require("dojo.widget.*");dojo.require("dojo.html.style");dojo.widget.defineWidget("dojo.widget.ToolbarContainer", dojo.widget.HtmlWidget, {isContainer:true, templateString:"<div class=\"toolbarContainer\" dojoAttachPoint=\"containerNode\"></div>", templateCssString:".toolbarContainer {\n\tborder-bottom : 0;\n\tbackground-color : #def;\n\tcolor : ButtonText;\n\tfont : Menu;\n\tbackground-image: url(images/toolbar-bg.gif);\n}\n\n.toolbar {\n\tpadding : 2px 4px;\n\tmin-height : 26px;\n\t_height : 26px;\n}\n\n.toolbarItem {\n\tfloat : left;\n\tpadding : 1px 2px;\n\tmargin : 0 2px 1px 0;\n\tcursor : pointer;\n}\n\n.toolbarItem.selected, .toolbarItem.down {\n\tmargin : 1px 1px 0 1px;\n\tpadding : 0px 1px;\n\tborder : 1px solid #bbf;\n\tbackground-color : #fafaff;\n}\n\n.toolbarButton img {\n\tvertical-align : bottom;\n}\n\n.toolbarButton span {\n\tline-height : 16px;\n\tvertical-align : middle;\n}\n\n.toolbarButton.hover {\n\tpadding : 0px 1px;\n\tborder : 1px solid #99c;\n}\n\n.toolbarItem.disabled {\n\topacity : 0.3;\n\tfilter : alpha(opacity=30);\n\tcursor : default;\n}\n\n.toolbarSeparator {\n\tcursor : default;\n}\n\n.toolbarFlexibleSpace {\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/Toolbar.css"), getItem:function (name) { if (name instanceof dojo.widget.ToolbarItem) { return name; } for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { var item = child.getItem(name); if (item) { return item; } } } return null;}, getItems:function () { var items = []; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { items = items.concat(child.getItems()); } } return items;}, enable:function () { for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { child.enable.apply(child, arguments); } }}, disable:function () { for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { child.disable.apply(child, arguments); } }}, select:function (name) { for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { child.select(arguments); } }}, deselect:function (name) { for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { child.deselect(arguments); } }}, getItemsState:function () { var values = {}; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { dojo.lang.mixin(values, child.getItemsState()); } } return values;}, getItemsActiveState:function () { var values = {}; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { dojo.lang.mixin(values, child.getItemsActiveState()); } } return values;}, getItemsSelectedState:function () { var values = {}; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.Toolbar) { dojo.lang.mixin(values, child.getItemsSelectedState()); } } return values;}});dojo.widget.defineWidget("dojo.widget.Toolbar", dojo.widget.HtmlWidget, {isContainer:true, templateString:"<div class=\"toolbar\" dojoAttachPoint=\"containerNode\" unselectable=\"on\" dojoOnMouseover=\"_onmouseover\" dojoOnMouseout=\"_onmouseout\" dojoOnClick=\"_onclick\" dojoOnMousedown=\"_onmousedown\" dojoOnMouseup=\"_onmouseup\"></div>", _getItem:function (node) { var start = new Date(); var widget = null; while (node && node != this.domNode) { if (dojo.html.hasClass(node, "toolbarItem")) { var widgets = dojo.widget.manager.getWidgetsByFilter(function (w) { return w.domNode == node; }); if (widgets.length == 1) { widget = widgets[0]; break; } else { if (widgets.length > 1) { dojo.raise("Toolbar._getItem: More than one widget matches the node"); } } } node = node.parentNode; } return widget;}, _onmouseover:function (e) { var widget = this._getItem(e.target); if (widget && widget._onmouseover) { widget._onmouseover(e); }}, _onmouseout:function (e) { var widget = this._getItem(e.target); if (widget && widget._onmouseout) { widget._onmouseout(e); }}, _onclick:function (e) { var widget = this._getItem(e.target); if (widget && widget._onclick) { widget._onclick(e); }}, _onmousedown:function (e) { var widget = this._getItem(e.target); if (widget && widget._onmousedown) { widget._onmousedown(e); }}, _onmouseup:function (e) { var widget = this._getItem(e.target); if (widget && widget._onmouseup) { widget._onmouseup(e); }}, addChild:function (item, pos, props) { var widget = dojo.widget.ToolbarItem.make(item, null, props); var ret = dojo.widget.Toolbar.superclass.addChild.call(this, widget, null, pos, null); return ret;}, push:function () { for (var i = 0; i < arguments.length; i++) { this.addChild(arguments[i]); }}, getItem:function (name) { if (name instanceof dojo.widget.ToolbarItem) { return name; } for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.ToolbarItem && child._name == name) { return child; } } return null;}, getItems:function () { var items = []; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.ToolbarItem) { items.push(child); } } return items;}, getItemsState:function () { var values = {}; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; if (child instanceof dojo.widget.ToolbarItem) { values[child._name] = {selected:child._selected, enabled:!child.disabled}; } } return values;}, getItemsActiveState:function () { var values = this.getItemsState(); for (var item in values) { values[item] = values[item].enabled; } return values;}, getItemsSelectedState:function () { var values = this.getItemsState(); for (var item in values) { values[item] = values[item].selected; } return values;}, enable:function () { var items = arguments.length ? arguments : this.children; for (var i = 0; i < items.length; i++) { var child = this.getItem(items[i]); if (child instanceof dojo.widget.ToolbarItem) { child.enable(false, true); } }}, disable:function () { var items = arguments.length ? arguments : this.children; for (var i = 0; i < items.length; i++) { var child = this.getItem(items[i]); if (child instanceof dojo.widget.ToolbarItem) { child.disable(); } }}, select:function () { for (var i = 0; i < arguments.length; i++) { var name = arguments[i]; var item = this.getItem(name); if (item) { item.select(); } }}, deselect:function () { for (var i = 0; i < arguments.length; i++) { var name = arguments[i]; var item = this.getItem(name); if (item) { item.disable(); } }}, setValue:function () { for (var i = 0; i < arguments.length; i += 2) { var name = arguments[i], value = arguments[i + 1]; var item = this.getItem(name); if (item) { if (item instanceof dojo.widget.ToolbarItem) { item.setValue(value); } } }}});dojo.widget.defineWidget("dojo.widget.ToolbarItem", dojo.widget.HtmlWidget, {templateString:"<span unselectable=\"on\" class=\"toolbarItem\"></span>", _name:null, getName:function () { return this._name;}, setName:function (value) { return (this._name = value);}, getValue:function () { return this.getName();}, setValue:function (value) { return this.setName(value);}, _selected:false, isSelected:function () { return this._selected;}, setSelected:function (is, force, preventEvent) { if (!this._toggleItem && !force) { return; } is = Boolean(is); if (force || !this.disabled && this._selected != is) { this._selected = is; this.update(); if (!preventEvent) { this._fireEvent(is ? "onSelect" : "onDeselect"); this._fireEvent("onChangeSelect"); } }}, select:function (force, preventEvent) { return this.setSelected(true, force, preventEvent);}, deselect:function (force, preventEvent) { return this.setSelected(false, force, preventEvent);}, _toggleItem:false, isToggleItem:function () { return this._toggleItem;}, setToggleItem:function (value) { this._toggleItem = Boolean(value);}, toggleSelected:function (force) { return this.setSelected(!this._selected, force);}, isEnabled:function () { return !this.disabled;}, setEnabled:function (is, force, preventEvent) { is = Boolean(is); if (force || this.disabled == is) { this.disabled = !is; this.update(); if (!preventEvent) { this._fireEvent(this.disabled ? "onDisable" : "onEnable"); this._fireEvent("onChangeEnabled"); } } return !this.disabled;}, enable:function (force, preventEvent) { return this.setEnabled(true, force, preventEvent);}, disable:function (force, preventEvent) { return this.setEnabled(false, force, preventEvent);}, toggleEnabled:function (force, preventEvent) { return this.setEnabled(this.disabled, force, preventEvent);}, _icon:null, getIcon:function () { return this._icon;}, setIcon:function (value) { var icon = dojo.widget.Icon.make(value); if (this._icon) { this._icon.setIcon(icon); } else { this._icon = icon; } var iconNode = this._icon.getNode(); if (iconNode.parentNode != this.domNode) { if (this.domNode.hasChildNodes()) { this.domNode.insertBefore(iconNode, this.domNode.firstChild); } else { this.domNode.appendChild(iconNode); } } return this._icon;}, _label:"", getLabel:function () { return this._label;}, setLabel:function (value) { var ret = (this._label = value); if (!this.labelNode) { this.labelNode = document.createElement("span"); this.domNode.appendChild(this.labelNode); } this.labelNode.innerHTML = ""; this.labelNode.appendChild(document.createTextNode(this._label)); this.update(); return ret;}, update:function () { if (this.disabled) { this._selected = false; dojo.html.addClass(this.domNode, "disabled"); dojo.html.removeClass(this.domNode, "down"); dojo.html.removeClass(this.domNode, "hover"); } else { dojo.html.removeClass(this.domNode, "disabled"); if (this._selected) { dojo.html.addClass(this.domNode, "selected"); } else { dojo.html.removeClass(this.domNode, "selected"); } } this._updateIcon();}, _updateIcon:function () { if (this._icon) { if (this.disabled) { this._icon.disable(); } else { if (this._cssHover) { this._icon.hover(); } else { if (this._selected) { this._icon.select(); } else { this._icon.enable(); } } } }}, _fireEvent:function (evt) { if (typeof this[evt] == "function") { var args = [this]; for (var i = 1; i < arguments.length; i++) { args.push(arguments[i]); } this[evt].apply(this, args); }}, _onmouseover:function (e) { if (this.disabled) { return; } dojo.html.addClass(this.domNode, "hover"); this._fireEvent("onMouseOver");}, _onmouseout:function (e) { dojo.html.removeClass(this.domNode, "hover"); dojo.html.removeClass(this.domNode, "down"); if (!this._selected) { dojo.html.removeClass(this.domNode, "selected");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -