diff --git a/frame.js b/frame.js
index c36b5341..55ec80f8 100644
--- a/frame.js
+++ b/frame.js
@@ -259,9 +259,9 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", list: [], _init: function(can, me
}
return can.run(event, cmds, function(msg) { var sub = can.core.Value(can, chat._OUTPUTS_CURRENT)||{}
- if (!cmds || cmds[0] != ctx.ACTION) { can._msg = msg, sub._msg = msg }
+ if (!cmds || cmds[0] != ctx.ACTION) { can._msg = msg, sub._msg = msg, msg._cmds = cmds }
if (can.base.isFunc(cb)) { can.core.CallFunc(cb, {can: can, msg: msg}); return }
- var process = msg._can == can || msg._can == sub; msg._cmds = cmds
+ var process = msg._can == can || msg._can == sub
if (process && can.core.CallFunc([sub, chat.ONIMPORT, ice.MSG_PROCESS], {can: sub, msg: msg})) { return }
if (process && can.core.CallFunc([can, chat.ONIMPORT, ice.MSG_PROCESS], {can: can, msg: msg})) { return }
!silent && can.onappend._output(can, msg, msg.Option(ice.MSG_DISPLAY)||meta.display||meta.feature.display, can._output, can._action)
@@ -278,7 +278,7 @@ Volcanos(chat.ONAPPEND, {help: "渲染引擎", list: [], _init: function(can, me
return can.Update(event, can.Input(cmds, silent), cb, silent)
}, can._outputs && can._outputs.push(table), table.sup = can, table._msg = msg
- table.Conf(table._args = can.base.ParseURL(table._display))
+ table._mode = can._mode, table.Conf(table._args = can.base.ParseURL(table._display))
table._trans = can.base.Copy(table._trans||{}, can.core.Value(table, "onaction._trans"))
if (table.onimport && can.base.isArray(table.onimport.list) && table.onimport.list.length > 0) {
can.onmotion.clear(can, can._option), can.onappend._option(can, {inputs: table.onimport.list})
@@ -607,8 +607,11 @@ Volcanos(chat.ONMOTION, {help: "动态特效", list: [], _init: function(can, ta
hidden: function(can, target, show) {
can.page.styleDisplay(can, target||can._target, show? "": html.NONE)
+ return show
},
toggle: function(can, target, show, hide) { target = target||can._target
+ if (show === true) { return can.onmotion.hidden(can, target, true) }
+ if (show === false) { return can.onmotion.hidden(can, target, false) }
var status = target.style.display == html.NONE
if (!(status? can.base.isFunc(show) && show(): can.base.isFunc(hide) && hide())) {
can.page.styleDisplay(can, target, status? "": html.NONE)
diff --git a/lib/page.js b/lib/page.js
index ca3f9037..8ae49bd4 100644
--- a/lib/page.js
+++ b/lib/page.js
@@ -165,6 +165,9 @@ Volcanos("page", {help: "用户界面", ClassList: {
}
// 语言转换
+ if (type == html.SELECT) {
+ data.title = can.user.trans(can, data.title||data.name)
+ }
if (type == html.INPUT) { data.type == html.BUTTON && (data.value = can.user.trans(can, data.value))
if (data.type == html.TEXT||data.type == html.PASSWORD||!data.type) { data.autocomplete = data.autocomplete||"off"
// data.placeholder = can.user.trans(can, (data.placeholder||data.name||"").split(ice.PT).pop())
diff --git a/page/index.css b/page/index.css
index 68c4fd3f..4d5aa3f5 100644
--- a/page/index.css
+++ b/page/index.css
@@ -6,8 +6,8 @@ select { background-color:black; color:cyan; padding:0 10px; height:1.92rem; }
textarea { background-color:cyan; height:60px; width:400px; }
input[type=button] { background-color:black; color:cyan; }
input[name=cmd] { background-color:black; color:white; width:240px; }
-input[type=text] { background-color:cyan; color:black; padding:0 4px; height:1.65rem; width:82px; }
-input[type=password] { background-color:cyan; color:black; padding:0 4px; height:1.65rem; width:82px; }
+input[type=text] { background-color:cyan; color:black; padding:0 4px; height:27px; width:90px; }
+input[type=password] { background-color:cyan; color:black; padding:0 4px; height:27px; width:90px; }
input[name=where] { width:320px; }
input[name=date] { width:150px; }
input[name=path] { width:160px; }
diff --git a/panel/action.js b/panel/action.js
index 9cf3dbc0..7b18c160 100644
--- a/panel/action.js
+++ b/panel/action.js
@@ -47,6 +47,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
sub.ConfHeight(can.ConfHeight()-can.Conf(html.MARGIN_Y))
can.page.style(can, sub._output, html.MAX_WIDTH, can.ConfWidth())
can.user.title(meta.name), skip || next()
+ sub._mode = can._mode
})
},
height: function(can, height) {
@@ -210,6 +211,7 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [], _init: function(can, cb
can.page.ClassList.add(can, can._root._target, "simple")
can.page.ClassList.add(can, can._target, "cmd")
can.onlayout._init(can)
+ can._mode = "cmd"
},
layout: function(can, button, silent) { button = button||ice.AUTO
diff --git a/panel/river.js b/panel/river.js
index 39334d74..8ecd3dca 100644
--- a/panel/river.js
+++ b/panel/river.js
@@ -73,7 +73,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [], _init: function(can, cb
can.run({}, [], function(msg) { if (msg.Option(ice.MSG_RIVER) == "_share") { return }
can.onimport._init(can, msg, null, can._output), can.onappend._action(can, can.Conf(ctx.ACTION))
if (can.user.mod.isPod ||can.user.isExtension || can.user.isMobile) { return }
- can.onmotion.hidden(can, can._target, true)
+ can.onmotion.toggle(can, can._target, true)
})
},
onsearch: function(can, msg, word) {
diff --git a/plugin/local/chat/div.js b/plugin/local/chat/div.js
index b3dba154..0634eb65 100644
--- a/plugin/local/chat/div.js
+++ b/plugin/local/chat/div.js
@@ -20,7 +20,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.onmotion.hidden(can, can._option)
can.onmotion.hidden(can, can._action)
}
- if (can.user.mod.isCmd || can.user.mod.isDiv) {
+ if (can._mode == "cmd" || can.user.mod.isDiv) {
width = can._root._width, height = can._root._height
can.page.style(can, can._output, {width: width, height: height})
}
diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js
index 6668cbf8..eb12e840 100644
--- a/plugin/local/code/inner.js
+++ b/plugin/local/code/inner.js
@@ -24,7 +24,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
}))
can.onengine.listen(can, "orientationchange", function(event) {
- if (can.user.mod.isCmd) { can.ConfHeight(can._root._height), can.ConfWidth(can._root._width) }
+ if (can._mode == "cmd") { can.ConfHeight(can._root._height), can.ConfWidth(can._root._width) }
can.user.toast(can, can.ConfHeight()+"")
can.onimport.layout(can)
})
@@ -44,6 +44,12 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
can.ui._path = can.page.insertBefore(can, [{view: "path"}], can.ui.content)
can.base.isFunc(cb) && cb(msg)
+ can._mode == "float" && can.onmotion.hidden(can, can.ui.project)
+ can._mode == "float" && can.onmotion.hidden(can, can._action)
+ can._mode == "float" && can.onmotion.hidden(can, can._action)
+ can._mode == "float" && can.onmotion.hidden(can, can.ui._tabs)
+ can._mode == "float" && can.onmotion.hidden(can, can.ui._path)
+
can.Conf("mode") == "simple"? can.onimport._simple(can): can.onimport.project(can, paths, function() {
can.onimport._toolkit(can, can.ui.toolkit), can.onimport._session(can, msg), can.onimport._keydown(can)
can.onmotion.delay(can, function() {
@@ -131,7 +137,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
}) })
},
_keydown: function(can) { can.onkeymap._build(can)
- can.user.mod.isCmd && can.onengine.listen(can, chat.ONKEYDOWN, function(event) {
+ can._mode == "cmd" && can.onengine.listen(can, chat.ONKEYDOWN, function(event) {
can._key_list = can.onkeymap._parse(event, can, "plugin", can._key_list, can.ui.content)
})
},
@@ -189,8 +195,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
}, project.plugin)
},
tabview: function(can, path, file, line, cb, skip, skip2) { var key = can.onexport.keys(can, file, path)
- if (can.user.mod.isCmd) { location.hash = file }
- if (!skip && can.tabview[key]) { can.user.mod.isCmd && can.user.title(path+file)
+ if (can._mode == "cmd") { location.hash = file }
+ if (!skip && can.tabview[key]) { can._mode == "cmd" && can.user.title(path+file)
can._msg && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.tabview[key]
can.Option({path: path, file: file, line: line||can._msg.Option(nfs.LINE)||1})
return can._msg.Option(can.Option()), can.onsyntax._init(can, can._msg, cb, skip2)
@@ -212,13 +218,13 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
profile: function(can, msg) {
var width = can.profile_size[can.onexport.keys(can)]||(can.ConfWidth()-can.ui.project.offsetWidth)/2
msg && can.onimport.process(can, msg, can.ui.profile_output, width-32)
- can.onmotion.hidden(can, can.ui.profile, true), can.onimport.layout(can)
+ can.onmotion.toggle(can, can.ui.profile, true), can.onimport.layout(can)
},
display: function(can, msg) {
var height = can.profile_size[can.onexport.keys(can)]||{sh: can.ConfHeight()/2}[can.parse]||can.ConfHeight()/4
msg && can.onimport.process(can, msg, can.ui.display_output, can.ConfWidth())
can.page.style(can, can.ui.display_output, html.MAX_HEIGHT, height)
- can.onmotion.hidden(can, can.ui.display, true), can.onimport.layout(can)
+ can.onmotion.toggle(can, can.ui.display, true), can.onimport.layout(can)
},
toolkit: function(can, meta, cb) {
meta.opts = meta.opts||{repos: can.base.trimSuffix(can.base.trimPrefix(can.Option(nfs.PATH), "usr/"), ice.PS) }
@@ -269,17 +275,17 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
}, target)
},
layout: function(can) {
- var width = can.ConfWidth()+(can.user.isMobile && can.user.mod.isCmd && can.user.isLandscape()? 16: 0)-(can.user.isWindows && !can.user.mod.isCmd? 20: 0)
+ var width = can.ConfWidth()+(can.user.isMobile && can._mode == "cmd" && can.user.isLandscape()? 16: 0)-(can.user.isWindows && !can._mode == "cmd"? 20: 0)
can.page.styleWidth(can, can.ui.profile_output, can.profile_size[can.onexport.keys(can)]||(width-can.ui.project.offsetWidth)/2)
can.page.styleWidth(can, can.ui.content, width-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
can.page.styleWidth(can, can.ui.display, width-can.ui.project.offsetWidth)
if (!height && can.Conf("mode") == "simple") { return }
- var height = can.ConfHeight()-(can.user.isMobile && can.user.mod.isCmd? (can.user.isLandscape()? 14: 54): 0)-(can.user.isWindows? 20: 0)
+ var height = can.ConfHeight()-(can.user.isMobile && can._mode == "cmd"? (can.user.isLandscape()? 14: 54): 0)-(can.user.isWindows? 20: 0)
if (!height || height > can._root._height) { height = can._root._height - 200 }
if (can.user.isMobile && can.user.isLandscape() && height < 200) { height = 400 }
- if (can.user.mod.isCmd) { can.page.styleHeight(can, can.ui.project, height+2*html.ACTION_HEIGHT)
+ if (can._mode == "cmd") { can.page.styleHeight(can, can.ui.project, height+2*html.ACTION_HEIGHT)
if (can.ui.project.offsetHeight) {
var rest = can.ui.display.offsetHeight+can.ui._path.offsetHeight+can.ui._tabs.offsetHeight+5
can.page.styleHeight(can, can.ui.content, can.ui.project.offsetHeight-rest)
@@ -291,7 +297,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
}
} else {
var rest = can.ui.display.offsetHeight+can.ui._path.offsetHeight+can.ui._tabs.offsetHeight+5
- can.page.style(can, can.ui.content, can.user.mod.isCmd || can.user.isMobile? html.HEIGHT: html.MAX_HEIGHT, height)
+ can.page.style(can, can.ui.content, can._mode == "cmd" || can.user.isMobile? html.HEIGHT: html.MAX_HEIGHT, height)
can.page.styleHeight(can, can.ui.project, can.ui.content.offsetHeight+rest)
if (can.page.ClassList.has(can, can._fields, "full")) {
can.page.styleHeight(can, can.ui.profile_output, can.ui.content.offsetHeight)
@@ -417,7 +423,7 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮", list: ["keyword", "prefix", "line
p && p.engine && can.onaction["执行"]({}, can)
}
can.onimport.layout(can)
- if (!can.page.ClassList.has(can, can._fields, chat.STORY) && !can.user.mod.isCmd) {
+ if (!can.page.ClassList.has(can, can._fields, chat.STORY) && !can._mode == "cmd") {
can.page.style(can, can.ui.project, html.MIN_HEIGHT, can.ConfHeight()-200)
can.page.style(can, can.ui.content, html.MIN_HEIGHT, can.ConfHeight()-200)
}
@@ -571,7 +577,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: ["搜索", "打开", "添
can.onmotion.hidden(can, can.ui.project)
can.ConfHeight(can._root._height)
} else {
- can.onmotion.hidden(can, can.ui.project, true)
+ can.onmotion.toggle(can, can.ui.project, true)
can.ConfHeight(can._root._height-2*html.ACTION_HEIGHT)
}
can.onimport.layout(can)
diff --git a/plugin/local/wiki/draw.js b/plugin/local/wiki/draw.js
index 783f9224..cad68efb 100644
--- a/plugin/local/wiki/draw.js
+++ b/plugin/local/wiki/draw.js
@@ -1,35 +1,33 @@
Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
- can.onmotion.clear(can), can.onmotion.hidden(can, can._action)
- can.onimport._show(can, msg), can.base.isFunc(cb) && cb(msg)
+ can.onmotion.clear(can), can.base.isFunc(cb) && cb(msg)
+ can.onimport._show(can, msg), can.onmotion.hidden(can, can._action)
can.keylist = [], can.onkeymap._build(can)
+
+ can.onmotion.delay(can, function() {
+ can.core.Item(kit.Dict(
+ html.STROKE_WIDTH, 2, html.STROKE, cli.YELLOW, html.FILL, cli.PURPLE,
+ html.FONT_SIZE, 24, html.FONT_FAMILY, html.MONOSPACE,
+ "go", ice.RUN, svg.SHAPE, svg.RECT, svg.GRID, 10,
+ ), function(key, value) { can.svg.Value(key, can.Action(key, can.svg.Value(key)||value)) })
+
+ can.page.style(can, can.ui.display, html.MIN_HEIGHT, 80, html.MAX_HEIGHT, can.ConfHeight()-can.svg.Val(html.HEIGHT)-52)
+ var pid = can.Option(svg.PID)||can.svg.Value(svg.PID); pid && can.page.Select(can, can.svg, ice.PT+pid, function(item) {
+ can.onimport._profile(can, item), can.ondetail.run({target: item}, can)
+ }) || can.onimport._profile(can, can.svg)
+ })
},
_show: function(can, msg) { can.point = []
can.svg = null, can.group = null, can.temp = null, can.current = null
- // 加载图形
can.ui = can.onlayout.profile(can), can.onmotion.hidden(can, can.ui.project)
can.page.Modify(can, can.ui.content, msg.Result()||can.onexport.content(can))
can.page.Select(can, can.ui.content, html.SVG, function(svg) {
can.svg = can.group = can.onimport._block(can, svg), can.onimport._group(can, svg).click()
can.core.ItemCB(can.onaction, function(key, cb) { svg[key] = function(event) { cb(event, can) } })
can.page.Select(can, svg, mdb.FOREACH, function(item, index) { can.onimport._block(can, item)
- item.tagName == svg.G && item.Value(html.CLASS) && can.onimport._group(can, item)
+ can.page.tagis(svg.G, item) && item.Value(html.CLASS) && can.onimport._group(can, item)
})
})
-
- // 默认参数
- can.onmotion.delay(can, function() {
- can.core.Item(kit.Dict(
- html.STROKE_WIDTH, 2, html.STROKE, cli.YELLOW, html.FILL, cli.PURPLE,
- html.FONT_SIZE, 24, html.FONT_FAMILY, html.MONOSPACE,
- "go", ice.RUN, svg.SHAPE, svg.RECT, "grid", 10,
- ), function(key, value) { can.svg.Value(key, can.Action(key, can.svg.Value(key)||value)) })
-
- can.page.style(can, can.ui.display, html.MIN_HEIGHT, 80, html.MAX_HEIGHT, can.ConfHeight()-can.svg.Val(html.HEIGHT)-52)
- var pid = can.Option(svg.PID)||can.svg.Value(svg.PID); pid && can.page.Select(can, can.svg, ice.PT+pid, function(item) {
- can.onimport._profile(can, item), can.ondetail.run({target: item}, can)
- }) || can.onimport._profile(can, can.svg)
- })
},
_group: function(can, target) { var name = target.Groups()
function show(event) { can.group = target
@@ -37,10 +35,10 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
can.Action(key, target.Value(key)||can.Action(key))
})
}
- return (name || target == can.svg) && can.onimport.item(can, html.ITEM, {name: name||html.SVG}, function(event) { show(event)
- can.onaction.show(event, can), can.Status(svg.GROUP, name||html.SVG)
+ return (name || target == can.svg) && can.onimport.item(can, html.ITEM, {name: name||html.SVG}, function(event) {
+ show(event), can.onaction.show(event, can), can.Status(svg.GROUP, name||html.SVG)
}, function(event) {
- can.user.carteRight(event, can, can.onaction, [ice.HIDE, ice.SHOW, mdb.CREATE, cli.CLEAR, mdb.REMOVE])
+ can.user.carteRight(event, can, can.onaction, can.onaction.menu_list)
}, can.ui.project)
},
_block: function(can, target) {
@@ -101,14 +99,19 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", list: [], _init: function(can, ms
})
}}
})) }])
-
},
- draw: function(event, can, value) {
+ draw: function(event, can, value, group) { // {shape, point, style, _init}
var figure = can.onfigure[value.shape], data = figure.draw(event, can, value.point, value.style)
can.core.Item(value.style, function(key, value) { data[key] = value })
- var item = can.onfigure._push(can, figure.data.name||value.shape, data, can.group||can.svg)
+ var item = can.onfigure._push(can, figure.data.name||value.shape, data, group||can.svg||can.group)
can.core.ItemCB(value, function(key, cb) { item[key] = cb })
- return can.onimport._block(can, item), can.onfigure._pid(can, item), value._init && value._init(item), item
+ // return can.onimport._block(can, item), can.onfigure._pid(can, item), value._init && value._init(item), item
+ return can.onimport._block(can, item), value._init && value._init(item), item
+ },
+ group: function(can, name, value, group) { group = group||can.svg||can.group
+ var g = document.createElementNS('http://www.w3.org/2000/svg', svg.G); group.append(g)
+ can.onimport._block(can, g), g.Value(html.CLASS, name), can.onimport._group(can, g).click()
+ return value && g.Value(value), g
},
}, [""])
Volcanos(chat.ONFIGURE, {help: "图形绘制", list: [],
@@ -181,19 +184,6 @@ Volcanos(chat.ONFIGURE, {help: "图形绘制", list: [],
},
text: function(can, data, target) { return data.x = target.Val(svg.X)+target.Val(html.WIDTH)/2, data.y = target.Val(svg.Y)+target.Val(html.HEIGHT)/2, data },
},
- block: { //
- data: {points: 2, ry: 4, rx: 4, size: {}, copy: [html.HEIGHT, html.WIDTH, svg.RY, svg.RX]},
- draw: function(event, can, point) { if (point.length < 2) { return }
- this._temp && can.page.Remove(can, this._temp) && delete(this._temp)
- this._temp = can.onfigure._push(can, svg.G, {}, can.group||can.svg)
-
- var rect = can.onfigure._push(can, svg.RECT, can.onfigure.rect.draw(event, can, point), this._temp)
- if (event.type == html.CLICK) {
- can.onfigure._pid(can, rect), delete(this._temp)
- }
- },
- text: function(can, data, target) { can.onfigure.rect.text(can, data, target) },
- },
line: { //
data: {points: 2, size: {x: svg.X1, y: svg.Y1}, copy: [svg.X1, svg.Y1, svg.X2, svg.Y2]},
grid: function(event, can, point) { var target = event.target
@@ -206,11 +196,24 @@ Volcanos(chat.ONFIGURE, {help: "图形绘制", list: [],
var p0 = point[0], p1 = point[1], ship = []
p0.target && p0.target.Value && ship.push({pid: p0.target.Value(svg.PID)})
p1.target && p1.target.Value && ship.push({pid: p1.target.Value(svg.PID)})
- return {x1: p0.x, y1: p0.y, x2: p1.x, y2: p1.y, ship: ship}
+ return {x1: p0.x, y1: p0.y, x2: p1.x, y2: p1.y, ship: ship.length > 0? ship: undefined}
},
text: function(can, target, data) { return data.x = (target.Val(svg.X1)+target.Val(svg.X2))/2, data.y = (target.Val(svg.Y1)+target.Val(svg.Y2))/2, data },
show: function(can, target, figure) { return "<("+(target.Val(svg.Y2)-target.Val(svg.Y1))+ice.FS+(target.Val(svg.X2)-target.Val(svg.X1))+")"+can.onexport._position(can, target, figure) },
},
+ block: { //
+ data: {points: 2, ry: 4, rx: 4, size: {}, copy: [html.HEIGHT, html.WIDTH, svg.RY, svg.RX]},
+ draw: function(event, can, point) { if (point.length < 2) { return }
+ this._temp && can.page.Remove(can, this._temp) && delete(this._temp)
+ this._temp = can.onfigure._push(can, svg.G, {}, can.group||can.svg)
+
+ var rect = can.onfigure._push(can, svg.RECT, can.onfigure.rect.draw(event, can, point), this._temp)
+ if (event.type == html.CLICK) {
+ can.onfigure._pid(can, rect), delete(this._temp)
+ }
+ },
+ text: function(can, data, target) { can.onfigure.rect.text(can, data, target) },
+ },
}, [])
Volcanos(chat.ONKEYMAP, {help: "键盘交互", list: [],
_mode: {
@@ -256,9 +259,9 @@ Volcanos(chat.ONACTION, {help: "组件菜单", list: [
["go", ice.RUN, ice.AUTO, "manual"],
["mode", "draw", "resize"],
- [svg.SHAPE, svg.TEXT, svg.CIRCLE, svg.ELLIPSE, svg.RECT, svg.BLOCK, svg.LINE],
- ["grid", 1, 2, 3, 4, 5, 10, 20],
- ],
+ [svg.SHAPE, svg.TEXT, svg.CIRCLE, svg.ELLIPSE, svg.RECT, svg.LINE, svg.BLOCK],
+ [svg.GRID, 1, 2, 3, 4, 5, 10, 20],
+ ], menu_list: [ice.HIDE, ice.SHOW, mdb.CREATE, cli.CLEAR, mdb.REMOVE],
_change: function(can, key, value) { can.Action(key, value), can.group.Value(key, value) },
"stroke-width": function(event, can, key, value) { can.onaction._change(can, key, value) },
stroke: function(event, can, key, value) { can.onaction._change(can, key, value) },
@@ -280,10 +283,10 @@ Volcanos(chat.ONACTION, {help: "组件菜单", list: [
hide: function(event, can) { can.onmotion.hide(can, {interval: 100, length: 10}, null, can.group) },
create: function(event, can) {
can.user.input(event, can, [svg.GROUP], function(list) { var name = list[0]
- var group = document.createElementNS('http://www.w3.org/2000/svg', svg.G); can.group.append(group), can.onimport._block(can, group)
- group.Value(html.CLASS, name), can.core.List([html.STROKE_WIDTH, html.STROKE, html.FILL, html.FONT_SIZE], function(name) {
+ var group = can.onimport.group(can, name)
+ can.core.List([html.STROKE_WIDTH, html.STROKE, html.FILL, html.FONT_SIZE], function(name) {
group.Value(name, can.Action(name))
- }), can.onimport._group(can, group).click()
+ })
})
},
remove: function(event, can) { if (can.group == can.svg) { return }
@@ -402,7 +405,7 @@ Volcanos(chat.ONDETAIL, {help: "组件详情", list: [cli.START, ice.RUN, ice.CO
var index = target.Value(mdb.INDEX); index && can.onappend.plugin(can, {type: chat.STORY, index: index, args: target.Value(ctx.ARGS)}, function(sub) {
sub.run = function(event, cmds, cb) { can.runActionCommand(event, index, cmds, cb) }
sub.ConfHeight(can.ConfHeight()-can.svg.Val(html.HEIGHT)-4*html.ACTION_HEIGHT), sub.ConfWidth(can.ConfWidth())
- can.onmotion.hidden(can, sub._legend), can.onmotion.hidden(can, can.ui.display, true)
+ can.onmotion.hidden(can, sub._legend), can.onmotion.toggle(can, can.ui.display, true)
}, can.ui.display)
},
toimage: function(event, can) { can.onmotion.toimage(event, can, can.Option(nfs.PATH).split(ice.PS).pop().split(ice.PT)[0], can.svg) },
@@ -453,13 +456,13 @@ Volcanos(chat.ONEXPORT, {help: "导出数据", list: [svg.GROUP, "figure", "inde
_point: function(event, can) {
var p = can.svg.getBoundingClientRect()
var point = {x: event.clientX-p.x, y: event.clientY-p.y}
- point.x = point.x - point.x % parseInt(can.Action("grid"))
- point.y = point.y - point.y % parseInt(can.Action("grid"))
+ point.x = point.x - point.x % parseInt(can.Action(svg.GRID))
+ point.y = point.y - point.y % parseInt(can.Action(svg.GRID))
return can.Status("pos", point.x+ice.FS+point.y), point
},
content: function(can, svg) {
return ['