From 686570b9ad9767803f561fb8e2e35c54440f43fa Mon Sep 17 00:00:00 2001 From: steffen Date: Thu, 7 Jan 2021 23:52:11 +0000 Subject: [PATCH] adding context menu --- webinterface/block.js | 53 ++++++++++++++++ webinterface/gui/gui.css | 57 +++++++++++++++-- webinterface/gui/gui.js | 93 ++++++++++++++++++++++++++++ webinterface/images/btnclose.png | Bin 0 -> 5700 bytes webinterface/images/btnsettings.png | Bin 0 -> 7005 bytes webinterface/index.html | 6 +- webinterface/layout.css | 1 + webinterface/railways.js | 30 ++++++++- webinterface/side.js | 11 +++- webinterface/track.js | 7 ++- 10 files changed, 247 insertions(+), 11 deletions(-) create mode 100644 webinterface/images/btnclose.png create mode 100644 webinterface/images/btnsettings.png diff --git a/webinterface/block.js b/webinterface/block.js index d738fd6..f804970 100644 --- a/webinterface/block.js +++ b/webinterface/block.js @@ -45,6 +45,59 @@ function block_Delete(name) { }; + +function block_contextmenu(name) { + gContextmenuCreate(name); + + gContextmenuAdd("Locomotives", 0, 0); + for (var i = 0; i < locomotives.length; i++) { + if (locomotives[i].name) + gContextmenuAdd(locomotives[i].name, block_ctxmenu_LocoSelect, locomotives[i].name); + } + gContextmenuAdd("", 0, 0); + gContextmenuAdd("Set DestinationFWD", block_ctxmenu_LocoDestinationFWD, 0); + gContextmenuAdd("Set DestinationREV", block_ctxmenu_LocoDestinationREV, 0); + gContextmenuAdd("", 0, 0); + gContextmenuAdd("AssignFWD", block_ctxmenu_LocoAssignFWD, 0); + gContextmenuAdd("AssignREV", block_ctxmenu_LocoAssignREV, 0); + gContextmenuAdd("", 0, 0); + gContextmenuAdd("Clear", block_ctxmenu_Clear, 0); + gContextmenuAdd("Offservice", block_ctxmenu_Clear, 1); +}; + + +function block_ctxmenu_LocoSelect (element, value) { + alert ("LocoSelect:" + value); +}; + + +function block_ctxmenu_LocoDestinationFWD (element, value) { + alert ("DestinationFWD:" + value); +}; + + +function block_ctxmenu_LocoDestinationREV (element, value) { + alert ("DestinationREV:" + value); +}; + + +function block_ctxmenu_LocoAssignFWD (element, value) { + alert ("AssignFWD:" + value); +}; + + +function block_ctxmenu_LocoAssignREV (element, value) { + alert ("AssignREV:" + value); +}; + + +function block_ctxmenu_Clear (element, value) { + // value == 0 ... clear + // value == 1 ... Put Off Service + alert ("Clear / Off Service"); +} + + // // send new element to server // diff --git a/webinterface/gui/gui.css b/webinterface/gui/gui.css index 921ddaa..2d4b2e4 100644 --- a/webinterface/gui/gui.css +++ b/webinterface/gui/gui.css @@ -1,6 +1,13 @@ :root { + --head-bg-color: #0018ff; + --head-fg-color: #ffffff; --bg-color: #dddddd; + --fg-color: #000000; + --contextmenu-bg-color: #b2ccb5; + --contextmenu-fg-color: #000000; + --contextmenu-head-bg-color: #10ff39; + --contextmenu-head-fg-color: #000000; --input-bg-color: #c8c8c8; --input-fg-color: black; } @@ -11,16 +18,19 @@ margin: 1px; padding: 0px; position: absolute; + font-family: system-ui; } .GUIwindowHead { border: 1px solid black; - background: #0018ff; - color: white; + background: var(--head-bg-color); + color: var(--head-fg-color); margin: 0px; - padding: 5px; + padding: 4px; cursor: move; text-align: center; + font-family: system-ui; + font-weight: bold; } .GUIwindowClient { @@ -30,10 +40,48 @@ color: var(--input-fg-color); } - .GUIbutton { } + +.GUIcontextmenu { + float:left; + border: 2px solid black; + margin: 1px; + padding: 0px; + position: absolute; + text-size: small; + font-family: "Liberation Sans Narrow", "Cantarell Thin", Sans; +} + +.GUIcontextmenuHead { + border: 1px solid black; + background: var(--contextmenu-head-bg-color); + color: var(--contextmenu-head-fg-color); + margin: 0px; + padding: 1px; + text-align: center; + text-size: small; + font-family: "Liberation Sans Narrow", "Cantarell Thin", Sans; + font-weight: bold; +} + +.GUIcontextmenuClient { + overflow: auto; + padding: 0px; + background-color: var(--contextmenu-bg-color); + color: var(--contextmenu-fg-color); + text-size: small; + font-family: system-ui; +} + +ul.GUIcontextmenuElements { + list-style-type: none; + margin: 0px; + padding: 0px; +} + + button { background-color: var(--input-bg-color); color: var(--input-fg-color); @@ -44,6 +92,7 @@ input { border: 1px solid var(--input-bg-color); background-color: var(--input-bg-color); color: var(--input-fg-color); + font-family: "Lucida Console", Courier, monospace; } td { diff --git a/webinterface/gui/gui.js b/webinterface/gui/gui.js index 1ca603e..0148952 100644 --- a/webinterface/gui/gui.js +++ b/webinterface/gui/gui.js @@ -1,4 +1,7 @@ +var MousePosX = null; +var MousePosY = null; + // // init all variables with the class givin @@ -8,9 +11,28 @@ $(document).ready(function() { $(".GUIwindow").each( function (i) { gWindowDragElement(this); }); + + document.addEventListener('mousemove', onMouseUpdate, false); + document.addEventListener('mouseenter', onMouseUpdate, false); + }); +function onMouseUpdate(e) { + MousePosX = e.pageX; + MousePosY = e.pageY; +} + +function getMouseX() { + return MousePosX; +} + +function getMouseY() { + return MousePosY; +} + + + // // function gAddEventListener (id, eventname, callback) { @@ -32,3 +54,74 @@ function getTextBetween(fulltext, text1, text2) { else return ""; }; + + +// +// Context Menus +function gContextmenuCreate(title) { + let cm = document.getElementById("ContextMenu"); + if (cm) { + let parent = cm.parentNode; + parent.removeChild(cm); + } + + debug("create Contextmenu:" + title); + + var head = document.createElement("div"); + head.setAttribute("id", "ConextMenuHead"); + head.setAttribute("class", "GUIcontextmenuHead"); + head.innerHTML = title; + + var ul = document.createElement("ul"); + ul.setAttribute("id", "ContextMenuElements"); + ul.setAttribute("class", "GUIcontextmenuElements"); + + var client = document.createElement("div"); + client.setAttribute("id", "ContextMenuClient"); + client.setAttribute("class", "GUIcontextmenuClient"); + client.setAttribute("style", "max-height: 400px; max-width:150px;"); + client.innerHTML = ""; + client.appendChild (ul); + + cm = document.createElement("div"); + cm.setAttribute("id", "ContextMenu"); + cm.setAttribute("class", "GUIcontextmenu"); + cm.appendChild (head); + cm.appendChild (client); + + document.body.appendChild(cm); + cm.style.top = getMouseY(); + cm.style.left = getMouseX(); + + return cm; +}; + + +function gContextmenuAdd(text, callback_function, value) { + let ul = document.getElementById("ContextMenuElements"); + + if (ul) { + let li = document.createElement("li"); + + li.innerHTML = text; + li.value = value; + if (typeof callback_function === 'object' && callback_function !== null) { + li.addEventListener("click", callback_function); + debug ("add event listener."); + } + else { + debug ("add event listener."); + } + + ul.appendChild(li); + } +}; + + +function gContextmenuClose() { + let cm = document.getElementById("ContextMenu"); + if (cm) { + let parent = cm.parentNode; + parent.removeChild(cm); + } +}; diff --git a/webinterface/images/btnclose.png b/webinterface/images/btnclose.png new file mode 100644 index 0000000000000000000000000000000000000000..f000c1c0e44ff534cd3d9727823b1a4cca7297ec GIT binary patch literal 5700 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 TE-u-EEeIzRg!=9D{Vem}u>X04 literal 0 HcmV?d00001 diff --git a/webinterface/images/btnsettings.png b/webinterface/images/btnsettings.png new file mode 100644 index 0000000000000000000000000000000000000000..43344c11663eca89916d1f7a8eb6f4589d3ef947 GIT binary patch literal 7005 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


+



diff --git a/webinterface/layout.css b/webinterface/layout.css index 58b850d..49e9847 100644 --- a/webinterface/layout.css +++ b/webinterface/layout.css @@ -1,6 +1,7 @@ body { margin: 0px; + font-family: system-ui; } :root { diff --git a/webinterface/railways.js b/webinterface/railways.js index 3ad1460..e825211 100644 --- a/webinterface/railways.js +++ b/webinterface/railways.js @@ -209,10 +209,38 @@ function rw_Click(x,y) { // // Sensor - if (track.elements[idx].type == RAILWAY_SENSOR) { + else if (track.elements[idx].type == RAILWAY_SENSOR) { if (track.elements[idx].name != "") { } } + + // + // Block + else if (track.elements[idx].type == RAILWAY_BLOCK) { + block_contextmenu(track.elements[idx].name); + } + else if (y > 0 && track.elements[idx].type == RAILWAY_NORMAL && track.elements[idx].dir == 1 && + track.elements[x + (y-1)*track.size.x].type == RAILWAY_BLOCK) { + block_contextmenu(track.elements[x + (y-1)*track.size.x].name) + } + else if (y < track.size.y && track.elements[idx].type == RAILWAY_NORMAL && track.elements[idx].dir == 1 && + track.elements[x + (y+1)*track.size.x].type == RAILWAY_BLOCK) { + block_contextmenu(track.elements[x + (y+1)*track.size.x].name) + } + else if (x > 0 && track.elements[idx].type == RAILWAY_NORMAL && track.elements[idx].dir == 2 && + track.elements[(x-1) + y*track.size.x].type == RAILWAY_BLOCK) { + block_contextmenu(track.elements[(x-1) + y*track.size.x].name) + } + else if (x < track.size.x && track.elements[idx].type == RAILWAY_NORMAL && track.elements[idx].dir == 2 && + track.elements[(x+1) + y*track.size.x].type == RAILWAY_BLOCK) { + block_contextmenu(track.elements[(x+1) + y*track.size.x].name) + } + + // + // + else if (track.elements[idx].type == RAILWAY_NORMAL) { +// track_selectsegment(x, y); + } } }; diff --git a/webinterface/side.js b/webinterface/side.js index d2f3dcc..622a5b4 100644 --- a/webinterface/side.js +++ b/webinterface/side.js @@ -31,7 +31,6 @@ function side_Display(type) { // // value 0-off, 1-on, 2-stop, 3-shortciruit function sideBtnOnOffClick (obj) { - side_Display(SIDE_DISPLAY_NONE); if (obj.value == 0) { serverinout_Power(1); } @@ -89,6 +88,14 @@ function sideBtnLocoClick () { }; +// +// close buttons to default +// +function sideBtnCloseClick () { + side_Display(SIDE_DISPLAY_NONE); +}; + + // // send sensor and turnout reset to server. // @@ -107,8 +114,6 @@ function sideBtnModeGet () { if (objiter.className == "side_btn_mode side_btn_selected") selected = objiter.id; }); - // debug ("Selected: '" + selected + "'"); - return selected; }; diff --git a/webinterface/track.js b/webinterface/track.js index 6521aa9..6741e78 100644 --- a/webinterface/track.js +++ b/webinterface/track.js @@ -419,6 +419,8 @@ function trackDraw() { var t = trackGetTurnout({x: trackMouse.pos.x, y: trackMouse.pos.y}); } + else if (!mode == "mode-none") alert("track.js: unknown mode:" + mode); + // // flip screen - double buffering trackFlipScreen(); @@ -492,6 +494,8 @@ function trackMouseup(event) { debug ("trackMouseup down: " + trackMouse.down.x + "," + trackMouse.down.y); debug ("trackMouseup pos: " + trackMouse.pos.x + "," + trackMouse.pos.y); + gContextmenuClose(); + if (mode == "mode-rail") { var pos = {}; var selected = new Array(); @@ -502,7 +506,7 @@ function trackMouseup(event) { selected.length = 0; } - else if (mode == "mode-turn") { + else if (mode == "mode-detail") { rwdetail_show(trackMouse.pos.x, trackMouse.pos.y); } @@ -543,6 +547,7 @@ function trackMouseup(event) { selected.length = 0; } else { + debug ("rw_Click was das?"); rw_Click(trackMouse.pos.x, trackMouse.pos.y); }