1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00

opt windows

This commit is contained in:
harveyshao 2023-02-14 19:47:50 +08:00
parent 803c6ed691
commit 3601129c3a
9 changed files with 27 additions and 17 deletions

View File

@ -655,9 +655,11 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
})
Volcanos(chat.ONKEYMAP, {_init: function(can, target) { target = target||document.body
can.onkeymap._build(can), target.onkeydown = function(event) { can.misc.Event(event, can, function(msg) {
if (can.user.isWindows && event.ctrlKey) { can.onkeymap.prevent(event) }
if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return }
can.onengine.signal(can, chat.ONKEYDOWN, can.request(event, {"model": can.user.isWebview && event.metaKey? "webview": "normal"}))
}) }, target.onkeyup = function(event) { can.misc.Event(event, can, function(msg) {
if (can.user.isWindows && event.ctrlKey) { can.onkeymap.prevent(event) }
if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return }
can.onengine.signal(can, chat.ONKEYUP, can.request(event, {"model": "normal"}))
}) }
@ -742,7 +744,7 @@ Volcanos(chat.ONKEYMAP, {_init: function(can, target) { target = target||documen
if (event.key == lang.ESCAPE) { event.target.blur() }
},
selectInputs: function(event, can, cb, target) { if (can.page.ismodkey(event)) { return } if (event.key == lang.ESCAPE) { return target.blur() }
if (event.ctrlKey || event.key == lang.TAB) { if (can.base.isUndefined(target._index)) { target._index = -1, target._value = target.value }
if (event.ctrlKey || can.base.isIn(event.key, "Tab", "ArrowUp", "ArrowDown")) { if (can.base.isUndefined(target._index)) { target._index = -1, target._value = target.value }
function select(order) { if (order == -1) { target.value = target._value }
var index = 0; return can.page.Select(can, can._output, [html.TBODY, html.TR], function(tr) { if (can.page.ClassList.has(can, tr, html.HIDDEN)) { return }
can.page.ClassList.del(can, tr, html.SELECT); if (order == index++) { can.page.ClassList.add(can, tr, html.SELECT)
@ -751,7 +753,9 @@ Volcanos(chat.ONKEYMAP, {_init: function(can, target) { target = target||documen
}).length
}
var total = select(target._index), key = event.key; if (event.key == lang.TAB) { key = event.shiftKey? "p": "n" } switch (key) {
case "ArrowDown":
case "n": select(target._index = (target._index+2) % (total+1) - 1); break
case "ArrowUp":
case "p": select(target._index = (target._index+total+1) % (total+1) - 1); break
default: return
} return can.Status(mdb.INDEX, target._index), can.onkeymap.prevent(event)

View File

@ -93,7 +93,7 @@ body>div.toast div.action { width:100%; display:block; }
body>div.toast div.action>div.item { float:right; }
body>div.carte { padding:0; }
body>div.carte input[name=filter] { margin:5px; width:calc(100% - 10px); position:sticky; top:5px; }
body>div.carte div.item { padding:5px 10px; }
body>div.carte div.item { white-space:pre; padding:5px 10px; }
body>div.carte div.item span.icon.gt { float:right; }
body>div.input td { padding:5px; }
body>div.input td span.icon { font-size:14px; margin-left:-25px; margin-right:10px; visibility:hidden; }
@ -158,7 +158,7 @@ div.item.select input { border-radius:0; min-width:60px; }
div.project div.zone div.list { clear:both; }
body.en fieldset.input.date.float>div.action>div.item.select { margin:0 5px; }
body.en fieldset.input.date.float>div.action>div.item.select select { width:65px; }
body.en fieldset.input.date.float>div.action>div.item.select select { width:64px; }
body.en fieldset.input.date.float>div.action>div.item.select.year select { width:115px; }
body.en fieldset.input.date.float>div.action>div.item.select.month select { width:115px; }
body.zh fieldset.input.date.float>div.action>div.item.select { margin:0 5px; }

View File

@ -9,7 +9,7 @@ fieldset.Footer>div.output div.cmd { padding:0; margin-left:40px; }
fieldset.Footer>div.output div.cmd>span.delete { top:1px; right:5px; }
fieldset.Footer>div.output div.cmd>input[name=cmd] { margin-right:0; width:120px; transition:all 1s; }
fieldset.Footer>div.output div.cmd>input[name=cmd]:focus { width:320px; transition:all 0.5s; }
fieldset.Footer>div.output div.cmd:hover>input[name=cmd] { width:320px; transition:all 0.5s; }
// fieldset.Footer>div.output div.cmd:hover>input[name=cmd] { width:320px; transition:all 0.5s; }
.picker { box-shadow:4px 4px 20px 4px #626bd0; }
div.view span.keyword { color:#5cadd4; }

View File

@ -1,6 +1,7 @@
(function() { var NTIP = "ntip", NLOG = "nlog", NCMD = "ncmd", NKEY = "nkey"
Volcanos(chat.ONIMPORT, {_init: function(can, msg, target) { can.Conf(NKEY, can.core.Item(can.misc.localStorage(can)).length)
can.onimport._title(can, msg, target), can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target), can.onimport._command(can, msg, target)
can.onimport._title(can, msg, target), can.onimport._command(can, msg, target)
can.onimport._state(can, msg, target), can.onimport._toast(can, msg, target)
},
_title: function(can, msg, target) { can.user.isMobile || can.core.List(can.Conf(chat.TITLE)||msg.result, function(item) {
can.page.Append(can, target, [{view: [chat.TITLE, "", item], title: "联系站长"}])

View File

@ -11,4 +11,4 @@ fieldset.Header>div.output div.search.title { padding:0; margin-left:20px; }
fieldset.Header>div.output div.search>span.delete { top:1px; right:5px; }
fieldset.Header>div.output div.search>input { margin-right:0; transition:all 1s; }
fieldset.Header>div.output div.search>input:focus { width:320px; transition:all 0.5s; }
fieldset.Header>div.output div.search:hover>input { width:320px; transition:all 0.5s; }
// fieldset.Header>div.output div.search:hover>input { width:320px; transition:all 0.5s; }

View File

@ -22,5 +22,11 @@ Volcanos(chat.ONFIGURE, {key: {
if (event.key == lang.ENTER) { return meta._enter && (!can.page.tagis(event.target, html.TEXTAREA) || event.ctrlKey) && meta._enter(event)? sub.close(): last(event) }
sub.hidden() || can.onkeymap.selectCtrlN(event, can, sub._output, "tr:not(.hidden)>td:first-child", function(td) { return cb(sub, td.innerText, target.value), td }) || can.onmotion.delayOnce(can, function() {
can.onkeymap.selectInputs(event, sub, function() { sub._load(event, sub, cb, target, meta.name) }, target) }, target.value.length < 3? 500: 150)
if (event.ctrlKey && can.user.isWindows) { can.onkeymap.prevent(event) }
if (can.base.isIn(event.key, "ArrowUp", "ArrowDown") && can.user.isWindows) { can.onkeymap.prevent(event) }
},
onkeyup: function(event, can, meta, cb, target, sub, last) { if (event.key == lang.ESCAPE) { return last(event) }
if (event.ctrlKey && can.user.isWindows) { can.onkeymap.prevent(event) }
if (can.base.isIn(event.key, "ArrowUp", "ArrowDown") && can.user.isWindows) { can.onkeymap.prevent(event) }
},
}})

View File

@ -10,9 +10,11 @@ fieldset.inner>div.output div.content td.text span.constant { color:magenta; }
fieldset.inner>div.output div.content td.text span.string { color:magenta; }
fieldset.inner>div.output div.content td.text span.object { color:cyan; }
fieldset.inner>div.output>div.layout>div.layout>div.content * { font-family:monospace; font-size:14px; outline:none; }
fieldset.inner>div.output>div.layout>div.path { font-family:monospace; font-size:14px; }
fieldset.inner>div.output>div.layout>div.tabs { font-family:monospace; font-size:14px; }
fieldset.inner>div.output>div.project { width:230px; }
fieldset.inner>div.output>div.project div.action { width:100%; }
fieldset.inner>div.output>div.project * { font-size:14px; outline:none; }
fieldset.inner>div.output>div.project * { font-family:monospace; font-size:14px; outline:none; }
fieldset.inner>div.output>div.project>div.zone>div.item span.icon { font-size:22px; line-height:18px; width:20px; float:right; display:none; }
fieldset.inner>div.output>div.project>div.zone:hover>div.item span.icon { display:block; }
fieldset.inner>div.output>div.project>div.zone div.action>div.item { padding-right:0; width:100%; }

View File

@ -223,13 +223,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl
}, can.ui.plug.parentNode)
},
layout: function(can) { if (can.isSimpleMode()) { return can.page.style(can, can.ui.content, html.WIDTH, can.ConfWidth()) }
if (can.isCmdMode()) {
if (can.user.isWindows) {
can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()-8)
} else {
can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width())
}
}
if (can.isCmdMode()) { can.ConfHeight(can.page.height()), can.ConfWidth(can.page.width()) }
can.ui.size = {profile: can.db.profile_size[can.onexport.keys(can)]||0.5, display: can.db.display_size[can.onexport.keys(can)]||3*html.ACTION_HEIGHT}
can.ui.layout(can.ConfHeight(), can.ConfWidth(), 0, function(content_height, content_width) { var sub = can.ui.content._plugin; if (!sub) { return }
if (content_height == sub.ConfHeight()+sub.onexport.actionHeight(sub)+sub.onexport.statusHeight(sub) && content_width == sub.ConfWidth()) { return }
@ -420,7 +414,7 @@ Volcanos(chat.ONACTION, {list: ["首页", "官网", "调试", "百度"],
},
open: function(event, can) {
var paths = can.core.List(can.db.paths, function(item) { if (can.base.endWith(item, "-story/", "-dict/")) { return } return item }).join(ice.FS)
paths = "src/,usr/icebergs/,usr/volcanos/"
// paths = "src/,usr/icebergs/,usr/volcanos/"
var input = can.user.input(can.request(event, {paths: paths}), can, [{name: nfs.FILE, style: {width: can.ui.content.offsetWidth/2}, run: function(event, cmds, cb) {
can.run(can.request(event, {paths: paths}), cmds, function(msg) {
if (cmds[0] == ctx.ACTION && cmds[1] == mdb.INPUTS) { var _msg = can.onengine.signal(can, "tabview.open.inputs"), func = can.onexport.func(can)

View File

@ -284,8 +284,11 @@ Volcanos(chat.ONKEYMAP, {
y: shy("向上滚屏", function(can) { can.current.scroll(-1) }),
},
insert_ctrl: {
n: shy("向上滚屏", function(event) { can.onkeymap.prevent(event) }),
p: shy("向上滚屏", function(event) { can.onkeymap.prevent(event) }),
f: shy("光标右移", function(can, target) { can.onkeymap.cursorMove(target, 1) }),
b: shy("光标左移", function(can, target) { can.onkeymap.cursorMove(target, -1) }),
a: shy("光标行首", function(can, target) { can.onkeymap.cursorMove(target, 0, 0) }),
e: shy("光标行尾", function(can, target) { can.onkeymap.cursorMove(target, 0, -1) }),
d: shy("删除字符", function(can, target) { can.onkeymap.deleteText(target, target.selectionStart, 1) }),
},
insert: {
Escape: shy("退出编辑", function(event, can) { can.onkeymap._normal(can) }),