/**
* @ignore
* Heading plugin for KISSY.
* @author yiminghe@gmail.com
*/
KISSY.add("editor/plugin/heading", function (S, Editor, headingCmd) {
function HeadingPlugin() {
}
S.augment(HeadingPlugin, {
pluginRenderUI: function (editor) {
headingCmd.init(editor);
var FORMAT_SELECTION_ITEMS = [],
FORMATS = {
"普通文本": "p",
"标题1": "h1",
"标题2": "h2",
"标题3": "h3",
"标题4": "h4",
"标题5": "h5",
"标题6": "h6"
},
FORMAT_SIZES = {
p: "1em",
h1: "2em",
h2: "1.5em",
h3: "1.17em",
h4: "1em",
h5: "0.83em",
h6: "0.67em"
};
for (var p in FORMATS) {
FORMAT_SELECTION_ITEMS.push({
content: p,
value: FORMATS[p],
elAttrs: {
style: "font-size:" + FORMAT_SIZES[FORMATS[p]]
}
});
}
editor.addSelect("heading", {
defaultCaption: "标题",
width: "120px",
menu: {
children: FORMAT_SELECTION_ITEMS
},
mode: Editor.Mode.WYSIWYG_MODE,
listeners: {
click: function (ev) {
var v = ev.target.get("value")
editor.execCommand("heading", v);
},
afterSyncUI: function () {
var self = this;
editor.on("selectionChange", function () {
if (editor.get("mode") == Editor.Mode.SOURCE_MODE) {
return;
}
// For each element into the elements path.
// Check if the element is removable by any of
// the styles.
var headingValue = editor.queryCommandValue("heading"), value;
for (value in FORMAT_SIZES) {
if (value == headingValue) {
self.set("value", value);
return;
}
}
self.set("value", null);
});
}
}
});
}
});
return HeadingPlugin;
}, {
requires: ['editor', './heading/cmd']
});