mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 08:48:06 +08:00
opt inner.js
This commit is contained in:
parent
e2c81e458b
commit
711534702a
4
frame.js
4
frame.js
@ -230,7 +230,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
if (can._daemon) { msg._daemon = can._daemon }
|
||||
}
|
||||
|
||||
if (msg.Option("_toast")) { var toast = can.user.toast(can, msg.Option("_toast"), "", -1) }
|
||||
return can.run(event, cmds, function(msg) { var sub = can.core.Value(can, "_outputs.-1")||{}; can._msg = msg, sub._msg = msg
|
||||
toast && toast.close()
|
||||
var process = msg._can == can || msg._can == sub
|
||||
if (process && can.core.CallFunc([sub, "onimport._process"], {can: sub, msg: msg})) { return }
|
||||
if (process && can.core.CallFunc([can, "onimport._process"], {can: can, msg: msg})) { return }
|
||||
@ -653,7 +655,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
|
||||
}).length > 0
|
||||
},
|
||||
delay: function(can, cb) {
|
||||
can.core.Timer(10, cb)
|
||||
can.core.Timer(50, cb)
|
||||
},
|
||||
|
||||
hidden: function(can, target, show) {
|
||||
|
@ -15,9 +15,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
||||
},
|
||||
_plugin: function(can, river, storm, sub, meta) { sub._target._meta = meta
|
||||
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
|
||||
if (msg.Option("_toast")) { var toast = can.user.toast(can, msg.Option("_toast"), "", -1) }
|
||||
return can.run(event, can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), function(msg) {
|
||||
toast && toast.close(), can.base.isFunc(cb) && cb(msg)
|
||||
can.base.isFunc(cb) && cb(msg)
|
||||
})
|
||||
|
||||
}, can._plugins = can.misc.concat(can, can._plugins, [sub])
|
||||
|
@ -174,10 +174,10 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
|
||||
can.page.Modify(can, can.ui.profile, {style: {display: p? p.profile_display: html.NONE}})
|
||||
can.page.Modify(can, can.ui.display, {style: {display: p? p.display_display: html.NONE}})
|
||||
can.onmotion.select(can, can._action, chat.DIV_TABS, msg._tab)
|
||||
msg.Option(ctx.INDEX) && can.core.Timer(10, function() {
|
||||
can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
|
||||
can.onmotion.delay(can, function() { can.onimport.layout(can)
|
||||
msg.Option(ctx.INDEX) && can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
|
||||
})
|
||||
return can.onimport.layout(can), can.file
|
||||
return can.file
|
||||
}, can.ui.content, can.ui.profile_output, can.ui.display_output)) {
|
||||
return can.onaction.selectLine(null, can, msg.Option(nfs.LINE)), can.base.isFunc(cb) && cb()
|
||||
}
|
||||
@ -248,10 +248,10 @@ Volcanos("onkeymap", {help: "导入数据", _init: function(can, msg, cb, target
|
||||
v: function(event, can) { can.onaction["展示"](event, can) },
|
||||
s: function(event, can) { can.onaction["保存"](event, can) },
|
||||
|
||||
j: function(event, can) { can.onaction.scrollLine(can, 1) },
|
||||
k: function(event, can) { can.onaction.scrollLine(can, -1) },
|
||||
J: function(event, can) { can.onaction.scrollLine(can, 20) },
|
||||
K: function(event, can) { can.onaction.scrollLine(can, -20) },
|
||||
j: function(event, can) { can.current.scroll(1) },
|
||||
k: function(event, can) { can.current.scroll(-1) },
|
||||
J: function(event, can) { can.current.scroll(can.current.window()-3) },
|
||||
K: function(event, can) { can.current.scroll(-can.current.window()+3) },
|
||||
|
||||
i: function(event, can) { can.onkeymap._insert(event, can) },
|
||||
n: function(event, can) { can.onkeymap._normal(event, can) },
|
||||
@ -290,17 +290,16 @@ Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加",
|
||||
"保存": function(event, can) { can.onexport.sess(can), can.user.toastSuccess(can) },
|
||||
"项目": function(event, can) { can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can) },
|
||||
"工具": function(event, can) { can.onmotion.toggle(can, can.ui.toolkit.fieldset) },
|
||||
"展示": function(event, can) { can.onimport.profile(can)
|
||||
can.run(event, [ctx.ACTION, mdb.ENGINE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
|
||||
can.onimport.profile(can, msg)
|
||||
}, true)
|
||||
},
|
||||
"执行": function(event, can) { can.onimport.display(can)
|
||||
can.request(event, {_toast: "执行中..."})
|
||||
"执行": function(event, can) { can.onimport.display(can), can.request(event, {_toast: "执行中..."})
|
||||
can.run(event, [ctx.ACTION, mdb.ENGINE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
|
||||
can.onimport.display(can, msg)
|
||||
}, true)
|
||||
},
|
||||
"展示": function(event, can) { can.onimport.profile(can), can.request(event, {_toast: "渲染中..."})
|
||||
can.run(event, [ctx.ACTION, mdb.RENDER, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
|
||||
can.onimport.profile(can, msg)
|
||||
}, true)
|
||||
},
|
||||
"清屏": function(event, can) {
|
||||
if (can.page.Select(can, document.body, ".input.float", function(item) {
|
||||
return can.page.Remove(can, item)
|
||||
@ -365,17 +364,17 @@ Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加",
|
||||
}}
|
||||
]}]); return ui.tr
|
||||
},
|
||||
selectLine: function(event, can, line) { if (!line) { return }
|
||||
can.page.Select(can, can.ui.content, html.TR, function(item, index) {
|
||||
selectLine: function(event, can, line) { if (!line) { return parseInt(can.core.Value(can.page.Select(can, can.ui.content, [[[html.TR, html.SELECT], [html.TD, "line"]]])[0], "innerText")) }
|
||||
can.page.Select(can, can.ui.content, html.TR, function(item, index, array) { if (line < 0 || line > array.length) { return }
|
||||
if (!can.page.ClassList.set(can, item, html.SELECT, item == line || index+1 == line)) { return }
|
||||
line = item, can.Status(kit.Dict("文件名", can.file, "解析器", can.parse, "当前行", can.onexport.position(can, can.Option(nfs.LINE, index+1))))
|
||||
})
|
||||
|
||||
can.base.isObject(line) && can.page.Select(can, line, "td.text", function(item) {
|
||||
can.current = {
|
||||
window: function() { return can.ui.content.offsetHeight/can.current.line.offsetHeight },
|
||||
window: function() { return parseInt(can.ui.content.offsetHeight/can.current.line.offsetHeight) },
|
||||
scroll: function(count) { if (count) { can.ui.content.scrollTop += count*can.current.line.offsetHeight }
|
||||
return (can.current.line.offsetTop-can.ui.content.scrollTop)/can.current.line.offsetHeight
|
||||
return parseInt((can.current.line.offsetTop-can.ui.content.scrollTop)/can.current.line.offsetHeight)
|
||||
},
|
||||
|
||||
prev: function() { return line.previousSibling },
|
||||
|
@ -9,11 +9,15 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui.current = can.page.Append(can, can.ui.content.parentNode, [
|
||||
{view: ["current", html.INPUT], onkeydown: function(event) { if (event.metaKey) { return }
|
||||
can.misc.Debug("key", event.key)
|
||||
can._keylist = can.onkeymap._parse(event, can, can.mode, can._keylist, can.ui.current)
|
||||
can._keylist = can.onkeymap._parse(event, can, can.mode+(event.ctrlKey? "_ctrl": ""), can._keylist, can.ui.current)
|
||||
can.mode == "insert" && can.core.Timer(10, function() { can.current.text(can.ui.current.value) })
|
||||
can.mode == "normal" && can.Status("按键", can._keylist.join(""))
|
||||
can.mode == "normal" && can.onkeymap.prevent(event)
|
||||
}, onclick: function(event) { can.onkeymap._insert(event, can) }},
|
||||
}, onclick: function(event) { can.onkeymap._insert(event, can) },
|
||||
ondblclick: function(event) { var target = event.target
|
||||
can.onaction.searchLine(event, can, target.value.slice(target.selectionStart, target.selectionEnd))
|
||||
},
|
||||
},
|
||||
]).first
|
||||
},
|
||||
}, [""])
|
||||
@ -33,6 +37,16 @@ Volcanos("onkeymap", {help: "键盘交互", list: [],
|
||||
},
|
||||
|
||||
_mode: {
|
||||
normal_ctrl: {
|
||||
f: function(event, can, target, count) {
|
||||
var line = can.onaction.selectLine(event, can)+can.current.window()-3-can.current.scroll()
|
||||
return can.current.scroll(line), can.onaction.selectLine(event, can, line), true
|
||||
},
|
||||
b: function(event, can, target, count) {
|
||||
var line = can.onaction.selectLine(event, can)-can.current.window()+3
|
||||
return can.current.scroll(line), can.onaction.selectLine(event, can, line), true
|
||||
},
|
||||
},
|
||||
normal: {
|
||||
escape: function(event, can) { can.onkeymap._plugin(event, can) },
|
||||
ArrowLeft: function(event, can, target) { can.onkeymap.cursorMove(can, target, -1) },
|
||||
@ -103,7 +117,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: [],
|
||||
},
|
||||
}, _engine: {},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE],
|
||||
Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, "autogen", "compile", "binpack"],
|
||||
save: function(event, can) { var msg = can.request(event, {content: can.onexport.content(can)})
|
||||
can.run(event, [ctx.ACTION, nfs.SAVE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
|
||||
can.user.toastSuccess(can)
|
||||
@ -115,7 +129,7 @@ Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE],
|
||||
can.page.Modify(can, can.ui.current, {style: kit.Dict(html.LEFT, td.offsetLeft-1, html.WIDTH,td.offsetWidth-12), value: td.innerText})
|
||||
if (event) { if (can.mode == "plugin") { can.onkeymap._insert(event, can) }
|
||||
can.ui.current.focus(), can.onkeymap.cursorMove(can, can.ui.current, 0, (event.offsetX)/13-1)
|
||||
can.ui.content.scrollLeft -= td.offsetLeft
|
||||
can.ui.content.scrollLeft -= 10000
|
||||
}
|
||||
})
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user