checkpoint device settings work
This commit is contained in:
parent
28a1cd5051
commit
10bd1c94d2
4 changed files with 186 additions and 152 deletions
145
src/kiri/init.js
145
src/kiri/init.js
|
|
@ -628,9 +628,9 @@
|
|||
e.parentNode.style.display = dev.spindleMax >= 0 ? 'none' : 'block';
|
||||
});
|
||||
|
||||
// UI.deviceSave.disabled = !local;
|
||||
// UI.deviceDelete.disabled = !local;
|
||||
// UI.deviceAdd.disabled = dev.noclone;
|
||||
UI.deviceSave.disabled = !local;
|
||||
UI.deviceDelete.disabled = !local;
|
||||
UI.deviceAdd.disabled = dev.noclone;
|
||||
|
||||
API.view.update_fields();
|
||||
platform.update_size();
|
||||
|
|
@ -685,32 +685,31 @@
|
|||
|
||||
devices = devices.sort();
|
||||
|
||||
// UI.deviceClose.onclick = API.dialog.hide;
|
||||
// UI.deviceSave.onclick = function() {
|
||||
// API.function.clear();
|
||||
// API.conf.save();
|
||||
// showDevices();
|
||||
// };
|
||||
// UI.deviceAdd.onclick = function() {
|
||||
// API.function.clear();
|
||||
// cloneDevice();
|
||||
// showDevices();
|
||||
// };
|
||||
// UI.deviceDelete.onclick = function() {
|
||||
// API.function.clear();
|
||||
// removeLocalDevice(getSelectedDevice());
|
||||
// showDevices();
|
||||
// };
|
||||
//
|
||||
// UI.deviceAll.onclick = function() {
|
||||
// API.show.favorites(false);
|
||||
// showDevices();
|
||||
// };
|
||||
// UI.deviceFavorites.onclick = function() {
|
||||
// API.show.favorites(true);
|
||||
// showDevices();
|
||||
// };
|
||||
//
|
||||
UI.deviceSave.onclick = function() {
|
||||
API.function.clear();
|
||||
API.conf.save();
|
||||
showDevices();
|
||||
};
|
||||
UI.deviceAdd.onclick = function() {
|
||||
API.function.clear();
|
||||
cloneDevice();
|
||||
showDevices();
|
||||
};
|
||||
UI.deviceDelete.onclick = function() {
|
||||
API.function.clear();
|
||||
removeLocalDevice(getSelectedDevice());
|
||||
showDevices();
|
||||
};
|
||||
|
||||
UI.deviceAll.onclick = function() {
|
||||
API.show.favorites(false);
|
||||
showDevices();
|
||||
};
|
||||
UI.deviceFavorites.onclick = function() {
|
||||
API.show.favorites(true);
|
||||
showDevices();
|
||||
};
|
||||
|
||||
UI.deviceList.innerHTML = '';
|
||||
let incr = 0;
|
||||
let faves = API.show.favorites();
|
||||
|
|
@ -1053,10 +1052,10 @@
|
|||
// ensure we have settings from last session
|
||||
API.conf.restore();
|
||||
|
||||
let assets = $('assets'),
|
||||
control = $('control'),
|
||||
let xcontrol = $('control'),
|
||||
container = $('container'),
|
||||
welcome = $('welcome'),
|
||||
gcode = $('dev-gcode'),
|
||||
controller = settings().controller,
|
||||
dark = controller.dark;
|
||||
|
||||
|
|
@ -1082,13 +1081,7 @@
|
|||
text: $('alert-text')
|
||||
},
|
||||
container: container,
|
||||
// assets: assets,
|
||||
// control: control,
|
||||
// ctrlLeft: $('control-left'),
|
||||
// ctrlRight: $('control-right'),
|
||||
// layerView: $('layer-view'),
|
||||
// layerSlider: $('layer-slider'),
|
||||
// modelOpacity: $('opacity'),
|
||||
|
||||
menusep: $('lt-sep'),
|
||||
rotate: $('lt-rotate'),
|
||||
scale: $('lt-scale'),
|
||||
|
|
@ -1111,9 +1104,9 @@
|
|||
deviceAdd: $('device-add'),
|
||||
deviceDelete: $('device-del'),
|
||||
deviceSave: $('device-save'),
|
||||
deviceClose: $('device-close'),
|
||||
deviceFavorites: $('device-favorites'),
|
||||
deviceAll: $('device-all'),
|
||||
|
||||
toolsSave: $('tools-save'),
|
||||
toolsClose: $('tools-close'),
|
||||
toolSelect: $('tool-select'),
|
||||
|
|
@ -1129,15 +1122,19 @@
|
|||
// toolTaperAngle: $('tool-tangle'),
|
||||
toolTaperTip: $('tool-ttip'),
|
||||
toolMetric: $('tool-metric'),
|
||||
|
||||
settings: $('settings'),
|
||||
settingsBody: $('settingsBody'),
|
||||
settingsList: $('settingsList'),
|
||||
|
||||
layerID: $('layer-id'),
|
||||
layerSpan: $('layer-span'),
|
||||
layerRange: $('layer-range'),
|
||||
|
||||
loading: $('progress').style,
|
||||
progress: $('progbar').style,
|
||||
prostatus: $('progtxt'),
|
||||
|
||||
selection: $('selection'),
|
||||
sizeX: $('size_x'),
|
||||
sizeY: $('size_y'),
|
||||
|
|
@ -1153,7 +1150,7 @@
|
|||
stockDepth: $('stock-width'),
|
||||
stockHeight: $('stock-width'),
|
||||
|
||||
device: UC.newGroup(LANG.dv_gr_dev, $('device'), {group:"ddev", nocompact:true}),
|
||||
device: UC.newGroup(LANG.dv_gr_dev, $('device'), {group:"ddev", inline:true}),
|
||||
deviceName: UC.newInput(LANG.dv_name_s, {title:LANG.dv_name_l, size:"60%", text:true, action:updateDeviceName}),
|
||||
bedWidth: UC.newInput(LANG.dv_bedw_s, {title:LANG.dv_bedw_l, convert:UC.toFloat, size:6}),
|
||||
bedDepth: UC.newInput(LANG.dv_bedd_s, {title:LANG.dv_bedd_l, convert:UC.toFloat, size:6}),
|
||||
|
|
@ -1163,12 +1160,12 @@
|
|||
deviceOriginTop: UC.newBoolean(LANG.dv_orgt_s, onBooleanClick, {title:LANG.dv_orgt_l, modes:CAM}),
|
||||
deviceRound: UC.newBoolean(LANG.dv_bedc_s, onBooleanClick, {title:LANG.dv_bedc_l, modes:FDM}),
|
||||
|
||||
extruder: UC.newGroup(LANG.dv_gr_ext, $('device'), {group:"dext", nocompact:true, modes:FDM}),
|
||||
extruder: UC.newGroup(LANG.dv_gr_ext, $('device'), {group:"dext", inline:true, modes:FDM}),
|
||||
extFilament: UC.newInput(LANG.dv_fila_s, {title:LANG.dv_fila_l, convert:UC.toFloat, modes:FDM}),
|
||||
extNozzle: UC.newInput(LANG.dv_nozl_s, {title:LANG.dv_nozl_l, convert:UC.toFloat, modes:FDM}),
|
||||
extOffsetX: UC.newInput(LANG.dv_exox_s, {title:LANG.dv_exox_l, convert:UC.toFloat, modes:FDM, expert:true}),
|
||||
extOffsetY: UC.newInput(LANG.dv_exoy_s, {title:LANG.dv_exoy_l, convert:UC.toFloat, modes:FDM, expert:true}),
|
||||
extSelect: UC.newText(LANG.dv_exts_s, {title:LANG.dv_exts_l, modes:FDM, size:14, height:3, modes:FDM, expert:true}),
|
||||
extSelect: UC.newText(LANG.dv_exts_s, {title:LANG.dv_exts_l, modes:FDM, size:14, height:3, modes:FDM, expert:true, area:gcode}),
|
||||
extrudeAbs: UC.newBoolean(LANG.dv_xtab_s, onBooleanClick, {title:LANG.dv_xtab_l, modes:FDM}),
|
||||
extActions: UC.newTableRow([[
|
||||
UI.extPrev = UC.newButton("<"),
|
||||
|
|
@ -1177,62 +1174,23 @@
|
|||
UI.extNext = UC.newButton(">")
|
||||
]], {modes:FDM, expert:true}),
|
||||
|
||||
gcode: UC.newGroup(LANG.dv_gr_gco, $('device'), {group:"dgco", nocompact:true, modes:GCODE}),
|
||||
gcode: UC.newGroup(LANG.dv_gr_gco, $('device'), {group:"dgco", inline:true, modes:GCODE}),
|
||||
gcodeFan: UC.newInput(LANG.dv_fanp_s, {title:LANG.dv_fanp_l, modes:FDM, size:"40%", text:true}),
|
||||
gcodeTrack: UC.newInput(LANG.dv_prog_s, {title:LANG.dv_prog_l, modes:FDM, size:"40%", text:true}),
|
||||
gcodeLayer: UC.newText(LANG.dv_layr_s, {title:LANG.dv_layr_l, modes:FDM, size:14, height: 2}),
|
||||
gcodeLayer: UC.newText(LANG.dv_layr_s, {title:LANG.dv_layr_l, modes:FDM, size:14, height: 2, area:gcode}),
|
||||
gcodeSpace: UC.newBoolean(LANG.dv_tksp_s, onBooleanClick, {title:LANG.dv_tksp_l, modes:CAM_LASER}),
|
||||
gcodeStrip: UC.newBoolean(LANG.dv_strc_s, onBooleanClick, {title:LANG.dv_strc_l, modes:CAM}),
|
||||
gcodeFExt: UC.newInput(LANG.dv_fext_s, {title:LANG.dv_fext_l, modes:CAM_LASER, size:7, text:true}),
|
||||
gcodeDwell: UC.newText(LANG.dv_dwll_s, {title:LANG.dv_dwll_l, modes:CAM, size:14, height:2}),
|
||||
gcodeChange: UC.newText(LANG.dv_tool_s, {title:LANG.dv_tool_l, modes:CAM, size:14, height:2}),
|
||||
gcodeSpindle: UC.newText(LANG.dv_sspd_s, {title:LANG.dv_sspd_l, modes:CAM, size:14, height:2}),
|
||||
gcodePause: UC.newText(LANG.dv_paus_s, {title:LANG.dv_paus_l, modes:FDM, size:14, height:3}),
|
||||
gcodeLaserOn: UC.newText(LANG.dv_lzon_s, {title:LANG.dv_lzon_l, modes:LASER, size:14, height:3}),
|
||||
gcodeLaserOff: UC.newText(LANG.dv_lzof_s, {title:LANG.dv_lzof_l, modes:LASER, size:14, height:3}),
|
||||
gcodePre: UC.newText(LANG.dv_head_s, {title:LANG.dv_head_l, modes:GCODE, size:14, height:3}),
|
||||
gcodePost: UC.newText(LANG.dv_foot_s, {title:LANG.dv_foot_l, modes:GCODE, size:14, height:3}),
|
||||
gcodeDwell: UC.newText(LANG.dv_dwll_s, {title:LANG.dv_dwll_l, modes:CAM, size:14, height:2, area:gcode}),
|
||||
gcodeChange: UC.newText(LANG.dv_tool_s, {title:LANG.dv_tool_l, modes:CAM, size:14, height:2, area:gcode}),
|
||||
gcodeSpindle: UC.newText(LANG.dv_sspd_s, {title:LANG.dv_sspd_l, modes:CAM, size:14, height:2, area:gcode}),
|
||||
gcodePause: UC.newText(LANG.dv_paus_s, {title:LANG.dv_paus_l, modes:FDM, size:14, height:3, area:gcode}),
|
||||
gcodeLaserOn: UC.newText(LANG.dv_lzon_s, {title:LANG.dv_lzon_l, modes:LASER, size:14, height:3, area:gcode}),
|
||||
gcodeLaserOff: UC.newText(LANG.dv_lzof_s, {title:LANG.dv_lzof_l, modes:LASER, size:14, height:3, area:gcode}),
|
||||
gcodePre: UC.newText(LANG.dv_head_s, {title:LANG.dv_head_l, modes:GCODE, size:14, height:3, area:gcode}),
|
||||
gcodePost: UC.newText(LANG.dv_foot_s, {title:LANG.dv_foot_l, modes:GCODE, size:14, height:3, area:gcode}),
|
||||
|
||||
// mode: UC.newGroup(LANG.mo_menu, assets, {region:"left", poprow:false}),
|
||||
// modeTable: UC.newTableRow([
|
||||
// [ UI.modeFDM = UC.newButton(LANG.mo_fdmp, function() { API.mode.set('FDM',null,platform.update_size) }, {icon: icons.fdm}) ],
|
||||
// [ UI.modeSLA = UC.newButton(LANG.mo_slap, function() { API.mode.set('SLA',null,platform.update_size) }, {icon: icons.sla}) ],
|
||||
// [ UI.modeLASER = UC.newButton(LANG.mo_lazr, function() { API.mode.set('LASER',null,platform.update_size) }, {icon: icons.laser}) ],
|
||||
// [ UI.modeCAM = UC.newButton(LANG.mo_cncm, function() { API.mode.set('CAM',null,platform.update_size) }, {icon: icons.cnc, id:"modeCAM"}) ]
|
||||
// ]),
|
||||
// system: UC.newGroup(LANG.su_menu),
|
||||
// sysTable: UC.newTableRow([
|
||||
// [ UI.setupDevices = UC.newButton(LANG.su_devi, showDevices) ],
|
||||
// [ UI.setupTools = UC.newButton(LANG.su_tool, showTools, {modes:CAM}) ],
|
||||
// [ UI.setupExport = UC.newButton(LANG.su_xprt, settingsExport, {modes:ALL, expert:true}) ],
|
||||
// [ UI.localButton = UC.newButton(LANG.su_locl, API.show.local, {modes:FDM_CAM, expert:true}) ]
|
||||
// ]),
|
||||
// wsFile: UC.newGroup(LANG.fe_menu),
|
||||
// wsFileTable: UC.newTableRow([
|
||||
// [ UI.import = UC.newButton(LANG.fn_recn, undefined, {class:"asym"}) ],
|
||||
// [ UI.load = UC.newButton(LANG.fn_impo, function() { API.event.import() }, {class:"asym"}) ]
|
||||
// ]),
|
||||
// wsFunc: UC.newGroup(LANG.fn_menu),
|
||||
// wsFuncTable: UC.newTableRow([
|
||||
// [ UI.modeArrange = UC.newButton(LANG.fn_arra, platform.layout) ],
|
||||
// [ UI.modeSlice = UC.newButton(LANG.fn_slic, API.function.slice) ],
|
||||
// [ UI.modePreview = UC.newButton(LANG.fn_prev, API.function.print) ],
|
||||
// [ UI.modeExport = UC.newButton(LANG.fn_expo, API.function.export) ]
|
||||
// ]),
|
||||
//
|
||||
// workspace: UC.newGroup(LANG.ws_menu, undefined, {modes:ALL, expert:true}),
|
||||
// wsTable: UC.newTableRow([
|
||||
// [
|
||||
// UC.newButton(LANG.vu_sptp, SPACE.view.top),
|
||||
// UC.newButton(LANG.vu_home, SPACE.view.home),
|
||||
// ],[
|
||||
// UI.saveButton =
|
||||
// UC.newButton(LANG.ws_save, API.space.save),
|
||||
// UC.newButton(LANG.ws_cler, API.space.clear)
|
||||
// ]
|
||||
// ], {modes:ALL, expert:true}),
|
||||
|
||||
layout: UC.newGroup(LANG.op_menu, $('mod-prefs'), {nocompact: true}),
|
||||
layout: UC.newGroup(LANG.op_menu, $('mod-prefs'), {inline: true}),
|
||||
expert: UC.newBoolean(LANG.op_xprt_s, booleanSave, {title:LANG.op_xprt_l}),
|
||||
dark: UC.newBoolean(LANG.op_dark_s, booleanSave, {title:LANG.op_dark_l}),
|
||||
showOrigin: UC.newBoolean(LANG.op_show_s, booleanSave, {title:LANG.op_show_l, modes:GCODE}),
|
||||
|
|
@ -1242,9 +1200,6 @@
|
|||
reverseZoom: UC.newBoolean(LANG.op_invr_s, booleanSave, {title:LANG.op_invr_l, modes:ALL}),
|
||||
units: UC.newSelect(LANG.op_unit_s, {title: LANG.op_unit_l, modes:CAM}, "units"),
|
||||
|
||||
// allow modules to insert new items at the bottom of the left menu
|
||||
// appendLeft: UC.checkpoint(),
|
||||
|
||||
process: UC.newGroup(LANG.sl_menu, $('settings'), {modes:FDM_LASER}),
|
||||
sliceHeight: UC.newInput(LANG.sl_lahi_s, {title:LANG.sl_lahi_l, convert:UC.toFloat, modes:FDM}),
|
||||
sliceShells: UC.newInput(LANG.sl_shel_s, {title:LANG.sl_shel_l, convert:UC.toInt, modes:FDM}),
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
groups = {},
|
||||
groupShow = {},
|
||||
groupName = undefined,
|
||||
hideable = {},
|
||||
poppable = {},
|
||||
hasModes = [],
|
||||
isExpert = [],
|
||||
letMode = null,
|
||||
letExpert = false,
|
||||
SDB = moto.KV,
|
||||
DOC = SELF.document,
|
||||
state = {},
|
||||
prefix = "tab",
|
||||
NOMODE = "nomode",
|
||||
exitimer = undefined;
|
||||
|
|
@ -102,31 +102,32 @@
|
|||
function addCollapsableGroup(label, div, options) {
|
||||
let opt = options || {};
|
||||
let group = opt.group || label;
|
||||
hideable[group] = opt.nocompact === true ? false : true;
|
||||
poppable[group] = opt.inline === true ? false : true;
|
||||
|
||||
let row = DOC.createElement('div'),
|
||||
a = DOC.createElement('a'),
|
||||
dbkey = `beta-${prefix}-show-${group}`,
|
||||
popper = !opt.nocompact;
|
||||
popper = !opt.inline;
|
||||
|
||||
if (popper) {
|
||||
let pop = DOC.createElement('div');
|
||||
pop.classList.add('set-pop');
|
||||
row.appendChild(pop);
|
||||
row.setAttribute("class", "set-group noselect");
|
||||
addTo = pop;
|
||||
} else {
|
||||
row.setAttribute("class", "t-group col");
|
||||
addTo = lastDiv;
|
||||
}
|
||||
|
||||
div.appendChild(row);
|
||||
row.setAttribute("class", "set-group noselect");
|
||||
row.appendChild(a);
|
||||
a.appendChild(DOC.createTextNode(label));
|
||||
addModeControls(row, opt);
|
||||
lastGroup = groups[group] = [];
|
||||
lastGroup.key = dbkey;
|
||||
groupName = group;
|
||||
groupShow[group] = popper ? SDB[dbkey] === 'true' : SDB[dbkey] !== 'false';
|
||||
groupShow[group] = popper ? state[dbkey] === 'true' : state[dbkey] !== 'false';
|
||||
row.onclick = function(ev) {
|
||||
if (ev.target !== a && ev.target !== row) {
|
||||
return;
|
||||
|
|
@ -163,19 +164,19 @@
|
|||
function showGroup(groupname) {
|
||||
Object.keys(groups).forEach(name => {
|
||||
let group = groups[name];
|
||||
groupShow[name] = SDB[group.key] = (groupname === name);
|
||||
groupShow[name] = state[group.key] = (groupname === name);
|
||||
updateGroupShow(name);
|
||||
});
|
||||
}
|
||||
|
||||
function toggleGroup(groupname, dbkey) {
|
||||
let show = SDB[dbkey] === 'false';
|
||||
groupShow[groupname] = hideable[groupname] ? SDB[dbkey] = show : true;
|
||||
let show = state[dbkey] === 'false';
|
||||
groupShow[groupname] = poppable[groupname] ? state[dbkey] = show : true;
|
||||
updateGroupShow(groupname);
|
||||
}
|
||||
|
||||
function updateGroupShow(groupname) {
|
||||
let show = groupShow[groupname] || !hideable[groupname];
|
||||
let show = groupShow[groupname] || !poppable[groupname];
|
||||
let group = groups[groupname];
|
||||
group.forEach(div => {
|
||||
if (show) div.setMode(letMode);
|
||||
|
|
@ -290,27 +291,25 @@
|
|||
btn = DOC.createElement("button"),
|
||||
box = DOC.createElement("div"),
|
||||
pop = DOC.createElement("div"),
|
||||
lbl = DOC.createElement("label"),
|
||||
txt = DOC.createElement("textarea");
|
||||
txt = DOC.createElement("textarea"),
|
||||
area = opt.area;
|
||||
|
||||
pop.setAttribute("class", "poptext flow-col");
|
||||
box.setAttribute("style", "position: relative");
|
||||
box.appendChild(pop);
|
||||
pop.appendChild(lbl);
|
||||
pop.appendChild(txt);
|
||||
lbl.appendChild(DOC.createTextNode(label));
|
||||
|
||||
txt.setAttribute("cols", 40);
|
||||
txt.setAttribute("rows", 20);
|
||||
txt.setAttribute("wrap", "off");
|
||||
txt.setAttribute("spellcheck", "false");
|
||||
txt.setAttribute("style", "resize: none");
|
||||
|
||||
box.appendChild(pop);
|
||||
btn.appendChild(DOC.createTextNode("edit"));
|
||||
|
||||
btn.onclick = function(ev) {
|
||||
ev.stopPropagation();
|
||||
if (ev.target === txt) {
|
||||
// drop clicks on TextArea
|
||||
ev.target.focus();
|
||||
} else {
|
||||
let fc = area.firstChild;
|
||||
if (fc) area.removeChild(fc);
|
||||
area.appendChild(txt);
|
||||
// first time, button click / show
|
||||
btn.parentNode.appendChild(box);
|
||||
btn.parentNode.onclick = btn.onclick;
|
||||
|
|
@ -337,6 +336,7 @@
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
addModeControls(btn, opt);
|
||||
addId(btn, opt);
|
||||
|
||||
|
|
@ -373,6 +373,7 @@
|
|||
}
|
||||
}
|
||||
ip.setAttribute("type", "text");
|
||||
ip.setAttribute("spellcheck", "false");
|
||||
row.style.display = hide ? 'none' : '';
|
||||
if (opt) {
|
||||
if (opt.disabled) ip.setAttribute("disabled", "true");
|
||||
|
|
@ -548,7 +549,7 @@
|
|||
|
||||
function newRowTable(array) {
|
||||
let div = newDiv();
|
||||
div.setAttribute("class", "tablerow");
|
||||
div.setAttribute("class", "table-row");
|
||||
array.forEach(function(c) {
|
||||
div.appendChild(c);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,9 +2,8 @@
|
|||
--fg-gray: #495057;
|
||||
--bg-gray: rgba(0,0,0,0.25);
|
||||
}
|
||||
setpopsetpopa, a:hover, a:visited {
|
||||
a:hover, a:visited {
|
||||
border: none;
|
||||
outline: none;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
@ -30,7 +29,6 @@ div {
|
|||
}
|
||||
button {
|
||||
display: flex;
|
||||
outline: none;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px;
|
||||
background-color: #eee;
|
||||
|
|
@ -57,7 +55,6 @@ input {
|
|||
}
|
||||
input:focus {
|
||||
background-color: #fec;
|
||||
outline: none;
|
||||
}
|
||||
input[disabled] {
|
||||
background-color: #ccc;
|
||||
|
|
@ -71,15 +68,20 @@ input[type="range"] {
|
|||
input[type=range]::-moz-focus-outer {
|
||||
border: 0;
|
||||
}
|
||||
select {
|
||||
select, textarea, button, input, a {
|
||||
outline: none;
|
||||
}
|
||||
select {
|
||||
border: 1px solid #bbb;
|
||||
background-color: #eee;
|
||||
margin-bottom: 1px !important;
|
||||
background-color: white;
|
||||
border-radius: 3px;
|
||||
}
|
||||
select option[local="1"] {
|
||||
color: #55d;
|
||||
}
|
||||
select option[favorite="1"] {
|
||||
font-weight: bold;
|
||||
}
|
||||
th, tr, td, span, div, label, button {
|
||||
user-select: none;
|
||||
}
|
||||
|
|
@ -412,6 +414,54 @@ th, tr, td {
|
|||
background-color: #bbb;
|
||||
}
|
||||
|
||||
.t-head {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.t-33 {
|
||||
width: 33%;
|
||||
}
|
||||
.t-group {
|
||||
background-image: linear-gradient(to right, #ddd, #666, #ddd);
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
padding: 1px 0 2px 0;
|
||||
margin: 5px 0 5px 0;
|
||||
color: white;
|
||||
}
|
||||
.t-body {
|
||||
background-color: white;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.t-inset {
|
||||
padding: 3px;
|
||||
}
|
||||
.t-pad {
|
||||
width: 5px;
|
||||
}
|
||||
.t-pad2 {
|
||||
width: 10px;
|
||||
}
|
||||
#devices {
|
||||
width: 150px;
|
||||
}
|
||||
#device {
|
||||
width: 225px;
|
||||
}
|
||||
#gcode-edit {
|
||||
width: 225px;
|
||||
}
|
||||
#device-action, #tool-action {
|
||||
margin-top: 5px;
|
||||
}
|
||||
#device-action button, #tool-action button {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#slider {
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
|
@ -531,7 +581,14 @@ th, tr, td {
|
|||
margin-right: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
.var-row {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.var-row label {
|
||||
padding: 2px 4px 2px 0;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.table-row {
|
||||
flex-direction: row;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,49 +159,70 @@
|
|||
<button id="mode-laser" class="dev-type"><label>LASER</label></button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div id="devices" class="col"><select id="device-list" size="15"></select></div>
|
||||
<div id="device" class="col"></div>
|
||||
<div id="devices" class="t-33 col"><select id="device-list" size="15" class="grow"></select></div>
|
||||
<div class="t-pad"></div>
|
||||
<div id="device" class="col t-body t-inset"></div>
|
||||
<div class="t-pad"></div>
|
||||
<div id="gcode-edit" class="t-body t-inset col">
|
||||
<div class="t-group col">gcode editor</div>
|
||||
<div id="dev-gcode" class="grow"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="device-action" class="flow-row">
|
||||
<div class="grow"></div>
|
||||
<button id="device-add"><i class="fas fa-plus"></i></button>
|
||||
<button id="device-del"><i class="fas fa-minus"></i></button>
|
||||
<div class="t-pad2"></div>
|
||||
<button id="device-favorites">favorites</button>
|
||||
<button id="device-all">all</button>
|
||||
<div class="t-pad2"></div>
|
||||
<button id="device-save">save</button>
|
||||
<div class="grow"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="mod-files" class="mdialog"></div>
|
||||
<div id="mod-tools" class="mdialog">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<label>tool</label>
|
||||
<label>detail</label>
|
||||
<label>view</label>
|
||||
<div class="row t-head">
|
||||
<label class="t-33">tool</label>
|
||||
<div class="t-pad"></div>
|
||||
<label class="t-33">detail</label>
|
||||
<div class="t-pad"></div>
|
||||
<label class="t-33">view</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<select id="tool-select" size="15"></select>
|
||||
<div class="col t-33">
|
||||
<select id="tool-select" size="10" class="grow"></select>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="row"><label>type</label>
|
||||
<div class="t-pad"></div>
|
||||
<div class="col t-33 t-body t-inset">
|
||||
<div class="row var-row"><label>name</label><input id="tool-name" size="15"></input></div>
|
||||
<div class="row var-row"><label>type</label>
|
||||
<select id="tool-type">
|
||||
<option value="endmill" selected>end</option>
|
||||
<option value="ballmill">ball</option>
|
||||
<option value="tapermill">taper</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="row"><label>name</label><input id="tool-name" size="15"></input></div>
|
||||
<div class="row" title="tool number to use
in gcode commands"><label>tool #</label><input id="tool-num" size="7"></input></div>
|
||||
<div class="row"><label>metric</label><input id="tool-metric" type="checkbox"></input></div>
|
||||
<div class="grouphead">shaft</div>
|
||||
<div class="row" title="shaft diameter in inches
unless metric is checked
then in millimeters"><label>diameter</label><input id="tool-sdiam" size="7"></input></div>
|
||||
<div class="row" title="shaft length in inches
unless metric is checked
then in millimeters"><label>length</label><input id="tool-slen" size="7"></input></div>
|
||||
<div class="grouphead">flute</div>
|
||||
<div class="row" title="flute diameter in inches
unless metric is checked
then in millimeters"><label>diameter</label><input id="tool-fdiam" size="7"></input></div>
|
||||
<div class="row" title="flute length in inches
unless metric is checked
then in millimeters"><label>length</label><input id="tool-flen" size="7"></input></div>
|
||||
<div class="grouphead">taper</div>
|
||||
<div class="row var-row" title="tool number to use
in gcode commands"><label>tool #</label><input id="tool-num" size="7"></input></div>
|
||||
<div class="row var-row"><label>metric</label><input id="tool-metric" type="checkbox"></input></div>
|
||||
<div class="t-group col">shaft</div>
|
||||
<div class="row var-row" title="shaft diameter in inches
unless metric is checked
then in millimeters"><label>diameter</label><input id="tool-sdiam" size="7"></input></div>
|
||||
<div class="row var-row" title="shaft length in inches
unless metric is checked
then in millimeters"><label>length</label><input id="tool-slen" size="7"></input></div>
|
||||
<div class="t-group col">flute</div>
|
||||
<div class="row var-row" title="flute diameter in inches
unless metric is checked
then in millimeters"><label>diameter</label><input id="tool-fdiam" size="7"></input></div>
|
||||
<div class="row var-row" title="flute length in inches
unless metric is checked
then in millimeters"><label>length</label><input id="tool-flen" size="7"></input></div>
|
||||
<div class="t-group col">taper</div>
|
||||
<!-- <div class="flow-row" title="taper angle"><label>angle</label><input id="tool-tangle" size=5></input></div> -->
|
||||
<div class="row" title="tip width in inches
unless metric is checked
then in millimeters"><label>tip</label><input id="tool-ttip" size="7"></input></div>
|
||||
<div class="row var-row" title="tip width in inches
unless metric is checked
then in millimeters"><label>tip</label><input id="tool-ttip" size="7"></input></div>
|
||||
</div>
|
||||
<div id="tool-view" class="col"></div>
|
||||
<div class="t-pad"></div>
|
||||
<div id="tool-view" class="col t-33 t-body"></div>
|
||||
</div>
|
||||
<div id="tool-action" class="row">
|
||||
<button id="tool-add">+</button>
|
||||
<button id="tool-del">-</button>
|
||||
<span id="tool-spacer"></span>
|
||||
<div id="tool-action" class="row j-center">
|
||||
<button id="tool-add"><i class="fas fa-plus"></i></button>
|
||||
<button id="tool-del"><i class="fas fa-minus"></i></button>
|
||||
<div class="t-pad2"></div>
|
||||
<button id="tools-save">save</button>
|
||||
<button id="tools-close">done</button>
|
||||
</div>
|
||||
|
|
@ -237,7 +258,7 @@
|
|||
<div id="end" class="col a-center">
|
||||
<div id="progress"><div id="progbar"><div id="progtxt">loading</div></div></div>
|
||||
<div id="bottom">
|
||||
<div id="layers">layers</div>
|
||||
<div id="layers"></div>
|
||||
</div>
|
||||
<div id="alert-area">
|
||||
<div id="alert-border">
|
||||
|
|
|
|||
Loading…
Reference in a new issue