mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt some
This commit is contained in:
parent
c8334e8bbd
commit
0cc0dbc2df
2
frame.js
2
frame.js
@ -447,7 +447,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
|||||||
can.core.Timer(time, function(event, value, index) { can.page.style(can, target, html.OPACITY, (index+1)/time.length) }, cb)
|
can.core.Timer(time, function(event, value, index) { can.page.style(can, target, html.OPACITY, (index+1)/time.length) }, cb)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
Volcanos(chat.ONKEYMAP, {_init: function(can, target) {
|
Volcanos(chat.ONKEYMAP, {_init: function(can, target) { target = target||document.body
|
||||||
can.onkeymap._build(can), target.onkeydown = function(event) {
|
can.onkeymap._build(can), target.onkeydown = function(event) {
|
||||||
if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return }
|
if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return }
|
||||||
var msg = can.request(event, {"model": "normal"}); if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
var msg = can.request(event, {"model": "normal"}); if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
Volcanos(chat.ONFIGURE, {date: {
|
Volcanos(chat.ONFIGURE, {date: {
|
||||||
onclick: function(event, can, meta, target, cbs) { cbs(function(can, cb) { function lunar(year, month, day) { return [] }
|
onclick: function(event, can, meta, target, cbs) { cbs(function(can, cb) {
|
||||||
|
if (can._output.innerHTML) { return }
|
||||||
|
function lunar(year, month, day) { return [] }
|
||||||
const TODAY = "today", YEAR = "year", MONTH = "month", HOUR = "hour", MINUTE = "minute", SECOND = "second"
|
const TODAY = "today", YEAR = "year", MONTH = "month", HOUR = "hour", MINUTE = "minute", SECOND = "second"
|
||||||
var today = new Date(), now = can.base.Date((target.value||"").trim()); function _cb(_now) { cb(can, can.user.time(can, now = _now), target.value) }
|
var today = new Date(), now = can.base.Date((target.value||"").trim()); function _cb(_now) { cb(can, can.user.time(can, now = _now), target.value) }
|
||||||
can.onappend._action(can, [cli.CLOSE, [HOUR].concat(can.core.List(24)), [MINUTE].concat(can.core.List(0, 60, 5)), [SECOND].concat(can.core.List(0, 60, 5)),
|
can.onappend._action(can, [cli.CLOSE, [HOUR].concat(can.core.List(24)), [MINUTE].concat(can.core.List(0, 60, 5)), [SECOND].concat(can.core.List(0, 60, 5)),
|
||||||
|
@ -7,6 +7,7 @@ Volcanos(chat.ONFIGURE, {key: {
|
|||||||
}}
|
}}
|
||||||
}), can.onappend._status(can, [mdb.TOTAL, mdb.INDEX]), can.Status(mdb.TOTAL, msg.Length())
|
}), can.onappend._status(can, [mdb.TOTAL, mdb.INDEX]), can.Status(mdb.TOTAL, msg.Length())
|
||||||
msg.append.length == 1 && can.page.ClassList.add(can, can._target, chat.SIMPLE)
|
msg.append.length == 1 && can.page.ClassList.add(can, can._target, chat.SIMPLE)
|
||||||
|
can.onlayout.figure({target: target}, can, can._target)
|
||||||
},
|
},
|
||||||
_load: function(event, can, cb, target, name, value) { can.runAction(event, mdb.INPUTS, [name, value||""], function(msg) {
|
_load: function(event, can, cb, target, name, value) { can.runAction(event, mdb.INPUTS, [name, value||""], function(msg) {
|
||||||
name == ctx.INDEX && can.core.Item(can.onengine.plugin.meta, function(key) { msg.Push(ctx.INDEX, can.core.Keys(ice.CAN, key)) })
|
name == ctx.INDEX && can.core.Item(can.onengine.plugin.meta, function(key) { msg.Push(ctx.INDEX, can.core.Keys(ice.CAN, key)) })
|
||||||
@ -17,8 +18,10 @@ Volcanos(chat.ONFIGURE, {key: {
|
|||||||
meta.msg && meta.msg.Length() > 0? sub._show(sub, meta.msg, cb, target, meta.name): sub._load(event, sub, cb, target, meta.name, target.value)
|
meta.msg && meta.msg.Length() > 0? sub._show(sub, meta.msg, cb, target, meta.name): sub._load(event, sub, cb, target, meta.name, target.value)
|
||||||
}) },
|
}) },
|
||||||
onblur: function(event, can, sub) { can.onmotion.delay(can, function() { sub._delay_hidden || can.onmotion.hidden(can, sub._target), sub._delay_hidden = false }, 300) },
|
onblur: function(event, can, sub) { can.onmotion.delay(can, function() { sub._delay_hidden || can.onmotion.hidden(can, sub._target), sub._delay_hidden = false }, 300) },
|
||||||
onkeydown: function(event, can, meta, cb, target, sub, last) { if (sub.hidden()) { return }
|
onkeydown: function(event, can, meta, cb, target, sub, last) {
|
||||||
if (event.key == lang.ENTER && meta._enter && (!can.page.tagis(event.target, html.TEXTAREA) || event.ctrlKey) && meta._enter(event)) { return sub.close() }
|
if (event.key == lang.ENTER && meta._enter && (!can.page.tagis(event.target, html.TEXTAREA) || event.ctrlKey) && meta._enter(event)) { return sub.close() }
|
||||||
|
if (event.key == lang.ENTER) { return last(event) }
|
||||||
|
if (sub.hidden()) { return }
|
||||||
can.onkeymap.selectCtrlN(event, can, sub._output, "tr:not(.hidden)>td:first-child", function(td) { return cb(sub, td.innerText, target.value), td })
|
can.onkeymap.selectCtrlN(event, can, sub._output, "tr:not(.hidden)>td:first-child", function(td) { return cb(sub, td.innerText, target.value), td })
|
||||||
|| can.onkeymap.selectInputs(event, sub, function() { sub._load(event, sub, cb, target, meta.name) }, target)
|
|| can.onkeymap.selectInputs(event, sub, function() { sub._load(event, sub, cb, target, meta.name) }, target)
|
||||||
},
|
},
|
||||||
|
@ -19,13 +19,10 @@ Volcanos(chat.ONIMPORT, {help: "导入数据",
|
|||||||
}
|
}
|
||||||
return _trans[p] = value[key], p
|
return _trans[p] = value[key], p
|
||||||
}), function(event, button) {
|
}), function(event, button) {
|
||||||
if (can.base.endWith(button, ps)) { can.onimport.tabInputs(event, can, ps, key, pre+button, cb, carte); return }
|
can.base.endWith(button, ps)? can.onimport.tabInputs(event, can, ps, key, pre+button, cb, carte): cb(can.core.Split(_trans[button], ps), pre)
|
||||||
cb(can.core.Split(_trans[button], ps), pre)
|
}, parent)._target, _p = can.core.Split(event.target.innerHTML.trim(), ice.PT)[0]
|
||||||
}, parent)._target
|
|
||||||
function remove(p) { if (p && p._sub) { remove(p._sub), can.page.Remove(can, p._sub), delete(p._sub) } }
|
|
||||||
if (parent) { remove(parent), parent._sub = carte }
|
|
||||||
var _p = can.core.Split(event.target.innerHTML.trim(), ice.PT)[0]
|
|
||||||
can.page.Select(can, carte, html.DIV_ITEM, function(target) { can.base.beginWith(target.innerHTML, _p) && carte.insertBefore(target, carte.firstChild) })
|
can.page.Select(can, carte, html.DIV_ITEM, function(target) { can.base.beginWith(target.innerHTML, _p) && carte.insertBefore(target, carte.firstChild) })
|
||||||
|
function remove(p) { if (p && p._sub) { remove(p._sub), can.page.Remove(can, p._sub), delete(p._sub) } } if (parent) { remove(parent), parent._sub = carte }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_tabInputs: function(can, ps, key, value, cb) {
|
_tabInputs: function(can, ps, key, value, cb) {
|
||||||
|
@ -226,9 +226,8 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
|||||||
text && can.core.List(["{}", "[]", "()"], function(item) { if (can.base.endWith(text, item[0])) {
|
text && can.core.List(["{}", "[]", "()"], function(item) { if (can.base.endWith(text, item[0])) {
|
||||||
if (can.base.beginWith(rest, item[1])) { return true }
|
if (can.base.beginWith(rest, item[1])) { return true }
|
||||||
(!rest && can.onaction.insertLine(can, left+item[1], can.current.next()), left += ice.TB)
|
(!rest && can.onaction.insertLine(can, left+item[1], can.current.next()), left += ice.TB)
|
||||||
} }).length == 0 && rest && ["}", "]", ")"].indexOf(rest[0]) > -1 && (left = left.slice(0, -1))
|
} }).length == 0 && rest && ["}", "]", ")"].indexOf(rest[0]) > -1 && (left = left.slice(0, -1)) || (rest.trim()[0] == "}" && text.trim()[text.length-1] != "{") && (left = left.slice(0, -1))
|
||||||
if (can.base.endWith(text, "`") && can.base.count(text, "`")%2==1) { !rest && can.onaction.insertLine(can, left+"`", can.current.next()) }
|
if (can.base.endWith(text, "`") && can.base.count(text, "`")%2==1) { !rest && can.onaction.insertLine(can, left+"`", can.current.next()) }
|
||||||
if (rest.trim()[0] == "}" && text.trim()[text.length-1] != "{") { left = left.slice(0, -1) }
|
|
||||||
var line = can.onaction.insertLine(can, left+rest.trimLeft(), can.current.next())
|
var line = can.onaction.insertLine(can, left+rest.trimLeft(), can.current.next())
|
||||||
can.current.text(text.trimRight()||text), can.onaction.selectLine(can, line)
|
can.current.text(text.trimRight()||text), can.onaction.selectLine(can, line)
|
||||||
can.onkeymap.cursorMove(target, 0, left.length)
|
can.onkeymap.cursorMove(target, 0, left.length)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can)
|
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(can)
|
||||||
can.onimport._show(can, msg), can.onmotion.delay(can, function() {
|
can.onimport._show(can, msg), can.onmotion.delay(can, function() {
|
||||||
can.core.Item(kit.Dict(svg.GRID, 10, svg.FONT_SIZE, 24, svg.FONT_FAMILY, svg.MONOSPACE, svg.STROKE_WIDTH, 2, svg.STROKE, cli.YELLOW, svg.FILL, cli.PURPLE,
|
can.core.Item(kit.Dict(svg.GRID, 10, svg.FONT_SIZE, 24, svg.FONT_FAMILY, svg.MONOSPACE, svg.STROKE_WIDTH, 2, svg.STROKE, cli.YELLOW, svg.FILL, cli.PURPLE,
|
||||||
svg.GO, ice.RUN, svg.SHAPE, svg.RECT), function(key, value) { can.Action(key, can.svg.Value(key, can.svg.Value(key)||value)) })
|
svg.GO, can.isCmdMode()? ice.AUTO: ice.RUN, svg.SHAPE, svg.RECT), function(key, value) { can.Action(key, can.svg.Value(key, can.svg.Value(key)||value)) })
|
||||||
can.ondetail._select(can, can.misc.SearchHash(can)[0]||can.Option(svg.PID)||can.svg.Value(svg.PID), function(target) { can.onimport._profile(can, target) })
|
can.ondetail._select(can, can.misc.SearchHash(can)[0]||can.Option(svg.PID)||can.svg.Value(svg.PID), function(target) { can.onimport._profile(can, target), can.onmotion.toggle(can, can.ui.profile) })
|
||||||
}), can.isCmdMode()? (can.keylist = [], can.onkeymap._build(can)): can.onmotion.hidden(can, can._action)
|
}), can.isCmdMode()? (can.keylist = [], can.onkeymap._init(can)): can.onmotion.hidden(can, can._action)
|
||||||
},
|
},
|
||||||
_show: function(can, msg) { can.svg = null, can.group = null, can.temp = null, can.current = null, can.points = [], can._display_heights = {}
|
_show: function(can, msg) { can.svg = null, can.group = null, can.temp = null, can.current = null, can.points = [], can._display_heights = {}
|
||||||
can.ui = can.onlayout.profile(can), can.page.Modify(can, can.ui.content, msg.Results()||can.onexport.content(can)), can.onmotion.hidden(can, [can.ui.project, can.ui.profile])
|
can.ui = can.onlayout.profile(can), can.page.Modify(can, can.ui.content, msg.Results()||can.onexport.content(can)), can.onmotion.hidden(can, [can.ui.project, can.ui.profile])
|
||||||
@ -25,8 +25,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
target.Groups = function() { if (target == can.svg) { return html.SVG } var list = []
|
target.Groups = function() { if (target == can.svg) { return html.SVG } var list = []
|
||||||
for (var node = target; node && !can.page.tagis(node, html.SVG); node = node.parentNode) { can.page.tagis(node, svg.G) && node.Value(html.CLASS) && list.push(node.Value(html.CLASS)) }
|
for (var node = target; node && !can.page.tagis(node, html.SVG); node = node.parentNode) { can.page.tagis(node, svg.G) && node.Value(html.CLASS) && list.push(node.Value(html.CLASS)) }
|
||||||
return list.reverse().join(ice.PT)
|
return list.reverse().join(ice.PT)
|
||||||
}
|
}; return target
|
||||||
return target
|
|
||||||
},
|
},
|
||||||
_group: function(can, target) { var name = target.Groups()
|
_group: function(can, target) { var name = target.Groups()
|
||||||
return name && can.onimport.item(can, {name: name}, function(event) { can.group = target, can.Status(svg.GROUP, name), can.onaction.show(event, can)
|
return name && can.onimport.item(can, {name: name}, function(event) { can.group = target, can.Status(svg.GROUP, name), can.onaction.show(event, can)
|
||||||
@ -34,19 +33,24 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
}, function(event) { can.user.carteRight(event, can, can.onaction, can.onaction.menu_list) }, can.ui.project)
|
}, function(event) { can.user.carteRight(event, can, can.onaction, can.onaction.menu_list) }, can.ui.project)
|
||||||
},
|
},
|
||||||
_profile: function(can, target) { can.misc.SearchHash(can, can.Option(svg.PID, can.svg.Value(svg.PID, can.onexport._pid(can, target))))
|
_profile: function(can, target) { can.misc.SearchHash(can, can.Option(svg.PID, can.svg.Value(svg.PID, can.onexport._pid(can, target))))
|
||||||
if (can.onmotion.cache(can, function() { return target.Value(svg.PID) }, can.ui.profile, can.ui.display)) { return can.onimport.layout(can) }
|
if (target != can.svg && can.onmotion.cache(can, function() { return target.Value(svg.PID) }, can.ui.profile, can.ui.display)) { return can.onimport.layout(can) }
|
||||||
var figure = can.onfigure._get(can, target), ui = can.page.Append(can, can.ui.profile, [html.OUTPUT, html.ACTION])
|
var figure = can.onfigure._get(can, target), ui = can.page.Appends(can, can.ui.profile, [html.OUTPUT, html.ACTION])
|
||||||
can.page.Append(can, ui.output, [{view: [html.CONTENT, html.TABLE], list: [
|
can.page.Appends(can, ui.output, [{view: [html.CONTENT, html.TABLE], list: [
|
||||||
{th: [mdb.KEY, mdb.VALUE]}, {td: [mdb.TYPE, target.tagName]}, {td: [svg.PID, target.Value(svg.PID)]},
|
{th: [mdb.KEY, mdb.VALUE]}, {td: [mdb.TYPE, target.tagName]}, {td: [svg.PID, target.Value(svg.PID)]}, {td: [mdb.TEXT, target.Value(mdb.TEXT)]},
|
||||||
].concat(can.core.List([].concat(figure.data.copy, [svg.X, svg.Y, mdb.INDEX, ctx.ARGS]), function(key) {
|
].concat(can.core.List([].concat(can.core.Value(figure, "data.copy"), [svg.X, svg.Y, mdb.INDEX, ctx.ARGS]), function(key) {
|
||||||
return key = can.core.Value(figure.data, can.core.Keys(svg.TRANS, key))||key, {td: [key, target.Value(key)], ondblclick: function(event) {
|
return key = can.core.Value(figure.data, can.core.Keys(svg.TRANS, key))||key, {td: [key, target.Value(key)], ondblclick: function(event) {
|
||||||
can.onmotion.modify(can, event.target, function(event, value) { target.Value(key, value), can.ondetail._move(can, target) }, {action: "key"})
|
can.onmotion.modify(can, event.target, function(event, value) {
|
||||||
|
target.Value(key, value), can.ondetail._move(can, target)
|
||||||
|
if (key == ctx.INDEX || key == ctx.ARGS) { can.onimport._display(can, target) }
|
||||||
|
}, {name: key, action: "key"})
|
||||||
}}
|
}}
|
||||||
})) }])
|
})) }]), can.onimport._display(can, target)
|
||||||
// can.onappend._action(can, [""], ui.action, {_engine: function(event, can, button) { can.ondetail[button]({target: target}, can, button) }})
|
|
||||||
// , can.onappend._action(can, can.ondetail.list, ui.action, {_engine: function(event, can, button) { can.ondetail[button]({target: target}, can, button) }})
|
// , can.onappend._action(can, can.ondetail.list, ui.action, {_engine: function(event, can, button) { can.ondetail[button]({target: target}, can, button) }})
|
||||||
|
},
|
||||||
|
_display: function(can, target) { can.onmotion.clear(can, can.ui.display)
|
||||||
target.Value(ctx.INDEX)? can.onappend.plugin(can, {index: target.Value(ctx.INDEX), args: target.Value(ctx.ARGS), height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub) {
|
target.Value(ctx.INDEX)? can.onappend.plugin(can, {index: target.Value(ctx.INDEX), args: target.Value(ctx.ARGS), height: can.ConfHeight()/2-2*html.ACTION_HEIGHT}, function(sub) {
|
||||||
can.onimport.layout(can), sub.onaction._output = function() { can._display_heights[target.Value(svg.PID)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.onimport.layout(can) }
|
can.onimport.layout(can), sub.onaction._output = function() { can._display_heights[target.Value(svg.PID)] = can.base.Max(sub._target.offsetHeight, can.ConfHeight()/2), can.onimport.layout(can) }
|
||||||
|
can._plugins = (can._plugins||[]).concat(sub)
|
||||||
}, can.ui.display): can.onimport.layout(can)
|
}, can.ui.display): can.onimport.layout(can)
|
||||||
},
|
},
|
||||||
block: function(can, type, value, group) { group = group||can.group||can.svg
|
block: function(can, type, value, group) { group = group||can.group||can.svg
|
||||||
@ -65,6 +69,9 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.onmotion.clear(
|
|||||||
var height = can.page.isDisplay(can.ui.display)? can._display_heights[can.Option(svg.PID)]||html.ACTION_HEIGHT: 0; can.page.styleHeight(can, can.ui.display, height)
|
var height = can.page.isDisplay(can.ui.display)? can._display_heights[can.Option(svg.PID)]||html.ACTION_HEIGHT: 0; can.page.styleHeight(can, can.ui.display, height)
|
||||||
can.page.style(can, can.ui.content, key, can.ConfHeight()-height), can.page.styleHeight(can, can.ui.profile, can.ui.content.offsetHeight), can.page.styleHeight(can, can.ui.project, can.ui.content.offsetHeight+height)
|
can.page.style(can, can.ui.content, key, can.ConfHeight()-height), can.page.styleHeight(can, can.ui.profile, can.ui.content.offsetHeight), can.page.styleHeight(can, can.ui.project, can.ui.content.offsetHeight+height)
|
||||||
can.page.styleWidth(can, can.ui.content, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
|
can.page.styleWidth(can, can.ui.content, can.ConfWidth()-can.ui.project.offsetWidth-can.ui.profile.offsetWidth)
|
||||||
|
can.core.List(can._plugins, function(sub) {
|
||||||
|
sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()-can.ui.project.offsetWidth, true)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
}, [""])
|
}, [""])
|
||||||
Volcanos(chat.ONACTION, {list: [[svg.GRID, 1, 2, 3, 4, 5, 10, 20],
|
Volcanos(chat.ONACTION, {list: [[svg.GRID, 1, 2, 3, 4, 5, 10, 20],
|
||||||
@ -99,6 +106,7 @@ Volcanos(chat.ONACTION, {list: [[svg.GRID, 1, 2, 3, 4, 5, 10, 20],
|
|||||||
var data = figure.draw && figure.draw(event, can, points, {}), target = data && can.onimport.block(can, figure.data.name||shape, data, can.group)
|
var data = figure.draw && figure.draw(event, can, points, {}), target = data && can.onimport.block(can, figure.data.name||shape, data, can.group)
|
||||||
if (event.type == html.CLICK) { can.points = []; if (target) { var pid = can.onexport._pid(can, target)
|
if (event.type == html.CLICK) { can.points = []; if (target) { var pid = can.onexport._pid(can, target)
|
||||||
can.core.List(points, function(p, i) { p.target && p.target.Value(ice.SHIP, p.target.Value(ice.SHIP).concat([{pid: pid, which: i+1, anchor: p.anchor}])) })
|
can.core.List(points, function(p, i) { p.target && p.target.Value(ice.SHIP, p.target.Value(ice.SHIP).concat([{pid: pid, which: i+1, anchor: p.anchor}])) })
|
||||||
|
return
|
||||||
} } return target
|
} } return target
|
||||||
},
|
},
|
||||||
resize: function(event, can, points) { var target = event.target
|
resize: function(event, can, points) { var target = event.target
|
||||||
@ -125,12 +133,13 @@ Volcanos(chat.ONACTION, {list: [[svg.GRID, 1, 2, 3, 4, 5, 10, 20],
|
|||||||
default: can.Action(ice.MODE, web.DRAW), can.Action(svg.SHAPE, svg.LINE)
|
default: can.Action(ice.MODE, web.DRAW), can.Action(svg.SHAPE, svg.LINE)
|
||||||
} }
|
} }
|
||||||
},
|
},
|
||||||
_figure: function(event, can, points) { can.temp && can.page.Remove(can, can.temp) && delete(can.temp)
|
_figure: function(event, can, points) {
|
||||||
can.temp = can.core.CallFunc([can.onaction._mode, can.Action(ice.MODE)], [event, can, points]), can.points.length == 0 && delete(can.temp)
|
can._undo && can._undo(), can._undo = function() { can.temp && can.page.Remove(can, can.temp) && delete(can.temp), delete(can._undo) }
|
||||||
|
can.temp = can.core.CallFunc([can.onaction._mode, can.Action(ice.MODE)], [event, can, points]), can.points.length == 0 && can._undo && can._undo()
|
||||||
},
|
},
|
||||||
onmouseover: function(event, can) { can.onexport._show(can, event.target) },
|
onmouseover: function(event, can) { can.onexport._show(can, event.target) },
|
||||||
onmousemove: function(event, can) { var point = can.onexport._point(event, can)
|
onmousemove: function(event, can) { var point = can.onexport._point(event, can)
|
||||||
if (can.Action(svg.GO) == ice.RUN) { return } can.onexport.cursor(event, can, event.target)
|
if (can.Action(svg.GO) == ice.RUN) { return can.page.style(can, can.svg, "cursor", "pointer") } can.onexport.cursor(event, can, event.target)
|
||||||
if (can.Action(svg.GO) == ice.AUTO) { can.onaction._auto(can, event.target) }
|
if (can.Action(svg.GO) == ice.AUTO) { can.onaction._auto(can, event.target) }
|
||||||
can.onaction._figure(event, can, can.points.concat(point))
|
can.onaction._figure(event, can, can.points.concat(point))
|
||||||
},
|
},
|
||||||
@ -158,7 +167,7 @@ Volcanos(chat.ONDETAIL, {list: [cli.START, ice.COPY, html.LABEL, "toimage", mdb.
|
|||||||
can.ondetail.run({target: target}, can), next()
|
can.ondetail.run({target: target}, can), next()
|
||||||
}) })
|
}) })
|
||||||
},
|
},
|
||||||
copy: function(event, can) { var figure = can.onfigure._get(can, target), trans = can.core.Value(figure, svg.DATA, svg.TRANS)||{}, data = {}
|
copy: function(event, can) { var target = event.target, figure = can.onfigure._get(can, target), trans = can.core.Value(figure, [svg.DATA, svg.TRANS])||{}, data = {}
|
||||||
data[trans.x||svg.X] = target.Val(trans.x||svg.X)+10, data[trans.y||svg.Y] = target.Val(trans.y||svg.Y)+10
|
data[trans.x||svg.X] = target.Val(trans.x||svg.X)+10, data[trans.y||svg.Y] = target.Val(trans.y||svg.Y)+10
|
||||||
can.core.List(figure.data.copy, function(key) { data[key] = target.Value(key) })
|
can.core.List(figure.data.copy, function(key) { data[key] = target.Value(key) })
|
||||||
return can.onimport.block(can, target.tagName, data, can.group)
|
return can.onimport.block(can, target.tagName, data, can.group)
|
||||||
@ -255,7 +264,7 @@ Volcanos(chat.ONEXPORT, {list: [svg.GROUP, svg.FIGURE, ctx.INDEX, "pos"],
|
|||||||
switch (pos) {
|
switch (pos) {
|
||||||
case 1:
|
case 1:
|
||||||
case 4:
|
case 4:
|
||||||
case 7: target.Value(sve.X, begin.x + p1.x - p0.x), target.Value(html.WIDTH, begin.width - p1.x + p0.x); break
|
case 7: target.Value(svg.X, begin.x + p1.x - p0.x), target.Value(html.WIDTH, begin.width - p1.x + p0.x); break
|
||||||
case 3:
|
case 3:
|
||||||
case 6:
|
case 6:
|
||||||
case 9: target.Value(html.WIDTH, begin.width + p1.x - p0.x); break
|
case 9: target.Value(html.WIDTH, begin.width + p1.x - p0.x); break
|
||||||
@ -266,6 +275,7 @@ Volcanos(chat.ONFIGURE, {
|
|||||||
_get: function(can, target, name) { return can.onfigure[name]||can.onfigure[target.getAttribute(mdb.NAME)]||can.onfigure[target.tagName] },
|
_get: function(can, target, name) { return can.onfigure[name]||can.onfigure[target.getAttribute(mdb.NAME)]||can.onfigure[target.tagName] },
|
||||||
|
|
||||||
svg: { // "600" grid="10" count="0" font-size="24" stroke-width="2" stroke="yellow" fill="purple"/>
|
svg: { // "600" grid="10" count="0" font-size="24" stroke-width="2" stroke="yellow" fill="purple"/>
|
||||||
|
data: {copy: [html.HEIGHT, html.WIDTH]},
|
||||||
show: function(can, target, figure) { return can.onexport._size(can, target, figure) }
|
show: function(can, target, figure) { return can.onexport._size(can, target, figure) }
|
||||||
},
|
},
|
||||||
text: { // "60" y="10">hi
|
text: { // "60" y="10">hi
|
||||||
@ -285,9 +295,10 @@ Volcanos(chat.ONFIGURE, {
|
|||||||
block: { // "30" width="30" rx="10" ry="10" x="60" y="10"/>
|
block: { // "30" width="30" rx="10" ry="10" x="60" y="10"/>
|
||||||
data: {points: 2, rx: 4, ry: 4, copy: [html.HEIGHT, html.WIDTH, svg.RX, svg.RY]},
|
data: {points: 2, rx: 4, ry: 4, copy: [html.HEIGHT, html.WIDTH, svg.RX, svg.RY]},
|
||||||
draw: function(event, can, points, style) {
|
draw: function(event, can, points, style) {
|
||||||
this._temp && can.page.Remove(can, this._temp) && delete(this._temp), this._temp = can.onimport.block(can, svg.G, {}, can.group)
|
can._undo && can._undo(), can._temp = can.onimport.block(can, svg.G, {}, can.group)
|
||||||
var target = can.onimport.block(can, svg.RECT, can.onfigure.rect.draw(event, can, points, style), this._temp)
|
can._undo = function() { can._temp && can.page.Remove(can, can._temp) && delete(can._temp), delete(can._undo) }
|
||||||
if (event.type == html.CLICK) { can.onexport._pid(can, target), delete(this._temp) }
|
var target = can.onimport.block(can, svg.RECT, can.onfigure.rect.draw(event, can, points, style), can._temp)
|
||||||
|
if (event.type == html.CLICK) { can.onexport._pid(can, target), delete(can._temp) }
|
||||||
},
|
},
|
||||||
text: function(can, target, data) { can.onfigure.rect.text(can, data, target) },
|
text: function(can, target, data) { can.onfigure.rect.text(can, data, target) },
|
||||||
},
|
},
|
||||||
@ -321,6 +332,7 @@ Volcanos(chat.ONFIGURE, {
|
|||||||
Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||||
_mode: {
|
_mode: {
|
||||||
normal: {
|
normal: {
|
||||||
|
Escape: function(event, can) { can._undo && can._undo(), can.points = [] },
|
||||||
gr: function(event, can) { can.Action(svg.GO, ice.RUN) },
|
gr: function(event, can) { can.Action(svg.GO, ice.RUN) },
|
||||||
ga: function(event, can) { can.Action(svg.GO, ice.AUTO) },
|
ga: function(event, can) { can.Action(svg.GO, ice.AUTO) },
|
||||||
gm: function(event, can) { can.Action(svg.GO, "manual") },
|
gm: function(event, can) { can.Action(svg.GO, "manual") },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user