mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-24 03:12:07 +00:00
Merge branch 'feat/plugin-feature' into feature/plugin-slicing
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<link rel="stylesheet" href="./styles.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../include/global.css" /> <!-- ORCA One for all-->
|
||||
<link rel="stylesheet" type="text/css" href="../css/common.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/dark.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/theme.css" />
|
||||
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="../js/json2.js"></script>
|
||||
<script type="text/javascript" src="../../data/text.js"></script>
|
||||
|
||||
@@ -1,23 +1,11 @@
|
||||
:root {
|
||||
--cbr-border-color: #d2d2d7;
|
||||
--cbr-header-bg: #f6f7f9;
|
||||
--cbr-panel-bg: #ffffff;
|
||||
--cbr-input-bg: #ffffff;
|
||||
--cbr-input-focus-bg: #f2f8f7;
|
||||
--cbr-label-color: #7b7b84;
|
||||
--cbr-icon-color: #75757f;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--cbr-border-color: #4a4a51;
|
||||
--cbr-header-bg: #2f2f34;
|
||||
--cbr-panel-bg: #2d2d31;
|
||||
--cbr-input-bg: #2d2d31;
|
||||
--cbr-input-focus-bg: #3b3b41;
|
||||
--cbr-label-color: #b9b9bc;
|
||||
--cbr-icon-color: #b9b9bc;
|
||||
}
|
||||
--cbr-border-color: var(--border);
|
||||
--cbr-header-bg: var(--panel);
|
||||
--cbr-panel-bg: var(--bg);
|
||||
--cbr-input-bg: var(--bg);
|
||||
--cbr-input-focus-bg: var(--row-hover);
|
||||
--cbr-label-color: var(--muted);
|
||||
--cbr-icon-color: var(--muted);
|
||||
}
|
||||
|
||||
.cbr-browser-container {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<link rel="stylesheet" href="./styles.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../include/global.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/common.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/dark.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/theme.css" />
|
||||
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="../js/json2.js"></script>
|
||||
<script type="text/javascript" src="../../data/text.js"></script>
|
||||
|
||||
@@ -1,36 +1,3 @@
|
||||
:root {
|
||||
--bg: #ffffff;
|
||||
--panel: #ffffff;
|
||||
--border: #d8d8d8;
|
||||
--border-strong: #e6e6e6;
|
||||
--col-sep: #e1e1e1;
|
||||
--text: #1f2328;
|
||||
--muted: #6f7782;
|
||||
--row-hover: #f7f9fb;
|
||||
--row-selected: #eaf2ff;
|
||||
--row-selected-outline: #b7d0ff;
|
||||
--border-soft: #f0f0f0;
|
||||
--danger: #b42318;
|
||||
--ok: #137333;
|
||||
--warn: #a15c00;
|
||||
--plugin-status-danger: var(--danger);
|
||||
--plugin-status-ok: var(--ok);
|
||||
--plugin-status-warn: var(--warn);
|
||||
--plugin-status-inactive: var(--muted);
|
||||
--plugin-status-danger-bg: rgba(180, 35, 24, 0.12);
|
||||
--plugin-status-ok-bg: rgba(19, 115, 51, 0.12);
|
||||
--plugin-status-warn-bg: rgba(199, 122, 22, 0.12);
|
||||
--plugin-status-inactive-bg: #edf1f5;
|
||||
--plugin-status-inactive-text: #44505c;
|
||||
--plugin-source-mine-bg: rgba(0, 137, 123, 0.12);
|
||||
--plugin-source-mine-text: #00897b;
|
||||
--plugin-source-neutral-bg: #edf1f5;
|
||||
--plugin-source-neutral-text: #44505c;
|
||||
--plugin-source-subscribed-bg: rgba(37, 99, 170, 0.12);
|
||||
--plugin-source-subscribed-text: #2563aa;
|
||||
--plugin-link-text: #00796b;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
width: 100% !important;
|
||||
@@ -929,9 +896,9 @@ body {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #4a4a51;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 2px;
|
||||
background: #2d2d31;
|
||||
background: var(--bg);
|
||||
}
|
||||
|
||||
.plugin-checkbox-input:checked + .plugin-checkbox-mark {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="../../include/global.css" /> <!-- ORCA One for all-->
|
||||
<link rel="stylesheet" type="text/css" href="../css/common.css" />
|
||||
<!-- <link rel="stylesheet" type="text/css" href="23.css" /> -->
|
||||
<link rel="stylesheet" type="text/css" href="../css/dark.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/theme.css" />
|
||||
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="../js/json2.js"></script>
|
||||
<script type="text/javascript" src="../../data/text.js"></script>
|
||||
|
||||
@@ -1,26 +1,3 @@
|
||||
:root {
|
||||
--bg: #ffffff;
|
||||
--panel: #ffffff;
|
||||
--border: #d8d8d8;
|
||||
--border-strong: #e6e6e6;
|
||||
--border-soft: #f0f0f0;
|
||||
--col-sep: #e1e1e1;
|
||||
|
||||
--text: #1f2328;
|
||||
--row-hover: #f7f9fb;
|
||||
--row-selected: #eaf2ff;
|
||||
--row-selected-outline: #b7d0ff;
|
||||
|
||||
--footer-bg: #fafafa;
|
||||
--btn-bg: #ffffff;
|
||||
--btn-border: #cccccc;
|
||||
--btn-hover: #f0f0f0;
|
||||
|
||||
--ctx-bg: #ffffff;
|
||||
--ctx-border: #cccccc;
|
||||
--ctx-hover: #efefef;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<link rel="stylesheet" href="../../include/xterm/xterm.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../include/global.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/common.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/dark.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/theme.css" />
|
||||
<link rel="stylesheet" href="./styles.css" />
|
||||
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
|
||||
<script type="text/javascript" src="../js/json2.js"></script>
|
||||
|
||||
@@ -1,6 +1,40 @@
|
||||
let term = null;
|
||||
let fitAddon = null;
|
||||
|
||||
// ANSI palettes for the xterm theme — the standard VS Code dark/light sets, picked by
|
||||
// data-orca-theme. Constant data, so defined once at module scope.
|
||||
const ANSI_DARK = {
|
||||
black:"#000000", red:"#cd3131", green:"#0dbc79", yellow:"#e5e510", blue:"#2472c8",
|
||||
magenta:"#bc3fbc", cyan:"#11a8cd", white:"#e5e5e5",
|
||||
brightBlack:"#666666", brightRed:"#f14c4c", brightGreen:"#23d18b", brightYellow:"#f5f543",
|
||||
brightBlue:"#3b8eea", brightMagenta:"#d670d6", brightCyan:"#29b8db", brightWhite:"#ffffff"
|
||||
};
|
||||
const ANSI_LIGHT = {
|
||||
black:"#000000", red:"#cd3131", green:"#107c10", yellow:"#949800", blue:"#0451a5",
|
||||
magenta:"#bc05bc", cyan:"#0598bc", white:"#555555",
|
||||
brightBlack:"#8a8a8a", brightRed:"#cd3131", brightGreen:"#14ce14", brightYellow:"#b5ba00",
|
||||
brightBlue:"#0451a5", brightMagenta:"#bc05bc", brightCyan:"#0598bc", brightWhite:"#a5a5a5"
|
||||
};
|
||||
|
||||
// The xterm.js theme is a plain JS object (it cannot read CSS variables), so build it
|
||||
// from the host contract: background/foreground come from the injected --orca-* colors;
|
||||
// the ANSI palette is the fixed light or dark set chosen by data-orca-theme.
|
||||
function XtermTheme() {
|
||||
var cs = getComputedStyle(document.documentElement);
|
||||
var bg = (cs.getPropertyValue('--orca-bg') || '#1e1e1e').trim();
|
||||
var fg = (cs.getPropertyValue('--orca-fg') || '#d4d4d4').trim();
|
||||
var dark = document.documentElement.getAttribute('data-orca-theme') !== 'light';
|
||||
return Object.assign({ background: bg, foreground: fg, cursor: fg }, dark ? ANSI_DARK : ANSI_LIGHT);
|
||||
}
|
||||
|
||||
// Re-apply the xterm theme when the host flips data-orca-theme (live re-theme).
|
||||
function WatchXtermTheme() {
|
||||
var obs = new MutationObserver(function () {
|
||||
if (term) term.options.theme = XtermTheme();
|
||||
});
|
||||
obs.observe(document.documentElement, { attributes: true, attributeFilter: ['data-orca-theme'] });
|
||||
}
|
||||
|
||||
function OnInit() {
|
||||
if (typeof TranslatePage === "function")
|
||||
TranslatePage();
|
||||
@@ -9,30 +43,12 @@ function OnInit() {
|
||||
cursorBlink: true,
|
||||
fontSize: 13,
|
||||
fontFamily: '"Cascadia Code", "Fira Code", "JetBrains Mono", monospace',
|
||||
theme: {
|
||||
background: "#1e1e1e",
|
||||
foreground: "#d4d4d4",
|
||||
cursor: "#ffffff",
|
||||
black: "#000000",
|
||||
red: "#cd3131",
|
||||
green: "#0dbc79",
|
||||
yellow: "#e5e510",
|
||||
blue: "#2472c8",
|
||||
magenta: "#bc3fbc",
|
||||
cyan: "#11a8cd",
|
||||
white: "#e5e5e5",
|
||||
brightBlack: "#666666",
|
||||
brightRed: "#f14c4c",
|
||||
brightGreen: "#23d18b",
|
||||
brightYellow: "#f5f543",
|
||||
brightBlue: "#3b8eea",
|
||||
brightMagenta: "#d670d6",
|
||||
brightCyan: "#29b8db",
|
||||
brightWhite: "#ffffff"
|
||||
},
|
||||
theme: XtermTheme(),
|
||||
allowProposedApi: true
|
||||
});
|
||||
|
||||
WatchXtermTheme();
|
||||
|
||||
fitAddon = new (FitAddon.FitAddon || FitAddon)();
|
||||
term.loadAddon(fitAddon);
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
html, body {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
background: #1e1e1e;
|
||||
color: #d4d4d4;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.app {
|
||||
@@ -41,34 +41,34 @@ html, body {
|
||||
#cmd-input {
|
||||
flex: 1;
|
||||
padding: 6px 10px;
|
||||
border: 1px solid #444;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 4px;
|
||||
background: #2d2d2d;
|
||||
color: #d4d4d4;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: inherit;
|
||||
font-size: 13px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#cmd-input:focus {
|
||||
border-color: #666;
|
||||
border-color: var(--orca-accent);
|
||||
}
|
||||
|
||||
#run-btn {
|
||||
padding: 6px 20px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
background: #0e639c;
|
||||
color: #fff;
|
||||
background: var(--orca-accent);
|
||||
color: var(--orca-accent-fg);
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#run-btn:hover {
|
||||
background: #1177bb;
|
||||
filter: brightness(1.1);
|
||||
}
|
||||
|
||||
#run-btn:disabled {
|
||||
background: #555;
|
||||
opacity: .5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
:root {
|
||||
--bg: #1b1f24;
|
||||
--panel: #242a31;
|
||||
--border: #3a424d;
|
||||
--border-strong: #3a424d;
|
||||
--border-soft: #313843;
|
||||
--col-sep: #3a424d;
|
||||
|
||||
--text: #e6ebf0;
|
||||
--muted: #b9c0c8;
|
||||
--row-hover: #2b3340;
|
||||
--row-selected: #244945;
|
||||
--row-selected-outline: #00bfa5;
|
||||
|
||||
--plugin-status-danger: #ff7b72;
|
||||
--plugin-status-ok: #37c871;
|
||||
--plugin-status-warn: #f0b45a;
|
||||
--plugin-status-inactive: #b9c0c8;
|
||||
--plugin-status-danger-bg: rgba(255, 123, 114, 0.16);
|
||||
--plugin-status-ok-bg: rgba(55, 200, 113, 0.16);
|
||||
--plugin-status-warn-bg: rgba(240, 180, 90, 0.18);
|
||||
--plugin-status-inactive-bg: #36363b;
|
||||
--plugin-status-inactive-text: #c7ccd2;
|
||||
--plugin-source-mine-bg: rgba(0, 150, 136, 0.18);
|
||||
--plugin-source-mine-text: #8de5d6;
|
||||
--plugin-source-neutral-bg: #36363b;
|
||||
--plugin-source-neutral-text: #c7ccd2;
|
||||
--plugin-source-subscribed-bg: rgba(88, 166, 255, 0.18);
|
||||
--plugin-source-subscribed-text: #8fc0f0;
|
||||
--plugin-link-text: #62d8ca;
|
||||
|
||||
--footer-bg: #20262d;
|
||||
--btn-bg: #2a313a;
|
||||
--btn-border: #4b5664;
|
||||
--btn-hover: #333c47;
|
||||
|
||||
--ctx-bg: #2a313a;
|
||||
--ctx-border: #4b5664;
|
||||
--ctx-hover: #3a4451;
|
||||
}
|
||||
|
||||
*
|
||||
{
|
||||
color: #efeff0;
|
||||
border-color: #B9B9BC;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
background-color:#2D2D31; /* ORCA match background color */
|
||||
color: #efeff0;
|
||||
}
|
||||
|
||||
.ZScrol::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
|
||||
background-color: #939594;
|
||||
}
|
||||
|
||||
.ZScrol::-webkit-scrollbar-track {/*滚动条里面轨道*/
|
||||
background: #161817;
|
||||
}
|
||||
|
||||
#Title div
|
||||
{
|
||||
color: #009688;
|
||||
}
|
||||
|
||||
.search>input[type=text]{
|
||||
background-color:#2D2D31;
|
||||
}
|
||||
|
||||
/*---Checkboxes ORCA---*/
|
||||
input[type=checkbox]{
|
||||
background-color:#2D2D31;
|
||||
border-color:#4A4A51;
|
||||
}
|
||||
|
||||
input[type=checkbox]:checked{
|
||||
background-color:#009688;
|
||||
}
|
||||
|
||||
/*-------Text------*/
|
||||
|
||||
.TextS1
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
.TextS2
|
||||
{
|
||||
color:#B9B9BC;
|
||||
}
|
||||
|
||||
/*---Policy---*/
|
||||
.TextArea1
|
||||
{
|
||||
background-color: #4A4A51;
|
||||
color: #BEBEC0;
|
||||
}
|
||||
|
||||
/*----Region---*/
|
||||
.RegionItem:hover
|
||||
{
|
||||
background-color:#4C4C55;
|
||||
}
|
||||
|
||||
.RegionSelected:hover
|
||||
{
|
||||
background-color:#009688;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/*----Menu----*/
|
||||
#Title div.TitleUnselected
|
||||
{
|
||||
color: #BEBEC0;
|
||||
}
|
||||
100
resources/web/dialog/css/theme.css
Normal file
100
resources/web/dialog/css/theme.css
Normal file
@@ -0,0 +1,100 @@
|
||||
/* Shared theme for resources/web/dialog/* pages.
|
||||
*
|
||||
* App-matched roles are pulled from the host theme "contract" (:root{--orca-*}),
|
||||
* injected from live C++ app colors by WebViewHostDialog. Web-only semantics (row
|
||||
* selection, status/source badges, footer/button/context surfaces) have no native
|
||||
* equivalent, so they are curated here for light and selected for dark by the
|
||||
* [data-orca-theme="dark"] attribute the host sets — the single authoritative theme
|
||||
* signal on all platforms (prefers-color-scheme is intentionally not used).
|
||||
*
|
||||
* This file is linked AFTER common.css so its element rules re-theme the shared chrome
|
||||
* via variables (replacing the retired dark.css). It replaces each page's own :root
|
||||
* palette and the dark.css <link>. */
|
||||
|
||||
:root {
|
||||
/* --- app-matched roles (from the injected contract) --- */
|
||||
--bg: var(--orca-bg);
|
||||
--panel: var(--orca-bg);
|
||||
--text: var(--orca-fg);
|
||||
--muted: var(--orca-muted);
|
||||
--border: var(--orca-border);
|
||||
--border-strong: var(--orca-border);
|
||||
--border-soft: var(--orca-border);
|
||||
--col-sep: var(--orca-border);
|
||||
--row-selected-outline: var(--orca-accent);
|
||||
--main-color: var(--orca-accent);
|
||||
--main-color-hover: var(--orca-accent);
|
||||
--plugin-link-text: var(--orca-accent);
|
||||
|
||||
/* --- web-only semantics: LIGHT --- */
|
||||
--row-hover: #f7f9fb;
|
||||
--row-selected: #eaf2ff;
|
||||
--plugin-status-danger: #b42318;
|
||||
--plugin-status-ok: #137333;
|
||||
--plugin-status-warn: #a15c00;
|
||||
--plugin-status-inactive: var(--muted);
|
||||
--plugin-status-danger-bg: rgba(180, 35, 24, 0.12);
|
||||
--plugin-status-ok-bg: rgba(19, 115, 51, 0.12);
|
||||
--plugin-status-warn-bg: rgba(199, 122, 22, 0.12);
|
||||
--plugin-status-inactive-bg: #edf1f5;
|
||||
--plugin-status-inactive-text: #44505c;
|
||||
--plugin-source-mine-bg: rgba(0, 137, 123, 0.12);
|
||||
--plugin-source-mine-text: #00897b;
|
||||
--plugin-source-neutral-bg: #edf1f5;
|
||||
--plugin-source-neutral-text: #44505c;
|
||||
--plugin-source-subscribed-bg: rgba(37, 99, 170, 0.12);
|
||||
--plugin-source-subscribed-text: #2563aa;
|
||||
--footer-bg: #fafafa;
|
||||
--btn-bg: #ffffff;
|
||||
--btn-border: #cccccc;
|
||||
--btn-hover: #f0f0f0;
|
||||
--ctx-bg: #ffffff;
|
||||
--ctx-border: #cccccc;
|
||||
--ctx-hover: #efefef;
|
||||
}
|
||||
|
||||
:root[data-orca-theme="dark"] {
|
||||
/* The app-injected border (var(--orca-border) ≈ #36363B in dark) sits almost on top of
|
||||
the dark panels; lift the border roles a touch so dividers/outlines stay visible. */
|
||||
--border: #4a4a51;
|
||||
--border-strong: #4a4a51;
|
||||
--border-soft: #4a4a51;
|
||||
--col-sep: #4a4a51;
|
||||
--row-hover: #2b3340;
|
||||
--row-selected: #244945;
|
||||
--plugin-status-danger: #ff7b72;
|
||||
--plugin-status-ok: #37c871;
|
||||
--plugin-status-warn: #f0b45a;
|
||||
--plugin-status-inactive: #b9c0c8;
|
||||
--plugin-status-danger-bg: rgba(255, 123, 114, 0.16);
|
||||
--plugin-status-ok-bg: rgba(55, 200, 113, 0.16);
|
||||
--plugin-status-warn-bg: rgba(240, 180, 90, 0.18);
|
||||
--plugin-status-inactive-bg: #36363b;
|
||||
--plugin-status-inactive-text: #c7ccd2;
|
||||
--plugin-source-mine-bg: rgba(0, 150, 136, 0.18);
|
||||
--plugin-source-mine-text: #8de5d6;
|
||||
--plugin-source-neutral-bg: #36363b;
|
||||
--plugin-source-neutral-text: #c7ccd2;
|
||||
--plugin-source-subscribed-bg: rgba(88, 166, 255, 0.18);
|
||||
--plugin-source-subscribed-text: #8fc0f0;
|
||||
--footer-bg: #20262d;
|
||||
--btn-bg: #2a313a;
|
||||
--btn-border: #4b5664;
|
||||
--btn-hover: #333c47;
|
||||
--ctx-bg: #2a313a;
|
||||
--ctx-border: #4b5664;
|
||||
--ctx-hover: #3a4451;
|
||||
}
|
||||
|
||||
/* Re-theme the shared common.css chrome through variables (replaces dark.css's
|
||||
* hardcoded element overrides). Placed after common.css in every page's <head>. */
|
||||
html { background: var(--bg); }
|
||||
body { background: var(--bg); color: var(--text); }
|
||||
#Content { color: var(--text); }
|
||||
#Title div, #Title div.TitleUnselected { color: var(--orca-accent); }
|
||||
.HyperLink { color: var(--orca-accent); }
|
||||
.ZScrol::-webkit-scrollbar-thumb { background-color: var(--border); }
|
||||
.ZScrol::-webkit-scrollbar-track { background: var(--bg); }
|
||||
input[type="checkbox"] { background-color: var(--bg); border-color: var(--border); }
|
||||
input[type="checkbox"]:checked { background-color: var(--orca-accent); border-color: var(--orca-accent); }
|
||||
input[type="checkbox"]::before { box-shadow: inset 1em 1em var(--orca-accent-fg); }
|
||||
@@ -336,4 +336,4 @@ function ExecuteDarkMode( DarkCssPath )
|
||||
}
|
||||
}
|
||||
|
||||
SwitchDarkMode( "../css/dark.css" );
|
||||
// Dialog pages are themed by the injected --orca-* contract + theme.css; the legacy dark.css poll is fully retired.
|
||||
Reference in New Issue
Block a user