diff options
| author | Martin Ridgers <[email protected]> | 2024-09-19 13:18:01 +0200 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2024-09-24 10:57:34 +0200 |
| commit | 7777feed1db7d8a96fe16d163d1f2e581ab17af4 (patch) | |
| tree | eae8a260fc14aa03e3b13d02bb1d14aff2e4b7ca /src | |
| parent | Add a little spacing between tables (diff) | |
| download | zen-7777feed1db7d8a96fe16d163d1f2e581ab17af4.tar.xz zen-7777feed1db7d8a96fe16d163d1f2e581ab17af4.zip | |
Rudimentary toolbar component
Diffstat (limited to 'src')
| -rw-r--r-- | src/zenserver/frontend/html/zen.css | 21 | ||||
| -rw-r--r-- | src/zenserver/frontend/html/zen.js | 35 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/zenserver/frontend/html/zen.css b/src/zenserver/frontend/html/zen.css index 5f7fa2a1b..3008bc67d 100644 --- a/src/zenserver/frontend/html/zen.css +++ b/src/zenserver/frontend/html/zen.css @@ -96,6 +96,27 @@ h3 { border-left: 1px solid #aaa; } +/* toolbar ------------------------------------------------------------------ */ + +.zen_toolbar { + display: flex; + margin-top: 0.5em; + margin-bottom: 0.6em; +} + +.zen_toolbar > div { + display: flex; + align-items: center; +} + +.zen_toolbar > div:last-child { + margin-left: auto; +} + +.zen_toolbar > div > div { + padding-right: 0.7em; +} + /* modal -------------------------------------------------------------------- */ .zen_modal { diff --git a/src/zenserver/frontend/html/zen.js b/src/zenserver/frontend/html/zen.js index bae915258..89a66d525 100644 --- a/src/zenserver/frontend/html/zen.js +++ b/src/zenserver/frontend/html/zen.js @@ -206,6 +206,30 @@ class Modal //////////////////////////////////////////////////////////////////////////////// +class Toolbar extends Component +{ + static Side = class extends Component + { + add(name, tag="div") { return this.tag(tag).text(name); } + sep() { return this.tag().text("|"); } + } + + constructor(parent) + { + var root = parent.tag().classify("zen_toolbar"); + super(root); + + this._left = new Toolbar.Side(root.tag()) + this._right = new Toolbar.Side(root.tag()) + } + + left() { return this._left; } + right() { return this._right; } +} + + + +//////////////////////////////////////////////////////////////////////////////// class Sectormatron extends Component { constructor(parent, depth=1) @@ -550,6 +574,17 @@ class Test extends Page .option("cancel", () => void(0)); }); + // toolbar + pt_section.add_section("toolbar"); + var toolbar0 = new Toolbar(pt_section); + for (const side of [toolbar0.left(), toolbar0.right()]) + { + side.add("tb_item0"); + side.add("tb_item1"); + side.sep(); + side.add("tb_item2"); + } + // error throw Error("deliberate error"); } |