mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 19:46:20 +00:00
37 lines
960 B
TypeScript
37 lines
960 B
TypeScript
import PopupWindow from "widget/PopupWindow"
|
|
import NotificationColumn from "./NotificationColumn"
|
|
import DateColumn from "./DateColumn"
|
|
import options from "options"
|
|
|
|
const { bar, datemenu } = options
|
|
const pos = bar.position.bind()
|
|
const layout = Utils.derive([bar.position, datemenu.position], (bar, qs) =>
|
|
`${bar}-${qs}` as const,
|
|
)
|
|
|
|
const Settings = () => Widget.Box({
|
|
class_name: "datemenu horizontal",
|
|
vexpand: false,
|
|
children: [
|
|
NotificationColumn(),
|
|
Widget.Separator({ orientation: 1 }),
|
|
DateColumn(),
|
|
],
|
|
})
|
|
|
|
const DateMenu = () => PopupWindow({
|
|
name: "datemenu",
|
|
exclusivity: "exclusive",
|
|
transition: pos.as(pos => pos === "top" ? "slide_down" : "slide_up"),
|
|
layout: layout.value,
|
|
child: Settings(),
|
|
})
|
|
|
|
export function setupDateMenu() {
|
|
App.addWindow(DateMenu())
|
|
layout.connect("changed", () => {
|
|
App.removeWindow("datemenu")
|
|
App.addWindow(DateMenu())
|
|
})
|
|
}
|