new featuregit status dark mode
This commit is contained in:
parent
9646d716c6
commit
6efc27453e
14 changed files with 189 additions and 149 deletions
|
|
@ -18,12 +18,19 @@ export function PseudoStateIcon(props: {}) {
|
|||
${w - 1} ${h / 2},
|
||||
${w / 2} ${h - 1},
|
||||
${1} ${h / 2},
|
||||
`} fill="white" stroke="black" strokeWidth={1.2} />
|
||||
`}
|
||||
style={{
|
||||
fill: 'var(--and-state-bg-color',
|
||||
stroke: 'var(--rountangle-stroke-color',
|
||||
}} strokeWidth={1.2} />
|
||||
</svg>;
|
||||
}
|
||||
|
||||
export function HistoryIcon(props: { kind: "shallow" | "deep"; }) {
|
||||
const w = 20, h = 20;
|
||||
const text = props.kind === "shallow" ? "H" : "H*";
|
||||
return <svg width={w} height={h}><circle cx={w / 2} cy={h / 2} r={Math.min(w, h) / 2 - 1} fill="white" stroke="black" /><text x={w / 2} y={h / 2 + 4} textAnchor="middle" fontSize={11} fontWeight={400}>{text}</text></svg>;
|
||||
return <svg width={w} height={h}><circle cx={w / 2} cy={h / 2} r={Math.min(w, h) / 2 - 1} style={{
|
||||
fill: 'var(--and-state-bg-color',
|
||||
stroke: 'var(--rountangle-stroke-color',
|
||||
}}/><text x={w / 2} y={h / 2 + 4} style={{fill: 'var(--rountangle-stroke-color'}} textAnchor="middle" fontSize={11} fontWeight={400}>{text}</text></svg>;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,16 @@ import { TimerElapseEvent, Timers } from "../../statecharts/runtime_types";
|
|||
import { getSimTime, setPaused, setRealtime, TimeMode } from "../../statecharts/time";
|
||||
import { InsertMode } from "./InsertModes";
|
||||
import { About } from "../Modals/About";
|
||||
import { EditHistory } from "../App";
|
||||
import { EditHistory, LightMode } from "../App";
|
||||
import { KeyInfoHidden, KeyInfoVisible } from "./KeyInfo";
|
||||
import { UndoRedoButtons } from "./UndoRedoButtons";
|
||||
import { ZoomButtons } from "./ZoomButtons";
|
||||
import { formatTime } from "../../util/util";
|
||||
|
||||
import DarkModeIcon from '@mui/icons-material/DarkMode';
|
||||
import LightModeIcon from '@mui/icons-material/LightMode';
|
||||
import BrightnessAutoIcon from '@mui/icons-material/BrightnessAuto';
|
||||
|
||||
import AccessAlarmIcon from '@mui/icons-material/AccessAlarm';
|
||||
import CachedIcon from '@mui/icons-material/Cached';
|
||||
import InfoOutlineIcon from '@mui/icons-material/InfoOutline';
|
||||
|
|
@ -33,6 +37,8 @@ export type TopPanelProps = {
|
|||
onInit: () => void,
|
||||
onClear: () => void,
|
||||
onBack: () => void,
|
||||
lightMode: LightMode,
|
||||
setLightMode: Dispatch<SetStateAction<LightMode>>,
|
||||
insertMode: InsertMode,
|
||||
setInsertMode: Dispatch<SetStateAction<InsertMode>>,
|
||||
setModal: Dispatch<SetStateAction<ReactElement|null>>,
|
||||
|
|
@ -45,7 +51,7 @@ export type TopPanelProps = {
|
|||
|
||||
const ShortCutShowKeys = <kbd>~</kbd>;
|
||||
|
||||
export const TopPanel = memo(function TopPanel({trace, time, setTime, onUndo, onRedo, onRotate, onInit, onClear, onBack, insertMode, setInsertMode, setModal, zoom, setZoom, showKeys, setShowKeys, editHistory}: TopPanelProps) {
|
||||
export const TopPanel = memo(function TopPanel({trace, time, setTime, onUndo, onRedo, onRotate, onInit, onClear, onBack, lightMode, setLightMode, insertMode, setInsertMode, setModal, zoom, setZoom, showKeys, setShowKeys, editHistory}: TopPanelProps) {
|
||||
const [displayTime, setDisplayTime] = useState("0.000");
|
||||
const [timescale, setTimescale] = usePersistentState("timescale", 1);
|
||||
|
||||
|
|
@ -146,6 +152,20 @@ export const TopPanel = memo(function TopPanel({trace, time, setTime, onUndo, on
|
|||
}, [config, time, onInit, onChangePaused, setShowKeys, onSkip, onBack, onClear]);
|
||||
|
||||
return <div className="toolbar">
|
||||
{/* light / dark mode */}
|
||||
<div className="toolbarGroup">
|
||||
<button title="force light mode" className={lightMode==="light"?"active":""} onClick={() => setLightMode("light")}>
|
||||
<LightModeIcon fontSize="small"/>
|
||||
</button>
|
||||
<button title="auto light / dark mode (follows system theme)" className={lightMode==="auto"?"active":""} onClick={() => setLightMode("auto")}>
|
||||
<BrightnessAutoIcon fontSize="small"/>
|
||||
</button>
|
||||
<button title="force dark mode" className={lightMode==="dark"?"active":""} onClick={() => setLightMode("dark")}>
|
||||
<DarkModeIcon fontSize="small"/>
|
||||
</button>
|
||||
 
|
||||
</div>
|
||||
|
||||
{/* shortcuts / about */}
|
||||
<div className="toolbarGroup">
|
||||
<KeyInfo keyInfo={ShortCutShowKeys}>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue