parent
8bd0b732e7
commit
557e4c7a52
32 changed files with 281 additions and 12 deletions
modules/ags/gtk4/widgets
49
modules/ags/gtk4/widgets/bar.ts
Normal file
49
modules/ags/gtk4/widgets/bar.ts
Normal file
|
@ -0,0 +1,49 @@
|
|||
import { App, Astal, Gdk, Gtk } from 'astal/gtk4';
|
||||
import { Variable } from 'astal';
|
||||
|
||||
import Kompass from 'gi://Kompass';
|
||||
|
||||
import { Box, Calendar, CenterBox, Label, MenuButton, Popover, Window } from './subclasses';
|
||||
|
||||
const { EXCLUSIVE } = Astal.Exclusivity;
|
||||
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor;
|
||||
const { CENTER } = Gtk.Align;
|
||||
|
||||
const time = Variable(0);
|
||||
|
||||
setInterval(() => {
|
||||
time.set(time.get() + 1);
|
||||
}, 1000);
|
||||
|
||||
export default () => {
|
||||
const styledBox = Box({
|
||||
css: time().as((t) => `* { background: red; min-height: 10px; min-width: ${t}px; }`),
|
||||
});
|
||||
|
||||
return Window({
|
||||
visible: true,
|
||||
cssClasses: ['Bar'],
|
||||
exclusivity: EXCLUSIVE,
|
||||
anchor: TOP | LEFT | RIGHT,
|
||||
application: App,
|
||||
|
||||
child: CenterBox({
|
||||
startWidget: new Kompass.Tray({
|
||||
cursor: Gdk.Cursor.new_from_name('pointer', null),
|
||||
}),
|
||||
|
||||
centerWidget: styledBox,
|
||||
|
||||
endWidget: MenuButton({
|
||||
cursorName: 'pointer',
|
||||
hexpand: true,
|
||||
halign: CENTER,
|
||||
|
||||
children: [
|
||||
Label({ label: time().as(String) }),
|
||||
Popover({ child: Calendar() }),
|
||||
],
|
||||
}),
|
||||
}),
|
||||
});
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue