♻️ ags(control-center/notifhistory): more structured function
This commit is contained in:
@@ -4,58 +4,62 @@ import { HistoryNotification, Notifications } from "../../scripts/notifications"
|
|||||||
import { NotificationWidget } from "../Notification";
|
import { NotificationWidget } from "../Notification";
|
||||||
|
|
||||||
|
|
||||||
export const NotifHistory = () => new Widget.Box({
|
export const NotifHistory = () => {
|
||||||
orientation: Gtk.Orientation.VERTICAL,
|
return new Widget.Box({
|
||||||
className: "history",
|
orientation: Gtk.Orientation.VERTICAL,
|
||||||
visible: bind(Notifications.getDefault(), "history").as(history => history.length > 0),
|
className: bind(Notifications.getDefault(), "history").as(history => history.length > 0 ? "history" : "history hide"),
|
||||||
children: [
|
children: [
|
||||||
new Widget.Scrollable({
|
new Widget.Scrollable({
|
||||||
className: "history",
|
className: "history",
|
||||||
hscroll: Gtk.PolicyType.NEVER,
|
hscroll: Gtk.PolicyType.NEVER,
|
||||||
vscroll: Gtk.PolicyType.AUTOMATIC,
|
vscroll: Gtk.PolicyType.AUTOMATIC,
|
||||||
visible: bind(Notifications.getDefault(), "history").as(history => history.length > 0),
|
propagateNaturalHeight: true,
|
||||||
propagateNaturalHeight: true,
|
propagateNaturalWidth: false,
|
||||||
propagateNaturalWidth: false,
|
onDraw: (scrollable) => {
|
||||||
onDraw: (scrollable) => {
|
if(!(scrollable.get_child()! as Gtk.Viewport).get_child()) return;
|
||||||
scrollable.minContentHeight =
|
|
||||||
((scrollable.get_child()! as Gtk.Viewport).get_child() as Widget.Box).get_children()?.[0].get_allocation().height || 0;
|
scrollable.minContentHeight =
|
||||||
},
|
((scrollable.get_child()! as Gtk.Viewport).get_child() as Widget.Box
|
||||||
child: new Widget.Box({
|
).get_children()?.[0].get_allocation().height
|
||||||
className: "notifications",
|
|| 0;
|
||||||
|
},
|
||||||
|
child: new Widget.Box({
|
||||||
|
className: "notifications",
|
||||||
|
hexpand: true,
|
||||||
|
orientation: Gtk.Orientation.VERTICAL,
|
||||||
|
homogeneous: false,
|
||||||
|
spacing: 4,
|
||||||
|
valign: Gtk.Align.START,
|
||||||
|
children: bind(Notifications.getDefault(), "history").as((history: Array<HistoryNotification>) =>
|
||||||
|
history.map((notification: HistoryNotification) => NotificationWidget(notification,
|
||||||
|
() => Notifications.getDefault().removeHistory(notification.id), true)
|
||||||
|
))
|
||||||
|
} as Widget.BoxProps)
|
||||||
|
} as Widget.ScrollableProps),
|
||||||
|
new Widget.Box({
|
||||||
|
vexpand: false,
|
||||||
hexpand: true,
|
hexpand: true,
|
||||||
orientation: Gtk.Orientation.VERTICAL,
|
halign: Gtk.Align.END,
|
||||||
homogeneous: false,
|
className: "button-row",
|
||||||
spacing: 4,
|
children: [
|
||||||
valign: Gtk.Align.START,
|
new Widget.Button({
|
||||||
children: bind(Notifications.getDefault(), "history").as((history: Array<HistoryNotification>) =>
|
className: "clear-all",
|
||||||
history.map((notification: HistoryNotification) => NotificationWidget(notification,
|
child: new Widget.Box({
|
||||||
() => Notifications.getDefault().removeHistory(notification.id), true)
|
children: [
|
||||||
))
|
new Widget.Label({
|
||||||
} as Widget.BoxProps)
|
className: "nf",
|
||||||
} as Widget.ScrollableProps),
|
css: "margin-right: 6px",
|
||||||
new Widget.Box({
|
label: ""
|
||||||
vexpand: false,
|
} as Widget.LabelProps),
|
||||||
hexpand: true,
|
new Widget.Label({
|
||||||
halign: Gtk.Align.END,
|
label: "Clear"
|
||||||
className: "button-row",
|
} as Widget.LabelProps)
|
||||||
children: [
|
]
|
||||||
new Widget.Button({
|
} as Widget.BoxProps),
|
||||||
className: "clear-all",
|
onClick: () => Notifications.getDefault().clearHistory(),
|
||||||
child: new Widget.Box({
|
} as Widget.ButtonProps)
|
||||||
children: [
|
]
|
||||||
new Widget.Label({
|
})
|
||||||
className: "nf",
|
]
|
||||||
css: "margin-right: 6px",
|
} as Widget.BoxProps);
|
||||||
label: ""
|
}
|
||||||
} as Widget.LabelProps),
|
|
||||||
new Widget.Label({
|
|
||||||
label: "Clear"
|
|
||||||
} as Widget.LabelProps)
|
|
||||||
]
|
|
||||||
} as Widget.BoxProps),
|
|
||||||
onClick: () => Notifications.getDefault().clearHistory(),
|
|
||||||
} as Widget.ButtonProps)
|
|
||||||
]
|
|
||||||
})
|
|
||||||
]
|
|
||||||
} as Widget.BoxProps);
|
|
||||||
|
|||||||
Reference in New Issue
Block a user