aboutsummaryrefslogtreecommitdiff
path: root/linux/home/.config/ags/widget/datemenu/DateMenu.ts
blob: f7fdf6d9b6e35cae18260f792e51355aa3b337ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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())
    })
}