nixos-configs/devices/wim/config/ags/js/misc/cursorbox.js

44 lines
1.2 KiB
JavaScript
Raw Normal View History

2023-11-06 21:41:30 -05:00
import { Button, EventBox } from 'resource:///com/github/Aylur/ags/widget.js';
2023-09-04 22:27:34 -04:00
import Gdk from 'gi://Gdk';
const display = Gdk.Display.get_default();
export default ({
2023-11-06 18:37:23 -05:00
isButton = false,
reset = true,
...props
}) => {
2023-11-06 18:37:23 -05:00
if (!isButton) {
2023-11-06 21:41:30 -05:00
return EventBox({
...props,
onHover: self => {
if (!self.child.sensitive || !self.sensitive)
self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'not-allowed'));
else
self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'pointer'));
},
onHoverLost: self => {
if (reset)
self.window.set_cursor(null);
},
});
}
else {
2023-11-06 21:41:30 -05:00
return Button({
...props,
onHover: self => {
if (!self.child.sensitive || !self.sensitive)
self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'not-allowed'));
else
self.window.set_cursor(Gdk.Cursor.new_from_name(display, 'pointer'));
},
onHoverLost: self => {
if (reset)
self.window.set_cursor(null);
},
});
}
};